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:
| 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
nullna 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