Hoje, a AWS anunciou que Fluxos de dados do Amazon Kinesis agora suporta tamanhos de registro de até 10 MiB – um aumento de dez vezes em relação ao limite anterior. Com este lançamento, agora você pode publicar cargas de dados maiores e intermitentes em seus streams de dados enquanto continua a usar as APIs existentes do Kinesis Knowledge Streams em seus aplicativos sem esforço adicional. Este lançamento é acompanhado por um aumento de 2x no máximo PutRecords tamanho da solicitação de 5 MiB para 10 MiB, simplificando pipelines de dados e reduzindo a sobrecarga operacional para análise de IoT, captura de dados alterados e cargas de trabalho generativas de IA.
Nesta postagem, exploramos o suporte a registros grandes do Amazon Kinesis Knowledge Streams, incluindo os principais casos de uso, configuração de tamanhos máximos de registros, considerações de limitação e práticas recomendadas para desempenho perfect.
Casos de uso do mundo actual
À medida que os volumes de dados crescem e os casos de uso evoluem, temos visto uma demanda crescente por suporte a tamanhos de registros maiores em cargas de trabalho de streaming. Anteriormente, quando period necessário processar registros maiores que 1 MiB, você tinha duas opções:
- Dividir registros grandes em vários registros menores em aplicativos de produção e remontá-los em aplicativos de consumo
- Armazene registros grandes em Serviço de armazenamento simples da Amazon (Amazon S3) e enviar apenas metadados por meio do Kinesis Knowledge Streams
Ambas as abordagens são úteis, mas acrescentam complexidade aos pipelines de dados, exigindo código adicional, aumentando a sobrecarga operacional e complicando o tratamento de erros e a depuração, especialmente quando os clientes precisam transmitir grandes registros de forma intermitente.
Esse aprimoramento melhora a facilidade de uso e reduz a sobrecarga operacional para clientes que lidam com cargas de dados intermitentes em vários setores e casos de uso. No domínio analítico da IoT, veículos conectados e equipamentos industriais estão gerando volumes crescentes de dados de telemetria de sensores, com o tamanho dos registros de telemetria individuais excedendo ocasionalmente o limite anterior de 1 MiB no Kinesis. Isso exigia que os clientes implementassem soluções alternativas complexas, como dividir registros grandes em vários registros menores ou armazenar os registros grandes separadamente e enviar metadados apenas por meio do Kinesis. Da mesma forma, em pipelines de captura de dados de alteração (CDC) de banco de dados, grandes registros de transações podem ser produzidos, especialmente durante operações em massa ou alterações de esquema. No espaço de aprendizado de máquina e IA generativa, os fluxos de trabalho exigem cada vez mais a ingestão de cargas maiores para oferecer suporte a conjuntos de recursos mais ricos e tipos de dados multimodais, como áudio e imagens. O aumento do limite de tamanho de registro do Kinesis de 1 MiB para 10 MiB limita a necessidade desses tipos de soluções alternativas complexas, simplificando pipelines de dados e reduzindo a sobrecarga operacional para clientes em IoT, CDC e casos de uso de análise avançada. Os clientes agora podem ingerir e processar com mais facilidade esses grandes registros de dados intermitentes usando as mesmas APIs conhecidas do Kinesis.
Como funciona
Para começar a processar registros maiores:
- Atualize o limite máximo de tamanho de registro do seu stream (
maxRecordSize) por meio do Console AWS, da CLI da AWS ou dos SDKs da AWS. - Proceed usando o mesmo
PutRecordePutRecordsAPIs para produtores. - Proceed usando o mesmo
GetRecordsouSubscribeToShardAPIs para consumidores.
Sua transmissão estará em Updating standing por alguns segundos antes de estar pronto para ingerir registros maiores.
Começando
Para começar a processar registros maiores com o Kinesis Knowledge Streams, você pode atualizar o tamanho máximo do registro usando o AWS Administration Console, CLI ou SDK.
No Console de gerenciamento da AWS,
- Navegue até o console do Kinesis Knowledge Streams.
- Escolha seu stream e selecione o Configuração guia.
- Escolher Editar (ao lado de Tamanho máximo do registro).
- Defina o tamanho máximo de registro desejado (até 10MiB).
- Salve suas alterações.
Observação: Essa configuração ajusta apenas o tamanho máximo do registro para esse stream de dados do Kinesis. Antes de aumentar esse limite, verifique se todos os aplicativos downstream podem lidar com registros maiores.
Consumidores mais comuns, como Kinesis Consumer Library (a partir da versão 2.x), Amazon Knowledge Firehose entrega para Amazon S3 e AWS Lambda suporta processamento de registros maiores que 1 MiB. Para saber mais, consulte Amazon Kinesis Knowledge Streams documentação para registros grandes.
Você também pode atualizar essa configuração usando a AWS CLI:
Ou usando o AWS SDK:
Limitação e práticas recomendadas para desempenho perfect
Os limites de rendimento de fragmentos individuais de 1 MiB/s para gravações e 2 MiB/s para leituras permanecem inalterados com suporte para tamanhos de registro maiores. Para trabalhar com registros grandes, vamos entender como funciona a limitação. Em um stream, cada fragmento tem capacidade de transferência de 1 MiB por segundo. Para acomodar registros grandes, cada fragmento aumenta temporariamente até 10 MiB/s, eventualmente atingindo uma média de 1 MiB por segundo. Para ajudar a visualizar esse comportamento, pense em cada fragmento tendo um tanque de capacidade que é recarregado a 1MiB por segundo. Depois de enviar um registro grande (por exemplo, um registro de 10 MiB), o tanque começa a ser recarregado imediatamente, permitindo o envio de registros menores à medida que a capacidade fica disponível. Essa capacidade de suportar registros grandes é continuamente reabastecida no fluxo. A taxa de recarga depende do tamanho dos registros grandes, do tamanho do registro de linha de base, do padrão geral de tráfego e da estratégia de chave de partição escolhida. Ao processar registros grandes, cada fragmento continua a processar o tráfego de linha de base enquanto aproveita sua capacidade de intermitência para lidar com essas cargas maiores.
Para ilustrar como o Kinesis Knowledge Streams lida com diferentes proporções de registros grandes, vamos examinar os resultados de um teste simples. Para nossa configuração de teste, configuramos um produtor que envia dados para um fluxo sob demanda (o padrão é 4 fragmentos) a uma taxa de 50 registros por segundo. Os registros de linha de base têm 10 KB de tamanho, enquanto os registros grandes têm 2 MiB cada. Conduzimos vários casos de teste aumentando progressivamente a proporção de registros grandes de 1% para 5% do tráfego complete do fluxo, juntamente com um caso de linha de base que não contém registros grandes. Para garantir condições de teste consistentes, distribuímos os registros grandes uniformemente ao longo do tempo. Por exemplo, no cenário de 1%, enviamos um registro grande para cada 100 registros de linha de base. O gráfico a seguir mostra os resultados:

No gráfico, as anotações horizontais indicam picos de ocorrência de estrangulamento. O cenário de referência, representado pela linha azul, mostra eventos de limitação mínimos. À medida que a proporção de registros grandes aumenta de 1% para 5%, observamos um aumento na taxa na qual o fluxo limita seus dados, com uma aceleração notável nos eventos de limitação entre os cenários de 2% e 5%. Este teste demonstra como o Kinesis Knowledge Streams gerencia uma proporção crescente de registros grandes.
Recomendamos manter registros grandes em 1-2% da contagem complete de registros para obter o desempenho perfect. Em ambientes de produção, o comportamento actual do fluxo varia com base em três fatores principais: o tamanho dos registros de linha de base, o tamanho dos registros grandes e a frequência com que registros grandes aparecem no fluxo. Recomendamos que você teste seu padrão de demanda para determinar o comportamento específico.
Com fluxos sob demanda, quando o tráfego de entrada excede 500 KB/s por fragmento, ele divide o fragmento em 15 minutos. Os valores da chave hash do fragmento pai são redistribuídos uniformemente entre os fragmentos filho. O Kinesis dimensiona automaticamente o stream para aumentar o número de fragmentos, permitindo a distribuição de registros grandes em um número maior de fragmentos, dependendo da estratégia de chave de partição empregada.
Para desempenho perfect com registros grandes:
- Use uma estratégia de chave de partição aleatória para distribuir registros grandes uniformemente entre os fragmentos.
- Implemente lógica de espera e nova tentativa em aplicativos produtores.
- Monitore métricas em nível de fragmento para identificar possíveis gargalos.
Se você ainda precisar fazer streaming contínuo de registros grandes, considere usar o Amazon S3 para armazenar cargas e enviar apenas referências de metadados ao stream. Consulte Processamento de registros grandes com o Amazon Kinesis Knowledge Streams para mais informações.
Conclusão
O Amazon Kinesis Knowledge Streams agora oferece suporte a tamanhos de registro de até 10 MiB, um aumento de dez vezes em relação ao limite anterior de 1 MiB. Esse aprimoramento simplifica pipelines de dados para análise de IoT, captura de dados alterados e cargas de trabalho de IA/ML, eliminando a necessidade de soluções alternativas complexas. Você pode continuar usando as APIs existentes do Kinesis Knowledge Streams sem alterações adicionais no código e se beneficiar da maior flexibilidade no tratamento de grandes cargas intermitentes.
- Para um desempenho perfect, recomendamos manter registros grandes em 1-2% da contagem complete de registros.
- Para obter melhores resultados com registros grandes, implemente uma estratégia de chave de partição distribuída uniformemente para distribuir uniformemente os registros entre os fragmentos, inclua a lógica de espera e nova tentativa nos aplicativos do produtor e monitore as métricas no nível do fragmento para identificar possíveis gargalos.
- Antes de aumentar o tamanho máximo do registro, verifique se todos os aplicativos e consumidores downstream podem lidar com registros maiores.
Estamos entusiasmados em ver como você aproveitará esse recurso para criar aplicativos de streaming mais poderosos e eficientes. Para saber mais, visite o Documentação do Amazon Kinesis Knowledge Streams.