View a markdown version of this page

Práticas recomendadas para entrega de dados - 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á.

Práticas recomendadas para entrega de dados

As melhores práticas a seguir ajudam você a aproveitar ao máximo a entrega de dados no Amazon Kinesis Data Streams. Para ver a lista completa das métricas de entrega referenciadas nessas recomendações, consulteMonitoramento da entrega de dados.

Taxa de transferência e atualização de dados

  • Defina o DataFreshnessInSeconds parâmetro com base na taxa de transferência do seu stream. Valores mais baixos aumentam a frequência de entrega, mas podem resultar em arquivos de saída menores. Valores mais altos permitem que mais dados sejam acumulados para cada ciclo de entrega.

  • Crie um CloudWatch alarme da Amazon na DataFreshness métrica para detectar quando a latência de entrega excede o limite aceitável.

  • Você pode criar várias entregas a partir do mesmo stream do Kinesis Data Streams. Cada entrega opera de forma independente, permitindo que você entregue dados para vários destinos simultaneamente.

Gerenciamento de esquemas (tabelas de streaming no Apache Iceberg)

  • Registre seus esquemas no AWS Glue Schema Registry antes de criar uma entrega. A entrega usa o esquema registrado para definir a estrutura da tabela de destino.

  • As entregas não suportam a evolução do esquema. Se seu esquema mudar, você deverá excluir e recriar a entrega com o esquema atualizado.

  • Use a validação do esquema do lado do produtor para garantir que todos os registros estejam em conformidade com o esquema registrado antes de serem gravados no stream. Isso minimiza a falha na entrega de registros.

Layout do objeto S3 (buckets Amazon S3 de uso geral)

  • Escolha um modelo de chave de saída que corresponda aos padrões de consulta de seus consumidores posteriores. Por exemplo, use prefixos baseados em data se suas consultas forem frequentemente filtradas por intervalo de tempo.

  • Ative a compactação GZIP ou ZSTD para reduzir os custos de armazenamento e melhorar o desempenho de leitura para cargas de trabalho de análise downstream.

  • Escolha a classe de armazenamento Amazon S3 apropriada com base em seus padrões de acesso aos dados. Use STANDARD para dados acessados com frequência, INTELLIGENT_TIERING para permitir que o Amazon S3 mova objetos entre camadas de acesso automaticamente ou GLACIER_IR para dados raramente acessados que ainda precisam ser recuperados em milissegundos.

Segurança

  • Defina o escopo de sua política de IAM para o bucket ou tabela específico em que a entrega grava. Evite usar ARNs de recursos curingas.

  • Inclua as chaves aws:SourceArn e de aws:SourceAccount condição na política de confiança da função do IAM usada pela entrega. Isso evita o confuso problema do delegado, garantindo que somente sua entrega específica possa assumir a função.

  • Ative o AWS CloudTrail registro para auditar todas as chamadas de API de entrega e alterações de configuração.

  • Use uma AWS KMS chave gerenciada pelo cliente para dados confidenciais. Isso lhe dá controle total sobre rotação de chaves, políticas de acesso e trilhas de auditoria.

Dead-letter fila

  • Sempre configure uma fila de cartas mortas para sua entrega. Os registros que não podem ser entregues no destino são enviados para a fila de e-mails enviados para inspeção posterior.

  • Monitore a DLQDeliverySuccess métrica (DeliveryToS3.DLQDeliverySuccessouDeliveryToIceberg.DLQDeliverySuccess) CloudWatch para detectar quando os registros estão sendo roteados para a fila de cartas mortas.

  • Inspecione regularmente as entradas da fila de cartas mortas para identificar padrões nas falhas de entrega e tomar medidas corretivas no nível do produtor ou da configuração de entrega.

Monitoramento

  • Crie CloudWatch alarmes nas métricas de entrega DataFreshness e de registros falhados (DeliveryToS3.FailedRecordCountouDeliveryToIceberg.FailedRowCount) para detectar problemas de entrega de forma proativa.

  • Ative CloudWatch os registros para sua entrega para capturar diagnósticos detalhados de entrega e mensagens de erro.

  • Acompanhe a métrica de bytes entregues (DeliveryToS3.BytesOutouDeliveryToIceberg.BytesOut) para monitorar a taxa de transferência e identificar quedas inesperadas no volume de dados.