Configuração do fluxo do Firehose - Amazon Data Firehose

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

Configuração do fluxo do Firehose

Para criar um fluxo do Firehose com as tabelas do Apache Iceberg como destino, você precisa configurar os itens a seguir.

nota

A configuração de um stream do Firehose para entrega em tabelas em buckets de mesa do S3 é a mesma das tabelas Apache Iceberg no Amazon S3.

Configuração de fonte e destino

Para entregar dados para as tabelas do Apache Iceberg, escolha a fonte do seu fluxo.

Para configurar a fonte do seu fluxo, consulte Definição de configurações da fonte.

Em seguida, escolha Tabelas do Apache Iceberg como destino e forneça um nome de fluxo do Firehose.

Configuração da transformação de dados

Para realizar transformações personalizadas em seus dados, como adicionar ou modificar registros em seu fluxo de entrada, é possível adicionar uma função do Lambda ao seu fluxo do Firehose. Para obter mais informações sobre transformação de dados usando o Lambda em um fluxo do Firehose, consulte Transformação de dados da fonte no Amazon Data Firehose.

Para tabelas do Apache Iceberg, você precisa especificar como deseja encaminhar os registros de entrada para diferentes tabelas de destino e as operações que deseja realizar. Uma das maneiras de fornecer as informações de encaminhamento necessárias para o Firehose é usando uma função do Lambda.

Para obter mais informações, consulte Encaminhamento de registros para diferentes tabelas do Iceberg.

Conexão de catálogo de dados

O Apache Iceberg requer um catálogo de dados para gravar nas tabelas do Apache Iceberg. O Firehose se integra às tabelas Apache AWS Glue Data Catalog Iceberg.

Você pode usar AWS Glue Data Catalog na mesma conta do stream do Firehose ou em uma conta cruzada e na mesma região do stream do Firehose (padrão) ou em uma região diferente.

Configuração de expressões JQ

Para tabelas do Apache Iceberg, você precisa especificar como deseja encaminhamento os registros de entrada para diferentes tabelas de destino e as operações, como inserir, atualizar e excluir, que deseja realizar. Isso pode ser feito configurando expressões JQ para que o Firehose analise e obtenha as informações necessárias. Para obter mais informações, consulte Forneça informações de roteamento para JSONQuery Firehose com expressão.

Configuração de chaves exclusivas

Atualizações e exclusões com mais de uma tabela: as chaves exclusivas são um ou mais campos em seu registro de fonte que identificam exclusivamente uma linha nas tabelas do Apache Iceberg. Se você inseriu somente um cenário com mais de uma tabela, não precisará configurar chaves exclusivas. Se você quiser fazer atualizações e exclusões em determinadas tabelas, deverá configurar chaves exclusivas para essas tabelas necessárias. Observe que a atualização inserirá automaticamente a linha se a linha nas tabelas estiver ausente. Se você tiver apenas uma única tabela, então poderá configurar chaves exclusivas.

Você pode configurar chaves exclusivas por tabela como parte da criação do stream do Firehose ou definir de identifier-field-idsforma nativa no Iceberg durante a operação de criar tabela ou alterar tabela. Configurar chaves exclusivas por tabela durante a criação do fluxo é opcional. Se você não configurar chaves exclusivas por tabela durante a criação do fluxo, o Firehose verificará os identifier-field-ids para as tabelas necessárias e os usará como chaves exclusivas. Se ambos não estiverem configurados, a entrega de dados com operações de atualização e exclusão falhará.

Para configurar essa seção, forneça o nome do banco de dados, o nome da tabela e as chaves exclusivas das tabelas nas quais você deseja atualizar ou excluir dados. Você só pode ter uma entrada para cada tabela na configuração. Opcionalmente, você também pode escolher fornecer um prefixo de bucket de erros se os dados da tabela falharem na entrega, conforme mostrado no exemplo a seguir.

[ { "DestinationDatabaseName": "MySampleDatabase", "DestinationTableName": "MySampleTable", "UniqueKeys": [ "COLUMN_PLACEHOLDER" ], "S3ErrorOutputPrefix": "OPTIONAL_PREFIX_PLACEHOLDER" } ]

Especificação da duração da repetição

É possível usar essa configuração para especificar a duração, em segundos, durante a qual o Firehose deve tentar novamente, caso encontre falhas na gravação nas tabelas do Apache Iceberg no Amazon S3. É possível definir qualquer valor de 0 a 7.200 segundos para realizar novas tentativas. Por padrão, o Firehose tenta novamente por 300 segundos.

Como lidar com falha na entrega ou no processamento

Você deve configurar o Firehose para entregar registros a um bucket de backup do S3 caso ele encontre falhas no processamento ou na entrega de um fluxo após a expiração da duração da nova tentativa. Para isso, configure o bucket de backup do S3 e o prefixo de saída de erro do bucket de backup do S3 nas Configurações de backup no console.

Configuração de sugestões de buffer

O Firehose armazena em buffer os dados de streaming recebidos na memória até um determinado tamanho (Tamanho do armazenamento em buffer) e por um determinado período (Intervalo de armazenamento em buffer) antes de entregá-los às tabelas do Apache Iceberg. Você pode escolher um tamanho de buffer de 1 a 128 MiBs e um intervalo de buffer de 0 a 900 segundos. Sugestões de valores de buffer mais altos resultam em menor número de gravações no S3, menor custo de compactação devido a arquivos de dados maiores e execução mais rápida de consultas, mas com maior latência. Sugestões de valores buffer mais baixos entregam os dados com menor latência.

Definir as configurações avançadas

É possível configurar criptografia do lado do servidor, registro de erros em log, permissões e tags para suas tabelas do Apache Iceberg. Para obter mais informações, consulte Definir as configurações avançadas. Você precisa adicionar a IAM função que você criou como parte doPré-requisitos para uso das tabelas do Apache Iceberg como destino. O Firehose assumirá o perfil para acessar as tabelas do AWS Glue e gravar nos buckets do Amazon S3.

A criação do fluxo do Firehose pode demorar vários minutos para ser concluída. Depois de criar com êxito o fluxo do Firehose, será possível começar a ingerir dados nele e visualizar os dados nas tabelas do Apache Iceberg.