Conexiones de AWS Glue Streaming - AWS Glue

Conexiones de AWS Glue Streaming

En las siguientes secciones se proporciona información sobre cómo utilizar las conexiones en AWS Glue Streaming.

Uso de conexiones de Kafka

Puede utilizar una conexión de Kafka para leer y escribir en los flujos de datos de Kafka mediante información almacenada en una tabla del catálogo de datos o si proporciona información para acceder directamente al flujo de datos. La conexión admite un clúster de Kafka o un clúster de Amazon Managed Streaming para Apache Kafka. Puede leer la información de Kafka en un DataFrame de Spark para luego convertirla en un DynamicFrame de AWS Glue. Puede escribir los DynamicFrame en Kafka en un formato JSON. Si accede directamente a la secuencia de datos, utilice estas opciones para proporcionar información sobre cómo acceder a la secuencia de datos.

Si utiliza getCatalogSource o create_data_frame_from_catalog para consumir los registros de un origen de streaming de Kafka, o getCatalogSink o write_dynamic_frame_from_catalog para escribir registros en Kafka, el trabajo cuenta con la base de datos del Catálogo de datos y la información del nombre de la tabla, lo cual se puede utilizar para obtener algunos parámetros básicos para la lectura de un origen de streaming de Kafka. Si utiliza getSource, getCatalogSink, getSourceWithFormat, getSinkWithFormat, createDataFrameFromOptions, create_data_frame_from_options o write_dynamic_frame_from_catalog, debe especificar estos parámetros básicos con las opciones de conexión que se describen aquí.

Puede especificar las opciones de conexión para Kafka con los argumentos que se mencionan a continuación para los métodos especificados en la clase GlueContext.

  • Scala

    • connectionOptions: se debe utilizar con getSource, createDataFrameFromOptions y getSink

    • additionalOptions: se debe utilizar con getCatalogSource, getCatalogSink

    • options: se debe utilizar con getSourceWithFormat, getSinkWithFormat

  • Python

    • connection_options: se debe utilizar con create_data_frame_from_options, write_dynamic_frame_from_options

    • additional_options: se debe utilizar con create_data_frame_from_catalog, write_dynamic_frame_from_catalog

    • options: se debe utilizar con getSource, getSink

Para obtener notas y conocer las restricciones sobre los trabajos de ETL de transmisión, consulte Notas y restricciones de ETL de streaming.

Temas

    Configurar Kafka

    No hay requisitos previos AWS para conectarse a las transmisiones de Kafka disponibles a través de Internet.

    Puede crear una conexión Glue Kafka AWS para gestionar sus credenciales de conexión. Para obtener más información, consulte Creación de una conexión de AWS Glue para un flujo de datos Apache Kafka. En la configuración del trabajo de Glue AWS, proporcione connectionName como conexión de red adicional y, a continuación, en la llamada al método, proporcione connectionName al parámetro connectionName.

    En algunos casos, tendrá que configurar requisitos previos adicionales:

    • Si utiliza Amazon Managed Streaming for Apache Kafka con autenticación de IAM, necesitará una configuración de IAM adecuada.

    • Si utiliza Amazon Managed Streaming for Apache Kafka con una Amazon VPC, necesitará una configuración de Amazon VPC adecuada. Deberá crear una conexión a AWS Glue que proporcione información de conexión de Amazon VPC. Necesitará que la configuración de su trabajo incluya la conexión Glue AWS como conexión de red adicional.

    Para obtener más información sobre los requisitos previos del trabajo de ETL de Streaming, consulte Trabajos ETL de streaming en AWS Glue.

    Ejemplo: leer desde transmisiones de Kafka

    Se utiliza junto con forEachBatch.

    Ejemplo de origen de streaming de Kafka:

    kafka_options = { "connectionName": "ConfluentKafka", "topicName": "kafka-auth-topic", "startingOffsets": "earliest", "inferSchema": "true", "classification": "json" } data_frame_datasource0 = glueContext.create_data_frame.from_options(connection_type="kafka", connection_options=kafka_options)

    Ejemplo: escritura a flujos de Kafka

    Ejemplos de escritura a Kafka:

    Ejemplo con el método getSink:

    data_frame_datasource0 = glueContext.getSink( connectionType="kafka", connectionOptions={ JsonOptions("""{ "connectionName": "ConfluentKafka", "classification": "json", "topic": "kafka-auth-topic", "typeOfData": "kafka"} """)}, transformationContext="dataframe_ApacheKafka_node1711729173428") .getDataFrame()

    Ejemplo con el método write_dynamic_frame.from_options:

    kafka_options = { "connectionName": "ConfluentKafka", "topicName": "kafka-auth-topic", "classification": "json" } data_frame_datasource0 = glueContext.write_dynamic_frame.from_options(connection_type="kafka", connection_options=kafka_options)

    Referencia de opciones de conexión de Kafka

    Al leer, utilice las opciones de conexión con "connectionType": "kafka" a continuación:

    • "bootstrap.servers" (obligatorio): una lista de direcciones URL Bootstrap, por ejemplo, como b-1.vpc-test-2.o4q88o.c6.kafka.us-east-1.amazonaws.com:9094. Esta opción debe especificarse en la llamada a la API o definirse en los metadatos de la tabla en el Data Catalog.

    • "security.protocol" (obligatorio): el protocolo que se utiliza para la comunicación con los agentes. Los valores posibles son "SSL" o."PLAINTEXT"

    • "topicName" (Obligatorio) Lista separada por comas de temas a los que suscribirse. Debe especificar solo una opción de "topicName", "assign" o "subscribePattern".

    • "assign": (Obligatorio) Una cadena JSON que especifica el valor de TopicPartitions para consumir. Debe especificar solo una opción de "topicName", "assign" o "subscribePattern".

      Ejemplo: “{"temaA":[0,1],"temaB":[2,4]}”

    • "subscribePattern": (obligatorio) cadena de expresiones regulares de Java que identifica la lista de temas a la que desea suscribirse. Debe especificar solo una opción de "topicName", "assign" o "subscribePattern".

      Ejemplo: “tema.*”

    • "classification" (Obligatorio) El formato de archivo utilizado por los datos del registro. Obligatorio a menos que se proporcione a través del catálogo de datos.

    • "delimiter" (Opcional) El separador de valores que se utiliza cuando classification es CSV. El valor predeterminado es “,”.

    • "startingOffsets": (opcional) posición inicial en el tema de Kafka para leer los datos. Los valores posibles son "earliest" o."latest" El valor predeterminado es "latest".

    • "startingTimestamp": (Opcional, solo compatible con la versión 4.0 o posterior de Glue AWS) La marca de tiempo del registro en el tema de Kafka para leer los datos. Los valores posibles son una cadena de marca de tiempo en formato UTC en el patrón yyyy-mm-ddTHH:MM:SSZ (donde Z representa un desplazamiento de zona horaria UTC con un +/-. Por ejemplo, “2023-04-04T08:00:00-04:00”).

      Nota: Solo una de las opciones 'startingOffsets' o 'startingTimestamp' puede estar presente en la lista de opciones de conexión del script de streaming de AWS Glue, incluir estas dos propiedades producirá un error en el trabajo.

    • "endingOffsets": (opcional) el punto final cuando finaliza una consulta por lotes. Los valores posibles son "latest" o una cadena JSON que especifica una compensación final para cada TopicPartition.

      Para la cadena JSON, el formato es {"topicA":{"0":23,"1":-1},"topicB":{"0":-1}}. El valor -1 como compensación representa "latest".

    • "pollTimeoutMs": (opcional) tiempo de espera en milisegundos para sondear datos de Kafka en ejecutores de trabajos de Spark. El valor predeterminado es 512.

    • "numRetries": (opcional) el número de veces que se reintenta antes de no obtener las compensaciones de Kafka. El valor predeterminado es 3.

    • "retryIntervalMs": (opcional) tiempo en milisegundos para esperar antes de volver a intentar obtener compensaciones Kafka. El valor predeterminado es 10.

    • "maxOffsetsPerTrigger": (opcional) el límite de velocidad en el número máximo de compensaciones que se procesan por intervalo de desencadenador. El número total de compensaciones especificado se divide de forma proporcional entre topicPartitions de diferentes volúmenes. El valor predeterminado es nulo, lo que significa que el consumidor lee todos las compensaciones hasta la última compensación conocida.

    • "minPartitions": (opcional) el número mínimo deseado de particiones para leer desde Kafka. El valor predeterminado es nulo, lo que significa que el número de particiones de Spark es igual al número de particiones de Kafka.

    • "includeHeaders": (opcional) si se deben incluir los encabezados de Kafka. Cuando la opción se establece en “verdadero”, la salida de datos contendrá una columna adicional denominada “glue_streaming_kafka_headers” con el tipo Array[Struct(key: String, value: String)]. El valor predeterminado es "false". Esta opción se encuentra disponible en la versión 3.0 o posterior de AWS Glue.

    • "schema": (Obligatorio cuando inferSchema se establece en false) Esquema que se va a utilizar para procesar la carga. Si la clasificación es avro, el esquema proporcionado debe estar en el formato de esquema Avro. Si la clasificación no es avro, el esquema proporcionado debe estar en el formato de esquema DDL.

      A continuación, se muestran algunos ejemplos de esquemas.

      Example in DDL schema format
      'column1' INT, 'column2' STRING , 'column3' FLOAT
      Example in Avro schema format
      { "type":"array", "items": { "type":"record", "name":"test", "fields": [ { "name":"_id", "type":"string" }, { "name":"index", "type": [ "int", "string", "float" ] } ] } }
    • "inferSchema": (opcional) El valor predeterminado es “false”. Si se establece en “true”, el esquema se detectará durante el tiempo de ejecución desde la carga dentro de foreachbatch.

    • "avroSchema": (obsoleto) Parámetro utilizado para especificar un esquema de datos Avro cuando se utiliza el formato Avro. Este parámetro se ha quedado obsoleto. Utilice el parámetro schema.

    • "addRecordTimestamp": (opcional) cuando esta opción se establece en “true”, la salida de datos contendrá una columna adicional denominada “__src_timestamp” que indica la hora en la que el tema recibió el registro correspondiente. El valor predeterminado es "false". Esta opción es compatible con la versión 4.0 o posterior de AWS Glue.

    • "emitConsumerLagMetrics": (opcional) cuando esta opción se establece en “true”, para cada lote, emitirá las métricas correspondientes al período comprendido entre el registro más antiguo recibido por el tema y el momento en que llegue a AWS Glue en CloudWatch. El nombre de la métrica es “glue.driver.streaming.maxConsumerLagInMs”. El valor predeterminado es "false". Esta opción es compatible con la versión 4.0 o posterior de AWS Glue.

    Al escribir, utilice las opciones de conexión con "connectionType": "kafka" a continuación:

    • "connectionName" (Obligatorio) Nombre de la conexión de AWS Glue utilizada para conectar al clúster de Kafka (similar al origen de Kafka).

    • "topic" (Obligatorio) Si existe una columna de temas, su valor se utiliza como el tema al momento de la escritura de la fila en Kafka, a menos que esté establecida la opción de configuración de temas. Es decir, la opción de configuración de topic anula la columna de temas.

    • "partition" (Opcional) Si se especifica un número válido de partición, esta partition se utilizará cuando se envíe el registro.

      Si no se especifica ninguna partición pero hay una key, se elegirá una partición con el hash de la clave.

      Si no hay ni una key ni una partition, se elegirá una partición según la partición sticky de esos cambios cuando al menos se produzcan bytes de batch.size en la partición.

    • "key" (Opcional) Utilizado para la partición si la partition es nula.

    • "classification" (Opcional) El formato de archivo utilizado por los datos en el registro. Solo se admiten los formatos JSON, CSV y Avro.

      Con el formato Avro, podemos brindar un AvroSchema personalizado para la serialización, pero tenga en cuenta que también se tiene que brindar en el origen para la deserialización. Si no, se utilizará de manera predeterminada el AvroSchema de Apache para la serialización.

    Además, puede ajustar los receptores de Kafka según sea necesario al actualizar los parámetros de configuración de productor de Kafka. Tenga en cuenta que no hay una lista de permisos en las opciones de conexión; todos los pares clave-valor se conservan en el receptor como se encuentran.

    Sin embargo, existe una pequeña lista de opciones de rechazos que no tendrá efecto. Para obtener más información, consulte las Configuraciones específicas de Kafka.

    Uso de conexiones de Kinesis

    Puede utilizar una conexión de Kafka para leer y escribir en Amazon Kinesis Data Streams mediante información almacenada en una tabla del catálogo de datos o si proporciona información para acceder directamente al flujo de datos. Puede leer la información de Kinesis en un DataFrame de Spark y, a continuación, convertirla en un DynamicFrame de AWS Glue. Puede escribir DynamicFrames en Kinesis en formato JSON. Si accede directamente a la secuencia de datos, utilice estas opciones para proporcionar información sobre cómo acceder a la secuencia de datos.

    Si utiliza getCatalogSource o create_data_frame_from_catalog para consumir registros de una fuente de streaming de Kinesis, el trabajo tiene la base de datos de Data Catalog y la información del nombre de la tabla, y puede utilizarla para obtener algunos parámetros básicos para la lectura de la fuente de streaming de Kinesis. Si utiliza getSource, getSourceWithFormat, createDataFrameFromOptions o create_data_frame_from_options debe especificar estos parámetros básicos mediante las opciones de conexión descritas aquí.

    Puede especificar las opciones de conexión para Kinesis al utilizar los siguientes argumentos para los métodos especificados en la clase GlueContext.

    • Scala

      • connectionOptions: se debe utilizar con getSource, createDataFrameFromOptions y getSink

      • additionalOptions: se debe utilizar con getCatalogSource, getCatalogSink

      • options: se debe utilizar con getSourceWithFormat, getSinkWithFormat

    • Python

      • connection_options: se debe utilizar con create_data_frame_from_options, write_dynamic_frame_from_options

      • additional_options: se debe utilizar con create_data_frame_from_catalog, write_dynamic_frame_from_catalog

      • options: se debe utilizar con getSource, getSink

    Para obtener notas y restricciones sobre los trabajos de ETL de Streaming, consulte Notas y restricciones de ETL de streaming.

    Configurar Kinesis

    Para conectarse desde un flujo de datos de Kinesis en un trabajo de AWS Glue Spark, necesitará algunos requisitos previos:

    • Si está leyendo, el trabajo de AWS Glue debe tener permisos de IAM de nivel de acceso de lectura para el flujo de datos de Kinesis.

    • Si está escribiendo, el trabajo de AWS Glue debe tener permisos de IAM de nivel de acceso de escritura para el flujo de datos de Kinesis.

    En algunos casos, tendrá que configurar requisitos previos adicionales:

    • Si su trabajo de AWS Glue está configurado con conexiones de red adicionales (normalmente para conectarse a otros conjuntos de datos) y una de esas conexiones proporciona opciones de red de Amazon VPC, esto indicará que su trabajo se comunique a través de Amazon VPC. En este caso, también tendrá que configurar el flujo de datos de Kinesis para que se comunique a través de Amazon VPC. Puede hacerlo mediante la creación de un punto de conexión de VPC de tipo interfaz entre la Amazon VPC y el flujo de datos de Kinesis. Para obtener más información, consulte Uso de Kinesis de Amazon Kinesis Data Streams con puntos de conexión de VPC de interfaz.

    • Al especificar Amazon Kinesis Data Streams en otra cuenta, debe configurar los roles y las políticas para permitir el acceso entre cuentas. Para obtener más información, consulte Ejemplo: leer desde un flujo de Kinesis en una cuenta diferente.

    Para obtener más información sobre los requisitos previos del trabajo de ETL de Streaming, consulte Trabajos ETL de streaming en AWS Glue.

    Lea desde Kinesis

    Ejemplo: lectura de transmisiones desde Kinesis

    Se utiliza junto con forEachBatch.

    Ejemplo de origen de streaming de Amazon Kinesis:

    kinesis_options = { "streamARN": "arn:aws:kinesis:us-east-2:777788889999:stream/fromOptionsStream", "startingPosition": "TRIM_HORIZON", "inferSchema": "true", "classification": "json" } data_frame_datasource0 = glueContext.create_data_frame.from_options(connection_type="kinesis", connection_options=kinesis_options)

    Escribir en Kinesis

    Ejemplo: escribir en flujos de Kinesis

    Se utiliza junto con forEachBatch. El DynamicFrame se escribirá en el flujo en formato JSON. Si el trabajo no se puede escribir después de varios intentos, fallará. De forma predeterminada, cada registro de DynamicFrame se enviará al flujo de Kinesis de forma individual. Puede configurar este comportamiento mediante aggregationEnabled y los parámetros asociados.

    Ejemplo de escritura en Amazon Kinesis desde un trabajo de transmisión:

    Python
    glueContext.write_dynamic_frame.from_options( frame=frameToWrite connection_type="kinesis", connection_options={ "partitionKey": "part1", "streamARN": "arn:aws:kinesis:us-east-1:111122223333:stream/streamName", } )
    Scala
    glueContext.getSinkWithFormat( connectionType="kinesis", options=JsonOptions("""{ "streamARN": "arn:aws:kinesis:us-east-1:111122223333:stream/streamName", "partitionKey": "part1" }"""), ) .writeDynamicFrame(frameToWrite)

    Parámetros de conexión de Kinesis

    Designa opciones de conexión para Amazon Kinesis Data Streams.

    Utilice las siguientes opciones de conexión para los orígenes de datos de streaming de Kinesis:

    • "streamARN": (Obligatorio) Se utiliza para leer/escribir. El ARN de flujo de datos de Kinesis.

    • "classification": (Obligatorio para lectura) Se utiliza para leer. El formato de archivo utilizado por los datos del registro. Obligatorio a menos que se proporcione a través del catálogo de datos.

    • "streamName": (Opcional) Se usa para leer. Nombre de un flujo de datos de Kinesis para leer. Utilizado con endpointUrl.

    • "endpointUrl": (Opcional) Se usa para leer. Predeterminado: “https://kinesis.us-east-1.amazonaws.com”. El punto de conexión de AWS del flujo de Kinesis. No es necesario cambiar esto a menos que se conecte a una región especial.

    • "partitionKey": (Opcional) Se usa para escribir. La clave de partición de Kinesis que se utiliza al producir registros.

    • "delimiter": (Opcional) Se usa para leer. El separador de valores que se utiliza cuando classification es CSV. El valor predeterminado es “,”.

    • "startingPosition": (Opcional) Se usa para leer. La posición inicial en el flujo de datos de Kinesis para leer los datos. Los valores posibles son "latest", "trim_horizon", "earliest" o una cadena de marca de tiempo en formato UTC en el patrón yyyy-mm-ddTHH:MM:SSZ (donde Z representa un desplazamiento de zona horaria UTC con un +/-. Por ejemplo, “04-04-2023 T 08:00:00-04:00”). El valor predeterminado es "latest". Nota: La cadena de marca de tiempo en formato UTC para "startingPosition" solo es compatible con la versión 4.0 o posterior de Glue AWS.

    • "failOnDataLoss": (Opcional) No se realizará el trabajo si falta o ha caducado alguna partición activa. El valor predeterminado es "false".

    • "awsSTSRoleARN": (Opcional) Se usa para escribir/leer. El nombre de recurso de Amazon (ARN) del rol de que se asumirá mediante AWS Security Token Service (AWS STS). Este rol debe tener permisos para describir o leer operaciones de registros del flujo de datos de Kinesis. Debe utilizar este parámetro para acceder a un flujo de datos de otra cuenta. Se utiliza junto con "awsSTSSessionName".

    • "awsSTSSessionName": (Opcional) Se usa para escribir/leer. Un identificador para la sesión que asume el rol mediante AWS STS. Debe utilizar este parámetro para acceder a un flujo de datos de otra cuenta. Se utiliza junto con "awsSTSRoleARN".

    • "awsSTSEndpoint": (Opcional) El punto de conexión de AWS STS que se utilizará al conectarse a Kinesis con un rol asumido. Esto permite usar el punto de conexión regional de AWS STS en una VPC, lo que no es posible con el punto de conexión global predeterminado.

    • "maxFetchTimeInMs": (Opcional) Se usa para leer. El tiempo máximo que le tomó al ejecutor del trabajo leer los registros del lote actual en el flujo de datos de Kinesis, especificado en milisegundos (ms). Pueden realizarse varias llamadas a la API de GetRecords durante este tiempo. El valor predeterminado es 1000.

    • "maxFetchRecordsPerShard": (Opcional) Se usa para leer. El número máximo de registros que se recuperará por partición en el flujo de datos de Kinesis por microlote. Nota: El cliente puede exceder este límite si el trabajo de streaming ya leyó registros adicionales de Kinesis (en la misma llamada de obtención de registros). Si maxFetchRecordsPerShard tiene que ser preciso, entonces tiene que ser un múltiplo de maxRecordPerRead. El valor predeterminado es 100000.

    • "maxRecordPerRead": (Opcional) Se usa para leer. El número máximo de registros que se recuperará del flujo de datos de Kinesis en cada operación getRecords. El valor predeterminado es 10000.

    • "addIdleTimeBetweenReads": (Opcional) Se usa para leer. Agrega un retardo de tiempo entre dos operaciones getRecords consecutivas. El valor predeterminado es "False". Esta opción sólo se puede configurar para Glue versión 2.0 y superior.

    • "idleTimeBetweenReadsInMs": (Opcional) Se usa para leer. El tiempo mínimo de retraso entre dos operaciones getRecords consecutivas, especificado en ms. El valor predeterminado es 1000. Esta opción sólo se puede configurar para Glue versión 2.0 y superior.

    • "describeShardInterval": (Opcional) Se usa para leer. El intervalo mínimo de tiempo entre dos llamadas a la API ListShards para que su script considere cambios en los fragmentos. Para obtener más información, consulte Estrategias para cambios en los fragmentos en la Guía para desarrolladores de Amazon Kinesis Data Streams. El valor predeterminado es 1s.

    • "numRetries": (Opcional) Se usa para leer. El número máximo de reintentos para las solicitudes de la API de Kinesis Data Streams. El valor predeterminado es 3.

    • "retryIntervalMs": (Opcional) Se usa para leer. El periodo de enfriamiento (especificado en ms) antes de volver a intentar la llamada a la API de Kinesis Data Streams. El valor predeterminado es 1000.

    • "maxRetryIntervalMs": (Opcional) Se usa para leer. El periodo de enfriamiento máximo (especificado en ms) entre dos intentos de llamada a la API de Kinesis Data Streams. El valor predeterminado es 10000.

    • "avoidEmptyBatches": (Opcional) Se usa para leer. Evita crear un trabajo de microlotes vacío al comprobar si hay datos no leídos en el flujo de datos de Kinesis antes de que se inicie el lote. El valor predeterminado es "False".

    • "schema": (Obligatorio cuando inferSchema se establece en false) Se utiliza para leer. El esquema que se utilizará para procesar la carga útil. Si la clasificación es avro, el esquema proporcionado debe estar en el formato de esquema Avro. Si la clasificación no es avro, el esquema proporcionado debe estar en el formato de esquema DDL.

      A continuación, se muestran algunos ejemplos de esquemas.

      Example in DDL schema format
      `column1` INT, `column2` STRING , `column3` FLOAT
      Example in Avro schema format
      { "type":"array", "items": { "type":"record", "name":"test", "fields": [ { "name":"_id", "type":"string" }, { "name":"index", "type": [ "int", "string", "float" ] } ] } }
    • "inferSchema": (Opcional) Se usa para leer. El valor predeterminado es "false". Si se establece en “true”, el esquema se detectará durante el tiempo de ejecución desde la carga dentro de foreachbatch.

    • "avroSchema": (Obsoleto) Se usa para leer. Parámetro utilizado para especificar un esquema de datos Avro cuando se utiliza el formato Avro. Este parámetro se ha quedado obsoleto. Utilice el parámetro schema.

    • "addRecordTimestamp": (Opcional) Se usa para leer. Cuando esta opción se establece en “true”, la salida de datos contendrá una columna adicional denominada “__src_timestamp” que indica la hora en la que el flujo recibió el registro correspondiente. El valor predeterminado es "false". Esta opción es compatible con la versión 4.0 o posterior de AWS Glue.

    • "emitConsumerLagMetrics": (Opcional) Se usa para leer. Cuando la opción se establece en “verdadera”, para cada lote, emitirá las métricas correspondientes al periodo comprendido entre el registro más antiguo recibido por el flujo y el momento en que llegue a AWS Glue en CloudWatch. El nombre de la métrica es “glue.driver.streaming.maxConsumerLagInMs”. El valor predeterminado es "false". Esta opción es compatible con la versión 4.0 o posterior de AWS Glue.

    • "fanoutConsumerARN": (Opcional) Se usa para leer. El ARN de un consumidor de un flujo de Kinesis para el flujo especificado en streamARN. Se utiliza para habilitar el modo de distribución mejorada para la conexión de Kinesis. Para obtener más información sobre cómo consumir una transmisión de Kinesis con una distribución mejorada, consulte Uso de una distribución mejorada en los trabajos de streaming de Kinesis.

    • "recordMaxBufferedTime": (Opcional) Se usa para escribir. Predeterminado: 1000 (ms). Tiempo máximo que un registro permanece almacenado en búfer mientras espera a ser escrito.

    • "aggregationEnabled": (Opcional) Se usa para escribir. Valor predeterminado: verdadero. Especifica si los registros deben agregarse antes de enviarlos a Kinesis.

    • "aggregationMaxSize": (Opcional) Se usa para escribir. Predeterminado: 51 200 (bytes). Si un registro supera este límite, omitirá el agregador. Nota: Kinesis impone un límite de 50 KB en el tamaño del registro. Si lo establece por encima de 50 KB, Kinesis rechazará los registros de gran tamaño.

    • "aggregationMaxCount": (Opcional) Se usa para escribir. Predeterminado: 4294967295. Número máximo de elementos a empaquetar en un registro agregado.

    • "producerRateLimit": (Opcional) Se usa para escribir. Predeterminado: 150 (%). Limita el rendimiento por partición enviado desde un solo productor (por ejemplo, su trabajo), como porcentaje del límite de backend.

    • "collectionMaxCount": (Opcional) Se usa para escribir. Predeterminado: 500. Número máximo de elementos a incluir en una solicitud de PutRecords.

    • "collectionMaxSize": (Opcional) Se usa para escribir. Predeterminado: 5 242 880 (bytes). Cantidad máxima de datos para enviar con una solicitud de PutRecords.