View a markdown version of this page

Tabelas de streaming e entrega de S3 para Amazon Kinesis Data Streams - 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á.

Tabelas de streaming e entrega de S3 para Amazon Kinesis Data Streams

Com o Amazon Kinesis Data Streams, você pode entregar dados de streaming dos seus streams de dados do Kinesis para dois tipos de destino: tabelas de streaming no Apache Iceberg (tabelas do Amazon S3) ou buckets do Amazon S3 de uso geral. Você não precisa gerenciar nenhuma infraestrutura e pode começar a entregar em minutos. O Amazon Kinesis Data Streams lê seus registros de stream, armazena em buffer e agrega e os entrega ao seu destino configurado. A entrega é totalmente gerenciada — não há conectores, aplicativos de consumo ou recursos de computação para provisionar.

Esses recursos são compatíveis com streams executados no modo de capacidade On-Demand Advantage ou On-Demand Standard. Você configura a entrega do seu stream e especifica um destino. O Amazon Kinesis Data Streams então gerencia a escalabilidade, as novas tentativas e a confiabilidade da entrega automaticamente. A entrega não consome a taxa de transferência de leitura do seu stream e não tem impacto nos consumidores existentes.

Como funciona a entrega de dados

A entrega de dados conecta seu stream de dados do Kinesis a um destino de entrega por meio de um pipeline gerenciado:

  1. Você publica dados em um stream de dados do Kinesis no On-Demand modo.

  2. Você chama CreateChannel o stream e especifica um destino (tabelas de streaming no Apache Iceberg ou um bucket Amazon S3 de uso geral).

  3. A entrega lê o fluxo, armazena registros em buffer e os agrega em arquivos de tamanho ideal.

  4. A entrega grava os arquivos em seu destino configurado dentro da janela de atualização de dados que você especificar.

Destinos de entrega

A entrega de dados oferece suporte a dois tipos de destino:

Tabelas de streaming no Apache Iceberg

As tabelas de streaming entregam continuamente seu fluxo de dados do Kinesis às tabelas do Apache Iceberg armazenadas nas tabelas do Amazon S3. Conforme os dados chegam, eles são automaticamente convertidos para o formato Apache Parquet otimizado com compactação inteligente em linha que elimina o problema de arquivos pequenos e reduz os custos de consulta posterior. Poucos minutos depois de serem publicados em seu stream, os dados podem ser consultados por meio do Amazon Athena, do Amazon EMR, do Amazon Managed Service para Apache Flink ou de qualquer mecanismo compatível com o Apache Iceberg.

Buckets Amazon S3 de uso geral

A entrega do Amazon S3 grava dados de streaming do seu stream de dados do Kinesis diretamente em um bucket do S3. Os registros são entregues em seu formato original sem nenhuma transformação aplicada. Vários registros são armazenados em buffer e agrupados em objetos de tamanho ideal, com compactação configurável e uma estrutura de chave S3 que você define por meio do modelo de chave de saída. Isso é ideal para casos de uso como arquivamento de registros brutos, reprodução de eventos e processamento em lote downstream, nos quais você precisa de armazenamento durável e de baixo custo de seus dados de streaming sem a sobrecarga de gerenciar um pipeline de entrega.

Fluxo de dados

O diagrama a seguir mostra um fluxo de dados de ponta a ponta para entrega em tabelas de streaming no Apache Iceberg. O diagrama usa um caso de uso de transações com cartão como exemplo. Um produtor serializa registros em um esquema no AWS Glue Schema Registry e os grava em um stream de dados do Kinesis. O Amazon Kinesis Data Streams entrega os registros às tabelas do Apache Iceberg nas tabelas do Amazon S3. Se você habilitar a integração analítica nas tabelas do S3, os metadados da tabela também serão registrados no catálogo de AWS Glue dados; isso não acontece por padrão. Os dados fornecidos e seus metadados ficam então disponíveis para mecanismos de análise e inteligência artificial, como Amazon Athena, Amazon Redshift e Amazon EMR.

A entrega para buckets Amazon S3 de uso geral segue um fluxo semelhante, com duas diferenças. Um produtor grava registros em um stream de dados do Kinesis e o Amazon Kinesis Data Streams os entrega ao seu bucket do S3. Os registros são entregues em seu formato original sem conversão, portanto, o AWS Glue Schema Registry não é obrigatório e nenhum metadado de tabela é registrado no Catálogo de AWS Glue Dados. O Amazon Kinesis Data Streams armazena em buffer e agrupa registros em objetos de tamanho ideal e os grava usando a estrutura de chaves do S3 que você define por meio do modelo de chave de saída. Os objetos entregues ficam então disponíveis para processamento e análise em lotes posteriores.

Diagrama de arquitetura mostrando registros de transações de cartões serializados por meio do AWS Glue Schema Registry em um stream de dados do Kinesis, entregues às tabelas do Apache Iceberg nas tabelas do Amazon S3 com metadados registrados no catálogo de AWS Glue dados e consumidos por mecanismos de análise e IA, incluindo Amazon Athena, Amazon Redshift e Amazon EMR.

Capacidades gerais

  • Escalonamento automático sem servidor — escala automaticamente de acordo com a taxa de transferência do stream, até a capacidade de taxa de transferência do stream. Não há recursos computacionais para provisionar.

  • Exactly-once entrega por fragmento — Os registros de um fragmento são entregues ao destino exatamente uma vez, sem duplicatas ou omissões dentro do fragmento.

  • Entrega quase em tempo real — Atualização de dados configurável de 5 a 15 minutos (300 a 900 segundos).

  • Conversão automática de Parquet — Para tabelas de streaming no Apache Iceberg, converte registros de streaming em formato Apache Parquet otimizado para consultas de análise eficientes.

  • Compactação em linha — agrega registros em arquivos de tamanho ideal para desempenho de consultas analíticas.

  • Criptografia — Suporta AWS KMS chaves gerenciadas pelo cliente para criptografia do lado do servidor no destino. O Chave gerenciada pela AWS (o aws/kinesis alias) não é compatível com a criptografia de destino.

  • Dead-letter fila — Os metadados de falha para registros que não podem ser entregues, incluindo ARN do stream, ID do fragmento, número de sequência e contexto de erro, são gravados em uma fila de letras mortas. S3-based

  • CloudWatch métricas e registros — Monitore bytes entregues, contagens de registros e atualização de dados por meio de CloudWatch métricas da Amazon. Habilite o registro de entrega no Amazon CloudWatch Logs para capturar detalhes do lote de entrega, falhas e contexto de erro para solução de problemas.

  • Sem impacto em outros consumidores — Não consome slots de distribuição aprimorados nem taxa de transferência compartilhada.

Requisitos

  • Seu stream de dados do Kinesis deve usar o modo de capacidade On-Demand Standard ou On-Demand Advantage.

  • Você deve criar uma função de execução do serviço IAM que conceda as permissões de entrega para gravar no seu destino.

  • Seu bucket de destino ou bucket de tabela deve estar na mesma região do seu stream de dados do Kinesis. A entrega de dados não oferece suporte à entrega entre regiões para nenhum dos tipos de destino.

  • Para tabelas de streaming no Apache Iceberg, a entrega entre contas não é suportada. O stream de origem, o bucket de tabela do S3 de destino e o AWS Glue Schema Registry devem estar todos na mesma Conta da AWS região.

  • Para buckets do Amazon S3 de uso geral, a entrega entre contas é suportada somente para o bucket de destino. O canal e seu fluxo de origem devem estar no mesmo lugar Conta da AWS; somente o bucket de destino pode estar em uma conta diferente.

  • Para tabelas de streaming no Apache Iceberg, você deve configurar uma fila de cartas mortas no Amazon S3.