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.
Conceptos clave de KPL
Las siguientes secciones contienen conceptos y términos necesarios para comprender y utilizar Kinesis Producer Library (KPL).
Registros
En esta guía, distinguimos entre registros de usuario de KPL y 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 KPL es un blob de datos que tiene un significado determinado para el usuario. Entre los ejemplos se incluyen un blob JSON 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 la estructura de datos de Record
definida por la API del servicio Kinesis Data Streams. 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 agrupación en lotes, cada registro se insertaría en un registro de Kinesis Data Streams independiente y se hará una solicitud HTTP para enviarlo a Kinesis Data Streams. Al agrupar en lotes, cada solicitud HTTP puede tener varios registros en lugar de solo uno.
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: uso de la operación de la API
PutRecords
para enviar varios registros de Kinesis Data Streams a una o varias particiones del flujo de datos de Kinesis.
Los dos tipos de agrupación en lote de KPL se diseñaron 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 el número de registros enviados por cada llamada a la API, lo que aumenta el rendimiento del productor de manera eficaz.
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.
Piense en el caso de un fragmento en la región us-east-1 que se está ejecutando a una velocidad constante de 1000 registros por segundo, con registros de 512 bytes cada uno. Con la agregación de KPL puede empaquetar 1000 registros en solo 10 registros de Kinesis Data Streams, de manera que el número de registros por segundo se reduce a 10 (con 50 KB cada uno).
Recopilación
La recopilación se refiere a agrupar en lote varios registros de Kinesis Data Streams y enviarlos en una única solicitud HTTP con una llamada a la operación de la API PutRecords
, en lugar de enviar cada registro de Kinesis Data Streams en su propia solicitud HTTP.
Esto aumenta el rendimiento, si lo comparamos con una situación en la que no se use recopilación, ya que reduce la sobrecarga que implica realizar muchas solicitudes de HTTP independientes. 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--|