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.
Las siguientes secciones contienen los conceptos y la terminología necesarios para comprender y sacar provecho de la biblioteca de Kinesis Producer ()KPL.
Registros
En esta guía, distinguimos entre los registros de KPLusuario y los registros de Kinesis Data Streams. Cuando utilizamos el término registro sin ningún calificador, nos referimos a un registro de usuario de KPL. Cuando nos referimos a un registro de Kinesis Data Streams, decimos explícitamente registro de Kinesis Data Streams.
Un registro de usuario de la KPL es un blob de datos que tiene un significado determinado para el usuario. Los ejemplos incluyen un JSON blob que representa un evento de la interfaz de usuario en un sitio web o una entrada de registro de un servidor web.
Un registro de Kinesis Data Streams es una instancia de Record
la estructura de datos definida por el servicio Kinesis Data Streams. API Contiene una clave de partición, un número secuencial y un blob de datos.
Agrupación en lotes
La agrupación en lotes se refiere a la realización de una sola acción en varios elementos en lugar de realizar la acción repetidamente en cada elemento individual.
En este contexto, el “elemento” es un registro, y la acción es enviarlo a Kinesis Data Streams. En una situación sin procesamiento por lotes, colocaría cada registro en un registro independiente de Kinesis Data Streams y haría una HTTP solicitud para enviarlo a Kinesis Data Streams. Con el procesamiento por lotes, cada HTTP solicitud puede contener varios registros en lugar de solo uno.
La KPL admite dos tipos de agrupación en lotes:
-
Agregación: almacenamiento de varios registros en un único registro de Kinesis Data Streams.
-
Recopilación: se utiliza la API operación
PutRecords
para enviar varios registros de Kinesis Data Streams a una o más particiones de la transmisión de datos de Kinesis.
Los dos tipos de agrupación de la KPL han sido diseñados para coexistir y se pueden activar o desactivar de forma independiente entre sí. Ambos están activados de forma predeterminada.
Agregación
La agregación se refiere al almacenamiento de varios registros en un registro de Kinesis Data Streams. La agregación permite a los clientes aumentar la cantidad de registros enviados por API llamada, lo que aumenta de manera efectiva el rendimiento de los productores.
Las particiones de Kinesis Data Streams admiten hasta 1000 registros de Kinesis Data Streams por segundo o un rendimiento de 1 MB. El límite de registros de Kinesis Data Streams por segundo fuerza a los consumidores a usar registros de tamaño inferior a 1 KB. La agregación de registros en lote permite a los clientes combinar varios registros en un único registro de Kinesis Data Streams. Esto permite a los clientes mejorar su rendimiento por fragmento.
Considere el caso de un fragmento en la región us-east-1 que actualmente se ejecuta a una velocidad constante de 1000 registros por segundo, con registros de 512 bytes cada uno. Con la KPL agregación, puede empaquetar 1000 registros en solo 10 registros de Kinesis Data Streams, reduciéndolos RPS a 10 (de 50 KB cada uno).
Recopilación
La recopilación consiste en agrupar por lotes varios registros de Kinesis Data Streams y enviarlos en una HTTP sola solicitud con una llamada a API la PutRecords
operación, en lugar de enviar cada registro de Kinesis Data Streams en su propia solicitud. HTTP
Esto aumenta el rendimiento en comparación con no utilizar ninguna recopilación, ya que reduce la sobrecarga que supone realizar muchas solicitudes por separado. HTTP De hecho, PutRecords
en sí se ha diseñado específicamente para este fin.
La recopilación es diferente de la agregación, ya que funciona con grupos de registros de Kinesis Data Streams. Los registros de Kinesis Data Streams que se recopilan pueden contener varios registros del usuario. La relación se puede visualizar así:
record 0 --|
record 1 | [ Aggregation ]
... |--> Amazon Kinesis record 0 --|
... | |
record A --| |
|
... ... |
|
record K --| |
record L | | [ Collection ]
... |--> Amazon Kinesis record C --|--> PutRecords Request
... | |
record S --| |
|
... ... |
|
record AA--| |
record BB | |
... |--> Amazon Kinesis record M --|
... |
record ZZ--|