Considerações e limitações para trabalhos de manutenção
O Amazon S3 oferece operações de manutenção para aprimorar a performance das tabelas e dos buckets de tabela do S3. Essas opções são compactação de arquivos, gerenciamento de snapshots e remoção de arquivos não referenciados. Veja a seguir as limitações e considerações para essas opções de gerenciamento.
Tópicos
Considerações para compactação
As considerações a seguir se aplicam à compactação. Para ter mais informações sobre compactação, consulte Manutenção de tabelas.
-
A compactação só é compatível com os tipos de arquivo Apache Parquet, Avro e ORC.
-
Ela grava novos arquivos no formato Apache Parquet por padrão. Se, em vez disso, quiser compactar arquivos nos formatos Avro ou ORC, defina a propriedade de tabela
write.format.default
comoavro
ouorc
. -
Não é possível usar o seguinte tipo de dados na compactação:
Fixed
. -
A compactação não oferece suporte aos seguintes tipos de compressão:
brotli
elz4
. A compactação ocorre de acordo com um cronograma automatizado. Se quiser evitar cobranças associadas à compactação, você pode desabilitá-la manualmente para uma tabela usando a operação de API PutTableMaintenanceConfiguration.
nota
O Apache Iceberg usa um modelo de simultaneidade otimista, bem como a detecção de conflitos, para arbitrar transações de gravação. Com a simultaneidade otimista, as transações de usuário e compactação podem entrar em conflito, fazendo com que as transações falhem. Se ocorrerem conflitos e houver falha, os trabalhos de compactação serão executados novamente. É recomendável que seus pipelines também usem a lógica de nova tentativa para superar transações que falham devido a operações conflitantes.
Considerações para gerenciamento de snapshots
As considerações a seguir se aplicam ao gerenciamento de snapshots. Para ter mais informações sobre o gerenciamento de snapshots, consulte Manutenção de tabelas.
-
Os snapshots serão preservados somente quando ambos os critérios forem satisfeitos: o número mínimo de snapshots a serem mantidos e o período de retenção especificado.
-
O gerenciamento de snapshots exclui metadados de snapshots expirados do Apache Iceberg, evitando consultas de viagem no tempo para snapshots expirados e, opcionalmente, excluindo arquivos de dados associados.
-
O gerenciamento de snapshots não oferece suporte a valores de retenção que você configura como propriedades de tabela do Iceberg no arquivo
metadata.json
ou por meio de um comando SQLALTER TABLE SET TBLPROPERTIES
, incluindo retenção baseada em ramificação ou tag. O gerenciamento de snapshots é desabilitado quando você configura uma política de retenção baseada em ramificação ou tag, ou configura uma política de retenção no arquivometadata.json
que seja maior do que os valores configurados por meio da APIPutTableMaintenanceConfiguration
. Nesses casos, o S3 não expirará nem removerá snapshots e você precisará excluir manualmente os snapshots ou remover as propriedades de tabela do Iceberg para evitar cobranças de armazenamento.
Considerações para remoção de arquivos não referenciados
As considerações a seguir se aplicam à remoção de arquivos não referenciados. Para ter mais informações sobre a remoção de arquivos não referenciados, consulte Manutenção para buckets de tabela.
-
A remoção de arquivos não referenciados exclui arquivos de dados e metadados que não são mais referenciados pelos metadados do Iceberg quando o horário de criação é anterior ao período de retenção.
Limites para operações de manutenção de tabelas e buckets de tabela do S3 e APIs relacionadas
Operação de manutenção | Propriedade | Configurável ao nível do bucket de tabela? | Configurável ao nível da tabela? | Valor padrão | Valor mínimo | Rotina de manutenção relacionada do Iceberg | Controlar a API da funcionalidade Tabelas do S3 |
---|---|---|---|---|---|---|---|
Compactação | targetFileSizeMB |
Não | Sim | 512 MB | 64 MB |
|
PutTableMaintenanceConfiguration |
Gerenciamento de snapshots | minimumSnapshots |
Não | Sim | 1 | 1 | ExpireSnapshots retainLast |
PutTableMaintenanceConfiguration |
Gerenciamento de snapshots | maximumSnapshotAge |
Não | Sim | 120 horas | 1 hora | ExpireSnapshots expireOlderThan |
PutTableMaintenanceConfiguration |
Remoção de arquivos sem referência | unreferencedDays |
Sim | Não | 3 dias | 1 dia | deleteOrphanFiles |
PutTableBucketMaintenanceConfiguration |
Remoção de arquivos não referenciados | nonCurrentDays |
Sim | Não | 10 dias | 1 dia | N/D | PutTableBucketMaintenanceConfiguration |
nota
O serviço Tabelas do S3 aplica o tamanho padrão do grupo de linhas de parquets de 128 MB.