Principais conceitos do KPL - Amazon Kinesis Data Streams

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Principais conceitos do KPL

As seções a seguir contêm os conceitos e a terminologia necessários para entender e se beneficiar da Kinesis Producer Library (KPL).

Registros

Neste guia, distinguimos entre registros de usuário KPL e registros do Kinesis Data Streams. Quando usamos o termo registro sem um qualificador, nos referimos a um registro de usuário KPL. Quando nos referimos a um registro do Kinesis Data Streams, dizemos explicitamente um registro do Kinesis Data Streams.

Um registro de usuário KPL é uma bolha de dados que tem um significado particular para o usuário. Os exemplos incluem um blob JSON que representa um evento de interface do usuário em um site ou uma entrada de log proveniente de um servidor da web.

Um registro do Kinesis Data Streams é uma instância da estrutura deRecord dados definida pela API do serviço Kinesis Data Streams. Ele contém uma chave de partição, um número sequencial e um blob de dados.

Agrupamento em lotes

Envio em lotes refere-se à execução de uma única ação em vários itens, em vez de executar a ação repetidamente em cada item.

Nesse contexto, o “item” é um registro e a ação é enviá-lo para o Kinesis Data Streams. Em uma situação sem agrupamento em lote, você colocaria cada registro em um registro separado do Kinesis Data Streams e faria uma solicitação HTTP para enviá-lo ao Kinesis Data Streams. Com o agrupamento em lotes, cada solicitação HTTP pode carregar vários registros, em vez de apenas um.

O KPL oferece suporte a dois tipos de processamento por lotes:

  • Agregação: armazenar vários registros em um único registro do Kinesis Data Streams.

  • Coleção — Usando a operação da APIPutRecords para enviar vários registros do Kinesis Data Streams para um ou mais fragmentos em seu stream de dados do Kinesis.

Os dois tipos de lotes KPL são projetados para coexistir e podem ser ativados ou desativados independentemente um do outro. Por padrão, ambos estão ativados.

Agregação

A agregação se refere ao armazenamento de vários registros em um registro do Kinesis Data Streams. A agregação permite que os clientes aumentem o número de registros enviados por chamada de API, o que aumenta efetivamente a taxa de transferência do produtor.

Os fragmentos do Kinesis Data Streams suportam até 1.000 registros do Kinesis Data Streams por segundo, ou 1 MB de taxa de transferência. O limite de registros por segundo do Kinesis Data Streams vincula clientes a registros menores que 1 KB. A agregação de registros permite que os clientes combinem vários registros em um único registro do Kinesis Data Streams. Isso permite que os clientes melhorem a própria taxa de transferência por estilhaço.

Considere o caso de um estilhaço na região us-east-1 que está atualmente em execução à taxa constante de 1.000 registros por segundo, com registros de 512 bytes cada. Com a agregação de KPL, você pode empacotar 1.000 registros em apenas 10 registros do Kinesis Data Streams, reduzindo o RPS para 10 (com 50 KB cada).

Coleta

A coleção se refere ao agrupamento de vários registros do Kinesis Data Streams e ao envio em uma única solicitação HTTP com uma chamada para a operação da APIPutRecords, em vez de enviar cada registro do Kinesis Data Streams em sua própria solicitação HTTP.

Isso aumenta a taxa de transferência em comparação com o uso de nenhuma coleção, pois reduz a sobrecarga de fazer muitas solicitações HTTP separadas. Na verdade, PutRecords, por si só, foi projetado especificamente para essa finalidade.

A coleção difere da agregação porque funciona com grupos de registros do Kinesis Data Streams. Os registros do Kinesis Data Streams que estão sendo coletados ainda podem conter vários registros do usuário. O relacionamento pode ser visualizado da seguinte maneira:

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--|