View a markdown version of this page

Comportamentos de iceberg para tabela de streaming - 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á.

Comportamentos de iceberg para tabela de streaming

Use este tópico para saber como o streaming de tabelas mapeia dados dos esquemas do AWS Glue Schema Registry para as tabelas do Apache Iceberg, incluindo mapeamento de tipos, tratamento de campos, manutenção de tabelas e especificações de formato.

AWS Glue Registro de esquema para mapeamento do tipo Iceberg

A tabela de streaming mapeia os tipos de esquema JSON do AWS Glue Schema Registry para os tipos do Apache Iceberg da seguinte forma:

Registro de esquema para mapeamento do tipo Iceberg
Tipo de esquema JSON Tipo do Iceberg Observações
string(simples) string Mapeamento de strings padrão.
stringcom formato date-time timestamptz Carimbo de data/hora com fuso horário.
stringcom formato date date Data do calendário.
stringcom formato time time Horário do dia.
stringcom formato uuid uuid Identificador universalmente exclusivo.
stringcom codificação ou byte base64 binary Dados binários codificados como base64.
integer(32 bits ou menos) int Valores com máximo ou exclusiveMaximum <= 2^31.
integer(maior que 32 bits) long Valores que excedem o intervalo de 32 bits.
number com multipleOf decimal Fixed-point decimal com precisão derivada de multipleOf.
number(simples) double Ponto flutuante de dupla precisão IEEE 754.
boolean boolean Verdadeiro ou falso.
objectcom propriedades nomeadas struct Campos nomeados são mapeados para estruturar campos.
object com additionalProperties map Key-value mapa com teclas de string.
array list Coleção ordenada de elementos.
enum string Valores de enumeração armazenados como strings.

Colunas obrigatórias

Os campos listados na required matriz do esquema JSON se tornam colunas obrigatórias (não anuláveis) na tabela Iceberg. Se um campo obrigatório estiver ausente em um registro, o registro será enviado para a fila de cartas mortas.

Coluna de chave de partição

Sua tabela deve incluir uma timestamptz coluna que possa ser usada para particionamento baseado em tempo por hora (a TIME_HOUR transformação). No AWS Glue esquema Schema Registry, esse é um string campo com o date-time formato, que mapeia para o tipo Icebergtimestamptz.

A coluna de origem referenciada pela partição é marcada automaticamente como necessária, independentemente de ela aparecer na matriz do required esquema. Os registros sem o valor da chave de partição são enviados para a fila de cartas mortas.

Você pode habilitar um trabalho de expiração de registros do Amazon S3 Tables com base na coluna de partição da tabela. Para obter mais informações, consulte Expiração do registro.

Manuseio de campo

A tabela de streaming trata as incompatibilidades entre os registros recebidos e o esquema da tabela Iceberg da seguinte forma:

  • Campos extras — Os campos presentes no registro, mas não definidos no esquema, são eliminados e não são gravados na tabela Iceberg.

  • Campos opcionais ausentes — Os campos opcionais que não estão presentes no registro são escritos como null na tabela Iceberg.

  • Campos obrigatórios ausentes — Se um campo obrigatório estiver ausente em um registro, todo o registro será enviado para a fila de cartas mortas.

Limite de aninhamento

A tabela de streaming suporta uma profundidade máxima de aninhamento de 16 níveis para tipos complexos (estruturas, mapas e listas). Os esquemas que excedem 16 níveis de aninhamento são rejeitados no momento da criação da entrega.

Propriedades da tabela gerenciada

A tabela de streaming gerencia as propriedades da tabela Iceberg automaticamente. Essas propriedades são definidas quando a tabela é criada e não devem ser modificadas externamente. A tabela de streaming usa essas propriedades para controlar o comportamento de gravação, a compactação e o gerenciamento de metadados.

Como a tabela é gerenciada pelo Amazon Kinesis Data Streams, você não deve atualizar seu esquema, modificar suas propriedades de tabela nem gravar ou excluir seus dados diretamente. Você pode consultar a tabela com serviços de AWS análise e qualquer mecanismo de consulta Apache Iceberg compatível. Para obter mais informações sobre buckets de tabela gerenciados, consulte Usando buckets de tabela AWS gerenciados no Guia do usuário do Amazon S3.

Manutenção da funcionalidade Tabelas do S3

Ao entregar para tabelas de streaming no Apache Iceberg com suporte do S3 Tables, as seguintes operações de manutenção são realizadas automaticamente:

  • Compactação — Arquivos de dados pequenos são compactados periodicamente em arquivos maiores para melhorar o desempenho da consulta e reduzir a sobrecarga de metadados.

  • Expiração do instantâneo — os instantâneos expirados são limpos para recuperar o armazenamento de metadados e reduzir o tamanho dos metadados da tabela.

  • Limpeza de arquivos não referenciados — Os arquivos de dados órfãos que não são mais referenciados por nenhum instantâneo são removidos para recuperar o armazenamento.

Expiração do registro

Você pode configurar um período de expiração de registro para sua tabela Iceberg. Quando ativado, o Amazon S3 Tables remove automaticamente registros anteriores ao período de retenção especificado durante as operações de manutenção, com base na coluna de timestamptz partição da tabela. Para obter mais informações, consulte Gerenciando a expiração do registro de tabelas do Amazon S3 no Guia do usuário do Amazon S3.

Especificações de formato

A tabela de streaming usa as seguintes especificações de formato para tabelas Iceberg:

  • Versão em formato Iceberg — v2

  • Versão da especificação Iceberg — 1.9.0

  • Formato de arquivo — Apache Parquet