Entregue dados às tabelas Apache Iceberg com o Amazon Data Firehose - Amazon Data Firehose

A entrega de streams do Amazon Data Firehose para tabelas Apache Iceberg no Amazon S3 está em versão prévia e está sujeita a alterações.

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

Entregue dados às tabelas Apache Iceberg com o Amazon Data Firehose

nota

A entrega do stream Firehose para Apache Iceberg Tables no Amazon S3 está em versão prévia. Não use esse recurso para cargas de trabalho de produção.

O Apache Iceberg é um formato de tabela de código aberto de alto desempenho para realizar análises de big data. O Apache Iceberg traz a confiabilidade e a simplicidade das SQL tabelas para os data lakes do Amazon S3 e possibilita que mecanismos de análise de código aberto como Spark, Flink, Trino, Hive e Impala trabalhem simultaneamente com os mesmos dados. Para obter mais informações sobre o Apache Iceberg, consulte. https://iceberg.apache.org/

Você pode usar o Firehose para entregar dados de streaming diretamente às tabelas Apache Iceberg no Amazon S3. Com esse recurso, você pode rotear registros de um único fluxo para diferentes tabelas Apache Iceberg e aplicar automaticamente operações de inserção, atualização e exclusão aos registros nas tabelas Apache Iceberg. Esse recurso requer o uso do AWS Glue Data Catalog.

nota

O Apache Iceberg Tables está disponível no Leste dos EUA (Norte da Virgínia), Oeste dos EUA (Oregon), Europa (Irlanda), Ásia-Pacífico (Tóquio), Canadá (Central) e Ásia-Pacífico (Sydney) Regiões da AWS para pré-visualização.

Consideração e limitações

O suporte do Firehose para tabelas Apache Iceberg para pré-visualização tem as seguintes considerações e limitações.

  • Taxa de transferência — Se você usar o Direct PUT como fonte para entregar dados às tabelas do Apache Iceberg, a taxa de transferência máxima por stream será de 5 MiB/segundo nas regiões Leste dos EUA (Norte da Virgínia), Oeste dos EUA (Oregon) e Europa (Irlanda) e 1 MiB/segundo nas regiões Ásia-Pacífico (Tóquio), Canadá (Central) e Ásia-Pacífico (Sydney). Se você quiser apenas inserir dados nas tabelas do Iceberg sem atualizações e exclusões e quiser testar com maior taxa de transferência para seu stream, use o formulário Firehose Limits para solicitar um aumento do limite de taxa de transferência.

  • Colunas — Para nomes e valores de colunas, o Firehose usa somente o primeiro nível de nós em um aninhado de vários níveis. JSON Por exemplo, o Firehose escolhe os nós que estão disponíveis no primeiro nível, incluindo o campo de posição. Os nomes das colunas e os tipos de dados dos dados de origem devem corresponder aos das tabelas de destino para que o Firehose entregue com sucesso. Nesse caso, o Firehose espera que você tenha uma coluna de tipo de dados de estrutura ou mapa em suas tabelas do Iceberg que corresponda ao campo de posição. O Firehose suporta 16 níveis de aninhamento. A seguir está um exemplo de um aninhadoJSON.

    { "version":"2016-04-01", "deviceId":"<solution_unique_device_id>", "sensorId":"<device_sensor_id>", "timestamp":"2024-01-11T20:42:45.000Z", "value":"<actual_value>", "position":{ "x":143.595901, "y":476.399628, "z":0.24234876 } }

    Se os nomes das colunas ou os tipos de dados não corresponderem, o Firehose gerará um erro e entregará os dados ao bucket de erros do S3. Se todos os nomes das colunas e tipos de dados coincidirem nas tabelas do Apache Iceberg, mas você tiver um novo campo adicional presente no registro de origem, o Firehose ignorará o novo campo.

  • Um JSON objeto por registro — Você pode enviar somente um JSON objeto em um registro do Firehose. Se você agregar e enviar vários JSON objetos dentro de um registro, o Firehose gerará um erro e entregará os dados ao bucket de erros do S3.

  • Fontes de streaming — O Firehose atualmente não oferece suporte ao Amazon Managed Streaming for Apache Kafka como fonte para Apache Iceberg Tables.

  • Compactação — Toda vez que você escreve usando o Firehose, ele gera arquivos de dados. Ter milhares de pequenos arquivos de dados aumenta a sobrecarga de metadados e afeta o desempenho de leitura. Para obter o melhor desempenho de consulta, talvez você queira considerar uma solução que, periodicamente, pegue pequenos arquivos de dados e os reescreva em menos arquivos de dados maiores. Esse processo é chamado de compactação. AWS Glue Data Catalog suporta a compactação automática de suas tabelas Apache Iceberg. Para obter mais informações, consulte Gerenciamento de compactação no AWS Guia do usuário do Glue. Para obter informações adicionais, consulte Compactação automática das tabelas Apache Iceberg. Você também pode otimizar as tabelas do Iceberg reduzindo o consumo de armazenamento com a VACUUMdeclaração que realiza a manutenção das tabelas do Apache Iceberg.