Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Los objetos entregados a Amazon S3 siguen el formato de nombre de <prefijo evaluado><sufijo>. Puede especificar un prefijo personalizado que incluya expresiones que se evalúan en tiempo de ejecución. El prefijo personalizado que especifique anulará el prefijo predeterminado de yyyy/MM/dd/HH
.
Puede utilizar expresiones de las siguientes formas en el prefijo personalizado: !{namespace:
, donde value
}namespace
puede ser una de estas opciones, tal como se explica en las secciones siguientes.
-
firehose
-
timestamp
-
partitionKeyFromQuery
-
partitionKeyFromLambda
Si un prefijo termina por una barra inclinada, aparece como una carpeta en el bucket de Amazon S3. Para obtener más información, consulte el formato de nombre de objeto de Amazon S3 en la Amazon Data FirehoseDeveloper Guide.
espacio de nombres timestamp
Los valores válidos para este espacio de nombres son cadenas que son cadenas Java DateTimeFormatter!{timestamp:yyyy}
se evalúa como 2018
.
Cuando se evalúan marcas de tiempo, Firehose utiliza la marca de tiempo de llegada aproximada del registro más antiguo incluido en el objeto de Amazon S3 que se va a escribir.
De forma predeterminada, la marca de tiempo está activa. UTC Sin embargo, puede especificar la zona horaria que prefiera. Por ejemplo, puede configurar la zona horaria en Asia/Tokio en la AWS Management Console configuración de API parámetros (CustomTimeZone) si desea utilizar la hora estándar de Japón en lugar de. UTC Para ver la lista de zonas horarias compatibles, consulte Formato de nombre de objeto de Amazon S3.
Si se utiliza el espacio de nombres timestamp
más de una vez en la misma expresión de prefijo, cada instancia se evalúa como el mismo instante en el tiempo.
espacio de nombres firehose
Hay dos valores que se pueden utilizar con este espacio de nombres: error-output-type
y random-string
. En la tabla siguiente, se explica cómo hacerlo.
Conversión | Descripción | Ejemplo de entrada | Ejemplo de resultado | Notas |
---|---|---|---|---|
error-output-type |
Da como resultado una de las siguientes cadenas, según la configuración de la transmisión de Firehose y el motivo del error: {processing-failed, -failed, splunk-failed AmazonOpenSearchService,}. format-conversion-failed http-endpoint-failed Si lo utiliza más de una vez en la misma expresión, cada instancia se evalúa como la misma cadena de error. |
myPrefix/result=!{firehose:error-output-type}/!{timestamp:yyyy/MM/dd} |
myPrefix/result=processing-failed/2018/08/03 |
El error-output-type valor solo se puede usar en el campo. ErrorOutputPrefix |
random-string |
Se evalúa como una cadena aleatoria de 11 caracteres. Si lo utiliza más de una vez en la misma expresión, cada instancia se evalúa como una cadena aleatoria nueva. |
myPrefix/!{firehose:random-string}/ |
myPrefix/046b6c7f-0b/ |
Puede utilizarlo con ambos tipos de prefijos. Puede colocarlo al principio de la cadena de formato para obtener un prefijo aleatorio, que a veces es necesario para alcanzar un rendimiento extremadamente alto con Amazon S3. |
Espacios de nombres partitionKeyFromLambda
y partitionKeyFromQuery
En el caso del particionamiento dinámico, debe usar el siguiente formato de expresión en el prefijo de bucket de S3: !{namespace:value}
, donde el espacio de nombres puede ser partitionKeyFromQuery
, partitionKeyFromLambda
o ambos. Si utiliza el análisis en línea para crear las claves de particionamiento para sus datos de origen, debe especificar un valor de prefijo de bucket de S3 que conste de expresiones especificadas en el siguiente formato: "partitionKeyFromQuery:keyID"
. Si utiliza una función de AWS
Lambda para crear claves de particionamiento para sus datos de origen, debe especificar un valor de prefijo de bucket de S3 que conste de expresiones especificadas en el siguiente formato: "partitionKeyFromLambda:keyID"
. Para obtener más información, consulte “Elección de Amazon S3 como destino” en Creación de un flujo de Firehose.
Reglas semánticas
Las siguientes reglas se aplican a las expresiones Prefix
y ErrorOutputPrefix
.
-
En el espacio de nombres
timestamp
, se evalúa cualquier carácter que no esté entre comillas simples. En otras palabras, cualquier cadena encerrada entre comillas simples en el campo de valor se interpreta literalmente. -
Si se especifica un prefijo que no contiene una expresión de espacio de nombres de marca de tiempo, Firehose agrega la expresión
!{timestamp:yyyy/MM/dd/HH/}
al valor del campoPrefix
. -
La secuencia
!{
solo puede aparecer en expresiones!{namespace:
.value
} -
ErrorOutputPrefix
únicamente puede ser null siPrefix
no contiene ninguna expresión. En este caso,Prefix
evalúa a<specified-prefix>yyyy/MM/DDD/HH/
yErrorOutputPrefix
evalúa a<specified-prefix><error-output-type>yyyy/MM/DDD/HH/
.DDD
representa el día del año. -
Si especifica una expresión para
ErrorOutputPrefix
, debe incluir al menos una instancia de!{firehose:error-output-type}
. -
Prefix
no puede contener!{firehose:error-output-type}
. -
Una vez evaluados, ni
Prefix
niErrorOutputPrefix
pueden tener una longitud superior a 512 caracteres. -
Si el destino es Amazon Redshift,
Prefix
no debe contener expresiones yErrorOutputPrefix
debe ser null. -
Cuando el destino es Amazon OpenSearch Service o Splunk y no
ErrorOutputPrefix
se especifica ningún, Firehose usaPrefix
el campo para los registros fallidos. -
Cuando el destino es Amazon S3,
Prefix
yErrorOutputPrefix
en la configuración de destino de Amazon S3 se utilizan para los registros correctos y los registros con errores, respectivamente. Si usa el AWS CLI o elAPI, puede usarloExtendedS3DestinationConfiguration
para especificar una configuración de respaldo de Amazon S3 con su propioPrefix
yErrorOutputPrefix
. -
Al usar Amazon S3 AWS Management Console y establecer el destino en Amazon S3, Firehose usa
Prefix
yErrorOutputPrefix
en la configuración de destino para los registros correctos y los registros fallidos, respectivamente. Si especifica un prefijo mediante expresiones, debe especificar el prefijo de error que incluye!{firehose:error-output-type}
. -
Cuando se usa
ExtendedS3DestinationConfiguration
con AWS CLI, o API AWS CloudFormation, si se especifica unS3BackupConfiguration
, Firehose no proporciona un valor predeterminado.ErrorOutputPrefix
-
No puedes usar
partitionKeyFromQuery
espacios de nombrespartitionKeyFromLambda
y al crear expresiones. ErrorOutputPrefix
Ejemplos de prefijos
Entrada | Prefijo evaluado (a las 10:30 a.m. del 27 de UTC agosto de 2018) |
---|---|
|
|
|
Entrada no válida: ErrorOutputPrefix no puede ser null si Prefix contiene expresiones |
|
|
|
|
|
|