Conceptos generales y de streaming de procesos ETL

P: ¿En qué consiste el streaming de procesos ETL?

El streaming de procesos ETL es el procesamiento y movimiento de datos en tiempo real de un lugar a otro. ETL es una abreviatura de las funciones de base de datos extracción, transformación y carga, en inglés. La extracción hace referencia a la recopilación de datos de una fuente. La transformación hace referencia a cualquier proceso aplicado sobre esos datos. La carga hace referencia al envío de los datos procesados a un destino, como un almacén, un lago de datos o una herramienta de análisis.

P: ¿Qué es Amazon Kinesis Data Firehose?

Kinesis Data Firehose es una solución de ETL de streaming. Es la manera más sencilla de cargar datos de streaming en almacenes de datos y herramientas de análisis. Puede registrar, transformar y cargar los datos de streaming en Amazon S3, Amazon Redshift, Amazon OpenSearch Service y Splunk para poder realizar análisis casi en tiempo real con las herramientas de inteligencia empresarial existentes y los paneles que ya utiliza. Se trata de un servicio completamente administrado cuya capacidad se ajusta automáticamente para adaptarse al nivel de rendimiento de los datos y que no necesita administración permanente. También puede procesar por lotes, comprimir y cifrar los datos antes de cargarlos, a fin de minimizar la cantidad de almacenamiento utilizado en el destino y aumentar la seguridad.

P: ¿Qué es una fuente en Kinesis Data Firehose?

Una fuente es el lugar desde donde se generan y registran constantemente los datos de streaming. Por ejemplo, una fuente puede ser un servidor de registro ejecutado en instancias de Amazon EC2, una aplicación ejecutada en dispositivos móviles o un sensor en un dispositivo compatible con IoT. Puede conectar sus fuentes a Kinesis Data Firehose mediante 1) API de Amazon Kinesis Data Firehose, que utiliza AWS SDK para Java, .NET, Node.js, Python o Ruby. 2) Kinesis Data Stream, donde Kinesis Data Firehose lee datos fácilmente de Kinesis Data Streams existente y los carga en destinos de Kinesis Data Firehose. 3) Servicio de AWS compatible de forma nativa como AWS Cloudwatch, AWS EventBridge, AWS IoT o AWS Pinpoint. Para obtener más información, consulte la guía para el desarrollador de Amazon Kinesis Data Firehose. 4) Kinesis Agents, que es una aplicación de software Java independiente que monitorea de forma continua un conjunto de archivos y envía nuevos datos a su transmisión. 5) Fluentbit, una herramienta de procesamiento y reenvío de registros de código abierto. 6) AWS Lambda, que es un servicio informático sin servidor que le permite ejecutar código sin aprovisionar ni administrar servidores. Puede utilizar su función Lambda para enviar tráfico de S3 o DynamoDB a Kinesis Data Firehose en función de un evento desencadenado.

P: ¿Qué es un destino en Kinesis Data Firehose?

Un destino es el almacén de datos en el que se entregan los datos. En la actualidad, Kinesis Data Firehose admite Amazon S3, Amazon Redshift, Amazon OpenSearch Service, Splunk, Datadog, NewRelic, Dynatrace, Sumologic, LogicMonitor, MongoDB y puntos de enlace HTTP como destinos.

P: ¿Qué administra Kinesis Data Firehose por mí?

Kinesis Data Firehose administra toda la infraestructura subyacente, el almacenamiento, las redes y la configuración que se necesita para registrar y cargar sus datos en Amazon S3, Amazon Redshift, Amazon OpenSearch Service o Splunk. No tiene que preocuparse por el aprovisionamiento, la implementación, el mantenimiento continuo del hardware o software, ni la escritura de ninguna otra aplicación para administrar este proceso. Kinesis Data Firehose es muy flexible en lo que se refiere a escalabilidad, por lo que no requiere intervención de los desarrolladores ni les supone trabajo adicional. Además, Kinesis Data Firehose replica de forma sincronizada los datos en tres instalaciones en una región de AWS, lo que ofrece un elevado nivel de disponibilidad y durabilidad para los datos que se transmiten a los destinos.

P: ¿Cómo utilizo Kinesis Data Firehose?

Después de registrarte en Amazon Web Services, podrá comenzar a usar Kinesis Data Firehose si sigue los siguientes pasos:

  • Cree una transmisión de entrega de Kinesis Data Firehose a través de la consola de Firehose o la operación CreateDeliveryStream. Opcionalmente, puede configurar una función de AWS Lambda en su transmisión de entrega para preparar y transformar los datos sin procesar antes de cargarlos.
  • Configure sus generadores de datos para enviar datos de forma continua a su transmisión de entrega mediante el agente de Amazon Kinesis o la API de Firehose.
  • Firehose carga sus datos de forma automática y continua a los destinos que usted especifique.

P: ¿Qué es un flujo de entrega en Kinesis Data Firehose?

Un flujo de entrega es la entidad subyacente de Kinesis Data Firehose. Firehose se utiliza mediante la creación de un flujo de entrega y el envío de datos a este. Puede crear un flujo de entrega de Kinesis Data Firehose a través de la consola de Firehose o la operación CreateDeliveryStream. Si desea obtener más información, consulte Creación de flujos de entrega.

P: ¿Qué es un registro en Kinesis Data Firehose?

Un registro son los datos de interés que el generador de datos envía a una transmisión de entrega. El tamaño máximo de un registro (antes de la codificación base64) es de 1024 KB.

P: ¿Qué límites tiene Kinesis Data Firehose?

Para obtener más información sobre los límites, consulte la sección sobre límites de Amazon Kinesis Data Firehose en la guía para desarrolladores.

Fuentes de datos

P: ¿Con qué plataformas o lenguajes de programación puedo obtener acceso a la API de Kinesis Data Firehose?

La API de Kinesis Data Firehose está disponible en los SDK de Amazon Web Services. Puede consultar la lista de plataformas y lenguajes de programación para los SDK de Amazon Web Services en Herramientas de Amazon Web Services.

P: ¿Qué es el agente de Amazon Kinesis?

El agente de Kinesis es una aplicación precompilada de Java que ofrece una forma fácil de recopilar y enviar datos a una transmisión de entrega. Puede instalar el agente en entornos de servidor basados en Linux, como servidores web, servidores de registro y servidores de bases de datos. El agente monitorea determinados archivos y envía continuamente datos a su transmisión de entrega. En este momento, el agente de Amazon Kinesis es compatible con Amazon Linux, Red Hat Enterprise Linux y Microsoft Windows. Para obtener más información, consulte Escribir con agentes.

P: ¿Dónde consigo el agente de Amazon Kinesis?

Puede descargar e instalar el agente de Kinesis usando el siguiente comando y enlace:

  • En Amazon Linux: sudo yum install –y aws-kinesis-agent
  • En Red Hat Enterprise Linux: sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn1.noarch.rpm
  • Desde GitHub: awlabs/amazon-kinesis-agent
  • En Windows: https://docs.aws.amazon.com/kinesis-agent-windows/latest/userguide/getting-started.html#getting-started-installation

P: ¿Qué diferencias existen entre las operaciones PutRecord y PutRecordBatch?

Puede agregar datos a una transmisión de entrega de Kinesis Data Firehose a través del agente de Kinesis o mediante las operaciones de Firehose PutRecord y PutRecordBatch. La operación PutRecord permite incluir un solo registro de datos en una llamada a la API, mientras que la operación PutRecordBatch permite incluir varios registros de datos en una llamada a la API. Si desea más información, consulte PutRecord y PutRecordBatch.

P: ¿Cómo puedo agregar datos a mi transmisión de entrega de Kinesis Data Firehose desde Kinesis Data Streams?

Cuando crea o actualiza su transmisión de entrega mediante la consola de AWS o las API de Firehose, puede configurar Kinesis Data Streams como origen de su transmisión de entrega. Una vez configurado, Firehose leerá los datos automáticamente de Kinesis Data Streams y los cargará en destinos específicos.

P: ¿Con qué frecuencia Kinesis Data Firehose lee los datos de mi transmisión de Kinesis?
Kinesis Data Firehose llama a GetRecords() de Kinesis Data Streams una vez por segundo para cada fragmento de Kinesis.

P: ¿Desde dónde lee los datos Kinesis Data Firehose cuando Kinesis Data Streams está configurado como el origen de la transmisión de entrega?

Kinesis Data Firehose comienza a leer los datos desde la posición MÁS RECIENTE de Kinesis Data Streams cuando está configurado como el origen de una transmisión de entrega. Para obtener más información sobre la posición de Kinesis Data Streams consulte GetShardIterator en la referencia de la API del servicio Kinesis Data Streams.

P: ¿Puedo configurar Kinesis Data Streams de manera que sea el origen de varias transmisiones de entrega de Kinesis Data Firehose?

Sí, puede. Sin embargo, tenga en cuenta que la llamada a GetRecords() desde Kinesis Data Firehose se contabiliza en la limitación controlada de su fragmento de Kinesis, por lo que debe planificar su transmisión de entrega junto con sus demás aplicaciones de Kinesis para que no se vea limitado. Para obtener más información, consulte Límites de Kinesis Data Streams en la Guía para desarrolladores de Kinesis Data Streams.

P: ¿Puedo seguir agregando datos a una transmisión de entrega mediante el agente de Kinesis o las operaciones PutRecord y PutRecordBatch cuando la transmisión de datos de Kinesis esté configurada como origen?

No, no es posible. Cuando Kinesis Data Streams esté configurado como origen de una transmisión de entrega de Firehose, las operaciones PutRecord y PutRecordBatch de Firehose estarán deshabilitadas. Debe agregar datos a su transmisión de datos de Kinesis mediante las operaciones PutRecord y PutRecords de Kinesis Data Streams.

P: ¿Cómo puedo agregar datos a una transmisión de entrega desde AWS IoT?

Para agregar datos a su transmisión de entrega desde AWS IoT, debe crear una acción de AWS IoT que envíe eventos a su transmisión de entrega. Para obtener más información, consulte Escritura en Amazon Kinesis Data Firehose mediante AWS IoT en la Guía para desarrolladores de Kinesis Data Firehose.

P: ¿Cómo puedo agregar datos a una transmisión de entrega desde CloudWatch Logs?

Para agregar datos a su transmisión de entrega de Kinesis Data Firehose desde CloudWatch Logs, debe crear un filtro de suscripción de CloudWatch Logs que envíe eventos a su transmisión de entrega. Para obtener más información, consulte Uso de filtros de suscripción de CloudWatch Logs en la Guía para desarrolladores de Amazon CloudWatch.

P: ¿Cómo puedo agregar datos a una transmisión de entrega de Kinesis Data Firehose desde CloudWatch Events?

Para agregar datos a su transmisión de entrega de Kinesis Data Firehose desde CloudWatch Events, debe crear una regla de CloudWatch Eventos que envíe eventos a su transmisión de entrega. Para obtener más información, consulte Escritura en Amazon Kinesis Data Firehose mediante CloudWatch Events en la Guía para desarrolladores de Kinesis Data Firehose.

P: ¿Cómo puedo agregar datos a una transmisión de entrega de Amazon Kinesis Data Firehose desde AWS EventBridge?

Puede agregar datos a su transmisión de entrega de Kinesis Data Firehose desde la consola de AWS EventBridge. Para obtener más información, consulte la documentación de AWS EventBridge.

P: ¿Qué tipo de cifrado puedo usar?

Kinesis Data Firehose permite cifrar los datos después de haberlos entregado en un bucket de Amazon S3. Mientras crea su transmisión de entrega, puede cifrar los datos con una clave de AWS Key Management Service (KMS) de su propiedad. Si desea obtener más información sobre KMS, consulte AWS Key Management Service.

P: ¿Qué rol de IAM debo especificar mientras creo un flujo de entrega?

Kinesis Data Firehose asume el rol de IAM que usted especifica para obtener acceso a recursos como un bucket de Amazon S3 y un dominio de Amazon OpenSearch. Para más información, consulte Controlar el acceso con Kinesis Data Firehose en la guía para desarrolladores de Kinesis Data Firehose.

Transformación de datos y conversión de formato

P: ¿Cómo preparo y transformo datos sin formato en Kinesis Data Firehose?

Kinesis Data Firehose admite la conversión de formato de datos sin procesar o JSON a los formatos requeridos por sus almacenes de datos de destino, como Apache Parquet y Apache ORC, sin necesidad de crear canalizaciones de procesamiento de datos propias. Kinesis Data Firehose también le permite particionar dinámicamente sus datos en streaming antes de la entrega a S3 mediante claves definidas de forma estática o dinámica como "customer_id" o "transaction_id". Kinesis Data Firehose agrupa los datos según estas claves y realiza la entrega en prefijos S3 con una clave única, lo que le facilita la ejecución de análisis de alto rendimiento y rentables en S3 mediante Athena, EMR y Redshift Spectrum.

Además de la opción de conversión de formato incorporada en Amazon Kinesis Data Firehose, también puede utilizar una función de AWS Lambda para preparar y transformar los datos sin formato que entran en la transmisión de entrega antes de cargarla en los destinos. Puede configurar una función de AWS Lambda para transformar datos cuando cree una nueva transmisión de entrega o cuando edite una existente. Amazon ha creado varios proyectos de Lambda que puede elegir como inicio rápido. Para obtener más información, consulte la guía para el desarrollador de Amazon Kinesis Data Firehose.

P: ¿Qué formato de compresión puedo usar?

Con Amazon Kinesis Data Firehose, puede comprimir los datos antes de entregarlos a Amazon S3. En la actualidad, el servicio admite los formatos de compresión GZIP, ZIP y SNAPPY. El formato GZIP solo se admite si los datos se cargan con posterioridad en Amazon Redshift.

P: ¿Cómo funciona la compresión cuando utilizo la función de suscripción de CloudWatch Logs?

Puede utilizar la función de suscripción de CloudWatch Logs para transmitir datos desde CloudWatch Logs a Kinesis Data Firehose. Todos los eventos de registro de CloudWatch Logs ya se encuentran comprimidos con el formato gzip, por lo que debería mantener la configuración de compresión de Firehose sin comprimir para evitar una compresión doble. Para obtener más información acerca de la característica de suscripción de CloudWatch Logs, consulte la sección sobre filtros de suscripción con Amazon Kinesis Data Firehose en la guía del usuario de Amazon CloudWatch Logs.

P: ¿Cómo devuelvo a Amazon Kinesis Data Firehose los datos preparados y transformados por la función de AWS Lambda?

Todos los registros transformados por Lambda deben devolverse a Firehose con los siguientes tres parámetros; de lo contrario, Firehose rechazará los registros y los tratará como errores de transformación de datos.

  • recordId: Firehose pasa a Lambda un recordld con cada registro durante la invocación. Cada registro transformado debe ser devuelto con exactamente el mismo recordId. Cualquier diferencia entre el recordId original y el devuelto se tratará como error de transformación de datos.
  • result: el estado del resultado de transformación de cada registro. Se permiten los siguientes valores para este parámetro: "Ok" si el registro se transforma como se pretendía. "Dropped" si la lógica de procesamiento omite el registro intencionadamente, tal y como se pretendía. "ProcessingFailed" si el registro no se puede transformar tal y como correspondería. Cuando Firehose genera métricas de SucceedProcessing.Records y SucceedProcessing.Bytes trata los registros devueltos con estado de "Ok" y "Dropped" como registros procesados y los que tienen el estado "ProcessingFailed" como registros que no se han podido procesar.
  • data: la carga de datos transformados con codificación based64.

P: ¿Qué es el registro de errores?

Si habilita la transformación de datos con Lambda, Firehose podrá registrar las invocaciones de Lambda y los errores de entrega de datos en Amazon CloudWatch Logs para que le sea posible consultar los registros de errores específicos si ocurre una falla en una invocación de Lambda o en la entrega de datos. Puede obtener más información en la sección Monitoreo con Amazon CloudWatch Logs.

P: ¿Qué es la copia de seguridad de los registros originales?

Si usa la transformación de datos con Lambda, puede habilitar el respaldo de los registros originales y Amazon Kinesis Data Firehose entregará en un bucket de S3 diferente los datos entrantes sin transformar. Podrá especificar un prefijo adicional para colocarlo antes del prefijo de tiempo UTC "AAAA/MM/DD/HH" que genera Firehose.

Transformación de datos incorporada para Amazon S3

P: ¿Cuándo debo utilizar la partición dinámica de Kinesis Data Firehose?

La partición dinámica de Kinesis Data Firehose elimina las complejidades y los retrasos de la partición manual en la fuente o después de almacenar los datos, y permite un análisis más rápido para consultar conjuntos de datos optimizados. Esto hace que los conjuntos de datos estén disponibles inmediatamente para que las herramientas de análisis ejecuten sus consultas con eficiencia y mejora el control de acceso preciso a los datos. Por ejemplo, los clientes de automatización de marketing pueden particionar los datos al momento por ID de cliente, lo que permite que las consultas específicas de los clientes consulten conjuntos de datos optimizados y entreguen resultados más rápidamente. Los clientes de operaciones de TI o monitoreo de seguridad pueden crear grupos en función de la marca de tiempo de los eventos incrustada en los registros, de forma que puedan consultar conjuntos de datos optimizados y obtener resultados más rápidamente. Esta característica, junto con la conversión de formato existente de JSON a Parquet de Amazon Kinesis Data Firehose, convierte Amazon Kinesis Data Firehose en una opción de ETL en streaming ideal para S3.

P: ¿Cómo configuro la partición dinámica con Kinesis Data Firehose?

Puede configurar la característica de partición de datos de Kinesis Data Firehose mediante la consola de administración de AWS, las CLI o los SDK. Al crear o actualizar un flujo de entrega de Kinesis Data Firehose, seleccione Amazon S3 como destino de entrega para el flujo de entrega y habilite la partición dinámica. Puede especificar claves o crear una expresión que se evaluará en tiempo de ejecución para definir las claves usadas para la partición. Por ejemplo, puede seleccionar un campo de datos en el flujo de entrada como el ID de cliente y definir una expresión de prefijo de S3 como customer_id=!{partitionKey:customer_id}/, que se evaluará en tiempo de ejecución según los registros capturados para definir a qué prefijo de S3 entregar los registros.

P: ¿Qué tipo de transformaciones y procesamiento de datos puedo realizar con la partición dinámica y las claves de partición?

Kinesis Data Firehose admite la conversión de Parquet/ORC de fábrica al escribir datos a Amazon S3. Kinesis Data Firehose también se integra con funciones Lambda, de forma que puede escribir su propio código de transformación. Kinesis Data Firehose también dispone de compatibilidad incorporada con la extracción de los campos de datos de clave de los registros en formato JSON. Kinesis Data Firehose también es compatible con el lenguaje de análisis JQ para permitir las transformaciones en las claves de partición. Para obtener más información, consulte la guía para desarrolladores de Kinesis Data Firehose.

Entrega de datos y destinos

P: ¿Puedo copiar todos los datos sin procesar en el bucket de S3?

Sí, Kinesis Data Firehose puede hacer una copia de seguridad todos los registros sin transformar en el bucket de S3 al tiempo que entrega registros transformados en el destino. Puede habilitar la copia de seguridad de los registros originales cuando cree o actualice la transmisión de entrega.

P: ¿Con qué frecuencia Kinesis Data Firehose entrega datos en un bucket de Amazon S3?

La frecuencia de entrega de datos en Amazon S3 se determina en función del valor que se haya configurado para el tamaño y el intervalo del búfer de S3 para la transmisión de entrega. Kinesis Data Firehose envía los datos de entrada a un búfer antes de entregarlos en Amazon S3. Puede configurar los valores del tamaño del búfer de S3 (de 1 MB a 128 MB) o intervalo del búfer (de 60 a 900 segundos), y la condición que primero se cumpla activará la entrega de los datos en Amazon S3. Si ha habilitado Apache Parquet o la partición dinámica, su tamaño de búfer es en MB y varía de 64 MB a 128 MB para el destino de Amazon S3, para el que 128 MB es el valor predeterminado. Recuerde que en circunstancias en las que la entrega de datos al destino queda rezagada con respecto a la escritura de datos en la transmisión de entrega, Kinesis Data Firehose aumenta el tamaño del búfer dinámicamente para ponerse al corriente y asegurarse de que todos los datos se entreguen en sus destinos.

P: ¿Cómo se aplica el tamaño del búfer si decido comprimir los datos?

El tamaño del búfer se aplica después de la compresión. Por tanto, si decide comprimir los datos, el tamaño de los objetos contenidos en el bucket de Amazon S3 puede ser menor que el tamaño del búfer que ha especificado.

P: ¿Qué privilegios necesita el usuario de Amazon Redshift que debo especificar cuando estoy creando una transmisión de entrega?

El usuario de Amazon Redshift necesita privilegios de inserción (INSERT) en Redshift para copiar datos del bucket de Amazon S3 en el clúster de Redshift.

P: ¿Qué tengo que hacer si mi clúster de Amazon Redshift se encuentra en una VPC?

Si su clúster de Amazon Redshift se encuentra en una VPC, tiene que desbloquear las direcciones IP de Firehose desde su VPC para conceder a Amazon Kinesis Data Firehose acceso a su clúster de Redshift. Para obtener más información sobre cómo desbloquear IP en su VPC, consulte la sección sobre cómo conceder acceso a Firehose a un destino de Amazon Redshift en la guía para desarrolladores de Amazon Kinesis Data Firehose.

P: ¿Por qué necesito proporcionar un bucket de Amazon S3 cuando selecciono como destino Amazon Redshift?

Para los destinos de Amazon Redshift, Amazon Kinesis Data Firehose entrega primero los datos en el bucket de Amazon S3 y, a continuación, emite un comando COPY de Redshift para cargar los datos desde su bucket S3 al clúster de Redshift.

P: ¿Qué es Amazon OpenSearch Service (sucesor de Amazon Elasticsearch Service)?

Amazon OpenSearch Service le permite llevar a cabo análisis interactivos de registros, monitoreo de aplicaciones en tiempo real, búsqueda de sitios web y mucho más con facilidad. OpenSearch es un conjunto de búsqueda y análisis distribuido de código abierto derivado de Elasticsearch. Amazon OpenSearch Service ofrece las últimas versiones de OpenSearch, compatibilidad con 19 versiones de Elasticsearch (versiones 1.5 a 7.10) y capacidades de visualización con tecnología de OpenSearch Dashboards y Kibana (versiones 1.5 a 7.10). Haga clic aquí para obtener más información acerca de Amazon OpenSearch.

P: ¿Qué es la rotación de índice para el destino Amazon OpenSearch Service?

Kinesis Data Firehose puede rotar su índice de Amazon OpenSearch Service en función de una duración de tiempo. Puede configurar dicha duración al momento de crear el flujo de entrega. Para obtener más información, consulte Rotación de índice para el destino Amazon OpenSearch en la guía para desarrolladores de Amazon Kinesis Data Firehose.

P: ¿Por qué necesito proporcionar un bucket de Amazon S3 cuando selecciono Amazon OpenSearch Service como destino?

Cuando carga datos en Amazon OpenSearch Service, Kinesis Data Firehose puede realizar copias de seguridad de todos los datos o solo de aquellos que no se pudieron entregar. Para aprovechar esta característica y evitar la pérdida de datos, debe proporcionar un bucket de Amazon S3 de copia de seguridad.

P: ¿Puedo modificar la configuración de la transmisión de entrega una vez creada?

La configuración de la transmisión de entrega se puede cambiar en cualquier momento. Puede hacerlo mediante la consola de Firehose o la operación UpdateDestination. La transmisión de entrega permanece en estado activo mientras se actualizan las configuraciones, por lo que puede continuar enviándole datos. Las configuraciones actualizadas suelen entrar en vigencia al cabo de unos minutos.

Cuando se entrega una VPC de destino, puede cambiar el URL de punto de enlace de destino, siempre y cuando se pueda acceder al nuevo destino dentro del mismo VPC, subredes y grupos de seguridad. Para cambios de VPC, subredes y grupos de seguridad, debe recrear la transmisión de entrega de Firehose.

P: ¿Puedo utilizar un flujo de entrega de Kinesis Data Firehose en una cuenta para entregar mis datos a una VPC de destino con dominio Amazon OpenSearch Service en otra cuenta?

No, su flujo de entrega de Kinesis Data Firehose y el destino del dominio de Amazon OpenSearch Service deben estar en la misma cuenta.

P: ¿Puedo utilizar un flujo de entrega de Kinesis Data Firehose en una región para entregar mis datos a una VPC de destino con dominio Amazon OpenSearch Service en otra región?

No, su flujo de entrega de Kinesis Data Firehose y el dominio de destino de Amazon OpenSearch Service deben estar en la misma región.

P: ¿Con qué frecuencia Kinesis Data Firehose entrega datos en un dominio de Amazon OpenSearch?

La frecuencia de entrega de datos en Amazon OpenSearch Service se determina en función de los valores que se hayan configurado para el tamaño y el intervalo del búfer para su flujo de entrega. Firehose envía los datos de entrada a un búfer antes de entregarlos en Amazon OpenSearch Service. Puede configurar los valores del tamaño del búfer de OpenSearch (de 1 MB a 100 MB) o el intervalo del búfer (de 60 a 900 segundos), y la condición que primero se cumpla activará la entrega de los datos en Amazon OpenSearch Service. Tenga en cuenta que en circunstancias en las que la entrega de datos al destino queda rezagada con respecto a la ingesta de datos en el flujo de entrega, Amazon Kinesis Data Firehose aumenta el tamaño del búfer dinámicamente para ponerse al corriente y asegurarse de que todos los datos se entreguen en sus destinos.

P: ¿Qué es la carpeta de manifiestos que hay en el bucket de Amazon S3?
Para el destino Amazon Redshift, Amazon Kinesis Data Firehose genera archivos de manifiestos para cargar objetos de Amazon S3 en el clúster de Redshift por lotes. La carpeta de manifiestos almacena los archivos de manifiestos que genera Firehose.

P: ¿Cómo lucen los documentos de OpenSearch respaldados en el bucket de Amazon S3?
Si se utiliza el modo "todos los documentos", Amazon Kinesis Data Firehose concatena múltiples registros de entrada a partir de la configuración de búfer del flujo de entrega y, a continuación, los entrega en el bucket de S3 como objeto de S3. Independientemente de qué modo de respaldo se configure, los documentos fallidos se entregan en el bucket de S3 con un formato JSON determinado que proporciona información adicional, como el código de error y la hora del intento de entrega. Para obtener más información, consulte la sección sobre copia de seguridad en Amazon S3 para el destino Amazon ES en la guía para desarrolladores de Amazon Kinesis Data Firehose.

P: ¿Una única transmisión de entrega puede entregar datos en varios buckets de Amazon S3?

Por el momento, cada transmisión de entrega solo puede entregar datos en un solo bucket de Amazon S3. Si quiere entregar datos en varios buckets de S3, puede crear varias transmisiones de entrega.

P: ¿Una única transmisión de datos puede entregar datos en varios clústeres o tablas de Amazon Redshift?

Por el momento, cada transmisión de datos solo puede entregar datos en un solo clúster o en una sola tabla de Amazon Redshift. Si quiere entregar datos a varios clústeres o varias tablas de Redshift, puede crear varios flujos de entrega.

P: ¿Un único flujo de datos puede entregar datos en varios dominios o índices de Amazon OpenSearch Service?

Por el momento, cada flujo de entrega solo puede entregar datos en un solo domino y en un solo índice de Amazon OpenSearch Service. Si quiere entregar datos en varios dominios o índices de Amazon OpenSearch Service, puede crear varios flujos de entrega.

P: ¿Cómo hace Amazon Kinesis Data Firehose para entregar datos a mi dominio de Amazon OpenSearch Service en una VPC?

Cuando habilite Kinesis Data Firehose para entregar datos en un destino de Amazon OpenSearch Service en una VPC, Amazon Kinesis Data Firehose crea una o más interfaces de red elástica entre cuentas (ENI) en su VPC para cada subred que elija. Amazon Kinesis Data Firehose utiliza estas ENI para entregar los datos a su VPC. La cantidad de ENI escala automáticamente para cumplir con los requerimientos del servicio.

Resolución de problemas y administración de transmisiones de entrega

P: ¿Por qué se me impone una limitación controlada cuando envío datos a mi transmisión de entrega en Amazon Kinesis Data Firehose?

De manera predeterminada, cada transmisión de entrega puede recibir hasta 2000 transacciones por segundo, 5000 registros por segundo y 5 MB por segundo de entrada. Puede aumentar este límite muy fácilmente si envía una solicitud de incremento del límite de servicio.

P: ¿Por qué veo registros duplicados en el bucket de Amazon S3, la tabla de Amazon Redshift, el índice de Amazon OpenSearch o clústeres de Splunk?

Amazon Kinesis Data Firehose utiliza, al menos una vez, semántica para la entrega de datos. Excepcionalmente, como, por ejemplo, si se excede el tiempo de espera de la solicitud en un intento de entrega de datos, los reintentos de entrega que realiza Firehose pueden ocasionar registros duplicados si la solicitud inicial termina siendo aceptada.

P: ¿Qué sucede si falla la entrega de datos en el bucket de Amazon S3?

Si su origen de datos es Direct put y la entrega de datos a su bucket de Amazon S3 falla, Amazon Kinesis Data Firehose volverá a intentar entregar datos cada 5 segundos durante un periodo máximo de 24 horas. Si el problema persiste después del periodo máximo de retención de 24 horas, Amazon Kinesis Data Firehose descarta los datos.

Si su origen de datos es Kinesis Data Streams y falla la entrega de datos a su bucket de Amazon S3, Amazon Kinesis Data Firehose volverá a intentar entregar datos cada 5 segundos durante un periodo máximo de lo que está configurado en Kinesis Data Streams.

P: ¿Qué sucede si falla la entrega de datos en el clúster de Amazon Redshift?

Si la entrega de datos al clúster de Amazon Redshift falla, Amazon Kinesis Data Firehose volverá a intentar entregar los datos cada 5 minutos durante un periodo máximo de 120 minutos. Después de 120 minutos, Amazon Kinesis Data Firehose omitirá el lote actual de objetos de S3 listos para COPIAR y pasará al siguiente lote. La información relativa a los objetos omitidos se entrega al bucket de S3 en la forma de un archivo de manifiestos en la carpeta de errores. Este archivo de manifiestos se puede utilizar para realizar la operación manualmente. Si desea obtener información acerca de cómo copiar datos manualmente a partir de los archivos de manifiestos, consulte Uso de un manifiesto para especificar archivos de datos.

P: ¿Qué sucede si falla la entrega de datos en el dominio de Amazon OpenSearch?

Con Amazon OpenSearch Service como destino, puede especificar durante cuánto tiempo se volverá a intentar la entrega (entre 0 y 7200 segundos) cuando cree el flujo de entrega. Si la entrega de datos en el dominio de Amazon ES no se concreta, Amazon Kinesis Data Firehose volverá a intentar entregar los datos durante el tiempo especificado. Una vez transcurrido dicho periodo, Amazon Kinesis Data Firehose omitirá el lote actual de datos y pasará al siguiente. Los datos sobre los documentos que se omitieron se entregarán en el bucket de S3 en la carpeta opensearch_failed, que puede utilizar para replicarlos manualmente.

P: ¿Qué sucede si ocurre un error de transformación de datos?

Se pueden dar dos tipos de errores cuando Firehose intenta invocar la función de Lambda para la transformación de datos:

  • El primer tipo es cuando la invocación de la función falla por razones como el alcance del límite del tiempo de espera de la red o los límites de la invocación de Lambda. En estos contextos, Firehose intenta realizar la invocación tres veces de forma predeterminada y luego omite ese lote de registros específico. Los registros omitidos se tratan como registros que no se han podido procesar. Puede configurar el número de reintentos de invocación entre 0 y 300 con las API CreateDeliveryStream y UpdateDeliveryStream. En este tipo de error, también puede utilizar la función de registro de errores de Firehose para emitir errores de invocación a CloudWatch Logs. Puede obtener más información en la sección Monitoreo con Amazon CloudWatch Logs.
  • El segundo tipo de error ocurre cuando el resultado de transformación de un registro aparece como "ProcessingFailed" al ser devuelto de la función de Lambda. Firehose trata estos registros como registros que no han podido procesarse. En este tipo de error, también puede utilizar la función de registro de Lambda para emitir registros de errores a CloudWatch Logs. Puede obtener más información en la sección Acceso a Amazon CloudWatch Logs para AWS Lambda.

En ambos tipos de error, los registros que no se procesaron correctamente se entregan en el bucket de S3, en la carpeta processing_failed.

P: ¿Por qué el tamaño de los objetos de S3 entregados es mayor que el tamaño del búfer que especifiqué en la configuración de la transmisión de entrega?

El tamaño de los objetos S3 entregados suele ser igual al tamaño del búfer especificado si se cumple la condición del tamaño del búfer antes de que se cumpla la condición del intervalo del búfer. Sin embargo, cuando la entrega de datos al destino queda rezagada con respecto a la escritura de datos en la transmisión de entrega, Firehose aumenta el tamaño del búfer dinámicamente para ponerse al corriente y asegurarse de que todos los datos se entreguen en sus destinos. En estas circunstancias, el tamaño de los objetos de S3 entregados puede ser mayor que el tamaño de búfer especificado.

P: ¿Qué es la carpeta de errores que hay en el bucket de Amazon S3?

La carpeta de errores almacena los archivos de manifiestos que contienen información de los objetos de S3 que no se han cargado en el clúster de Amazon Redshift. Puede volver a cargar estos objetos manualmente mediante el comando COPY de Redshift. Si desea obtener información acerca de cómo copiar datos manualmente a partir de los archivos de manifiestos, consulte Uso de un manifiesto para especificar archivos de datos.

P: ¿Qué es la carpeta opensearch_failed que hay en el bucket de Amazon S3?

La carpeta opensearch_failed almacena los documentos que no pudieron cargarse en su dominio de Amazon OpenSearch. ¿Qué sucede si falla el envío de datos a mi dominio de Amazon OpenSearch? Puede volver a indexar estos documentos manualmente para replicarlos.

P: ¿Qué es la carpeta processing_failed que hay en el bucket de Amazon S3?

La carpeta processing_failed almacena los registros que no se han podido transformar en la función de AWS Lambda. Puede volver a procesar estos registros manualmente.

P: ¿Cómo puedo monitorizar las operaciones y el rendimiento de la transmisión de entrega en Amazon Kinesis Data Firehose?

La consola de Firehose muestra métricas clave sobre el funcionamiento y el rendimiento, como, por ejemplo, el volumen de datos entrantes y de datos entregados. Amazon Kinesis Data Firehose también se integra en métricas de Amazon CloudWatch para recopilar, ver y analizar métricas correspondientes a las transmisiones de entrega. Para obtener más información sobre las métricas de Amazon Kinesis Data Firehose, consulte Monitoreo con Amazon CloudWatch Metrics en la guía para desarrolladores de Amazon Kinesis Data Firehose.

P: ¿Cómo puedo monitorizar los errores en la transformación y la entrega de datos de la transmisión de entrega en Amazon Kinesis Data Firehose?

Amazon Kinesis Data Firehose se integra en Amazon CloudWatch Logs, de modo que podrá ver los registros de errores específicos si falla la transformación o la entrega de datos. Puede habilitar los registros de errores al crear la transmisión de entrega. Para obtener más información, consulte Monitoreo con Amazon CloudWatch Logs en la guía para desarrolladores de Amazon Kinesis Data Firehose.

P: ¿Cómo puedo administrar y controlar el acceso a la transmisión de entrega de Amazon Kinesis Data Firehose?

Amazon Kinesis Data Firehose se integra en AWS Identity and Access Management, un servicio que permite controlar de forma segura el acceso de los usuarios a sus recursos y productos de AWS. Por ejemplo, puede crear una política que permita agregar datos a la transmisión de entrega de Firehose únicamente a un usuario o a un grupo específico. Para obtener más información sobre cómo administrar y controlar el acceso a la transmisión, consulte Control del acceso con Amazon Kinesis Data Firehose.

P: ¿Cómo puedo registrar las llamadas a la API que se realizan a la transmisión de Amazon Kinesis Data Firehose para el análisis de seguridad y la solución de problemas operativos?

Amazon Kinesis Data Firehose se integra en AWS CloudTrail, un servicio que registra las llamadas a la API de AWS de su cuenta y le entrega archivos de registro. Para obtener más información sobre el registro de llamadas a la API y la lista de las operaciones de la API de Amazon Kinesis Data Firehose admitidas, consulte Registro de las llamadas a la API de Amazon Kinesis Data Firehose con AWS CloudTrail.

Precios y facturación

P: ¿Kinesis Data Firehose está disponible dentro de la capa gratuita de AWS?

En la actualidad, Kinesis Data Firehose no está disponible dentro de la capa gratuita de AWS. La capa gratuita de AWS es un programa que ofrece pruebas gratuitas de varios servicios de AWS. Para obtener más información, consulte Capa gratuita de AWS.

P: ¿Cuánto cuesta Kinesis Data Firehose?

Kinesis Data Firehose aplica un esquema de precios sencillo de pago por uso. No hay costos iniciales ni cuotas mínimas y solo tendrá que pagar por los recursos que consuma. Los precios de Amazon Kinesis Data Firehose se basan en el volumen de datos (GB) que consuma Firehose, teniendo en cuenta que cada registro se redondea a los 5 KB siguientes. Para obtener más información sobre los costos de Amazon Kinesis Data Firehose, consulte Precios de Amazon Kinesis Data Firehose.

P: ¿Cómo se calcula el redondeo a los siguientes 5 KB cuando utilizo la operación PutRecordBatch para enviar datos a Amazon Kinesis Data Firehose?

El redondeo a 5 KB se calcula en el nivel de registro y no en el nivel de operación de la API. Por ejemplo, si la llamada PutRecordBatch contiene dos registros de 1 KB, el volumen de datos de esa llamada se calculará como 10 KB. (5 KB por registro)

P: ¿Los precios de Kinesis Data Firehose incluyen los costos de Amazon S3, Amazon Redshift, Amazon OpenSearch Service y AWS Lambda?

No, los costos asociados con el uso de Amazon S3, Amazon Redshift, Amazon OpenSearch Service y AWS Lambda, incluidos el almacenamiento y las solicitudes, se facturan aparte. Para obtener más información, consulte Precios de Amazon S3Precios de Amazon RedshiftPrecios de Amazon OpenSearch Service y Precios de AWS Lambda.

Acuerdo de nivel de servicios

P: ¿Qué se garantiza en el acuerdo de nivel de servicio de Amazon Kinesis Data Firehose?

Mediante el acuerdo de nivel de servicio de Amazon Kinesis Data Firehose se garantiza un porcentaje de tiempo de funcionamiento mensual de al menos 99,9 % para Amazon Kinesis Data Firehose.

P: ¿Cómo sé si reúno los requisitos para recibir el crédito para el servicio que corresponde según el acuerdo de nivel de servicio?

Será elegible para recibir crédito del acuerdo para Amazon Kinesis Data Firehose bajo el acuerdo de Amazon Kinesis Data Firehose si más de una zona de disponibilidad en las que ejecuta una tarea, dentro de la misma región, tiene un porcentaje de tiempo de funcionamiento mensual inferior al 99,9 % durante cualquier ciclo de facturación mensual.

Para obtener información completa sobre los términos y las condiciones del acuerdo, así como detalles sobre cómo enviar una reclamación, consulte la página con detalles del acuerdo de Amazon Kinesis Data Firehose.

Más información sobre los precios de Amazon Kinesis Data Firehose

Visite la página de precios
¿Está listo para comenzar?
Regístrese
¿Tiene más preguntas?
Contacte con nosotros