O Data Lake Formation (DLF) oferece suporte ao Paimon, um formato lakehouse que unifica o armazenamento em tempo real e em batch. Este tópico aborda três operações para tabelas Paimon no DLF: criação, visualização e exclusão.
Tipos de tabela
O DLF oferece suporte a dois tipos de tabela Paimon. Escolha com base em se seus dados possuem chave primária e se você precisa de atualizações de stream por linha.
|
Tipo de tabela |
Chave primária |
Mais indicado para |
|
Primary key table |
Obrigatória |
Processamento de stream, inserções, atualizações e exclusões em tempo real; consultas OLAP filtradas por chave primária |
|
Append-only table |
Nenhuma |
Processamento em batch, gravações em stream sem atualizações por linha; OLAP com índices de ordenação e bitmap |
Tabelas Paimon totalmente gerenciadas
Todas as tabelas Paimon criadas no DLF são totalmente gerenciadas. O DLF controla todos os metadados e os arquivos de dados subjacentes. Ao excluir uma tabela, ambos são removidos.
|
Recurso |
O que faz |
Gerenciado automaticamente? |
|
Compaction |
Mescla arquivos pequenos; opera de forma independente das gravações de dados para garantir estabilidade |
Sim |
|
Concurrent writes |
Vários jobs de gravação podem gravar na mesma partição simultaneamente |
Sim |
|
Partition-level metrics |
Rastreia contagem de linhas, contagem de arquivos e tamanho de arquivo por partição em tempo real |
Sim |
|
Multi-version (time travel) |
Registra o histórico da tabela; oferece suporte a inserção, atualização e exclusão refinadas |
Sim |
O DLF armazena os dados em um caminho gerado automaticamente a partir de um identificador universalmente único (UUID). Nenhuma configuração manual de caminho é necessária.
As tabelas Paimon criadas no DLF utilizam o modo somente gravação por padrão. As operações em segundo plano — compaction, limpeza de snapshots e limpeza de partições — são gerenciadas automaticamente pelo DLF.
Pré-requisitos
Antes de começar, verifique se você possui:
Acesso ao console do Data Lake Formation
Um catalog e um banco de dados existentes no DLF
Criar uma tabela Paimon
Criar pelo console
Acesse o console do Data Lake Formation.
Na página de listagem do Data Catalog, clique em um nome de catalog.
Na lista Database, clique em um nome de banco de dados para abrir a lista de tabelas.
Na table list, clique em Create Table.
-
Configure as definições a seguir e clique em OK.
Item de configuração
Descrição
Table Format
Selecione Paimon Table.
Data Table Name
Obrigatório. Deve ser único dentro do banco de dados.
Data Table Description
Opcional.
Columns
Defina cada coluna: nome, flag de chave primária, flag not null, flag de campo de partição, tipo de dado, comprimento/tipo e descrição.
Custom Table Properties
Adicione propriedades que substituem os parâmetros padrão do meta service do DLF durante a criação da tabela. Para as opções disponíveis, consulte a documentação oficial do Paimon. Formatos de arquivo suportados: PARQUET, AVRO, ORC, CSV, TEXT, JSON, LANCE e BLOB. Exemplo:
file.format = LANCE.
Criar via SQL
Se você associou um catalog no Flink, EMR (E-MapReduce) ou outra plataforma, crie as tabelas diretamente nessas plataformas — os metadados são gravados diretamente no DLF. Para mais detalhes, consulte Engine integration.
Primary key tables
Uma primary key table utiliza uma chave primária como identificador exclusivo de linha. Ela oferece suporte a inserções, atualizações e exclusões em tempo real, além de gerar automaticamente change logs para consumidores de stream downstream. Use este tipo de tabela para processamento de dados em stream e consultas de processamento analítico online (OLAP) filtradas por chave primária.
Flink SQL
CREATE TABLE orders (
order_id BIGINT,
price BIGINT,
customer STRING,
PRIMARY KEY NOT ENFORCED(order_id)
);
Spark SQL
CREATE TABLE orders (
order_id BIGINT,
price BIGINT,
customer STRING
) TBLPROPERTIES (
'primary-key' = 'order_id'
);
Alocação de buckets (modo Postpone Bucket)
O DLF usa o modo Postpone Bucket por padrão. Essa estratégia adaptativa ajusta dinamicamente a contagem de buckets com base no volume de dados da partição, evitando degradação de desempenho de leitura causada por buckets em excesso e gargalos de gravação causados por buckets insuficientes.
Visibilidade dos dados no modo Postpone: os dados recém-gravados não ficam visíveis até que a compaction seja concluída. Para eliminar essa latência:
Use Flink (VVR 11.4 ou posterior) ou Spark (esr-4,5 ou posterior). Essas versões gravam batches diretamente nos buckets, eliminando a latência.
Para tabelas sensíveis à latência, defina explicitamente a contagem de buckets. Exemplo:
'bucket' = '5'. Recomenda-se um bucket por 1 GB de dados por partição.
Bucketing dinâmico e dimensionamento automático
Configuração avançada
Configure as seguintes opções do Paimon para ajuste adicional em primary key tables:
merge engine: Defina lógica de merge personalizada para cálculos complexos durante a compaction.
Deletion Vectors (
deletion-vectors.enabled = true): Melhora significativamente o desempenho de consultas. Após ativar, todos os dados recém-gravados ficam visíveis apenas após a compaction, independentemente do modo de bucket. Esse recurso exige mais recursos de compaction, mas oferece desempenho de consulta mais estável.changelog-producer (
changelog-producer = 'lookup'): Gera change logs completos para leituras de stream downstream.sequence.field: Trata dados fora de ordem e garante a sequência correta de atualização.
Se os dados de origem forem dados de Change Data Capture (CDC), utilize o Flink CDC ou um product de integração de dados para carregar os dados no DLF. Essas ferramentas oferecem suporte a sincronização completa de banco de dados, criação automática de tabelas e sincronização de schema.
Para consultas OLAP de alto desempenho, ative o modo deletion vectors. Embora consuma mais recursos de compaction, ele proporciona consultas OLAP mais estáveis e com melhor desempenho.
Append-only tables
Uma append-only table não possui chave primária. Ela não oferece suporte a atualizações de stream por linha, mas seu desempenho em processamento em batch é significativamente superior ao das primary key tables. Utilize-a para a maioria das cargas de trabalho em batch ou em cenários de stream onde atualizações por linha não são necessárias.
As append-only tables oferecem suporte a:
Gravações e leituras em stream, com o DLF mesclando automaticamente arquivos pequenos em segundo plano
Operações refinadas de
DELETE,UPDATEeMERGE INTOGerenciamento de versões e time travel
Consultas aceleradas por índices de ordenação e bitmap, com excelente desempenho de leitura direta para engines OLAP
Flink SQL
CREATE TABLE orders (
order_id BIGINT,
price BIGINT,
customer STRING
);
Spark SQL
CREATE TABLE orders (
order_id BIGINT,
price BIGINT,
customer STRING
);
Visualizar uma tabela de dados
Na lista Database, clique em um nome de banco de dados para abrir a lista de tabelas.
Na table list, clique em um nome de tabela para visualizar seus campos.
-
Clique na aba Table Details para consultar as informações básicas da tabela, a lista de campos e a lista de partições.
NotaNa aba Table Details, é possível modifique manualmente a classe de armazenamento tanto para tabelas particionadas quanto para tabelas não particionadas. Para mais detalhes, consulte Manually change the storage class.
Clique na aba Permissions para conceder permissões no nível de tabela a usuários ou funções. Para mais detalhes, consulte Data authorization management.
Excluir uma tabela de dados
Excluir uma tabela remove tanto seus metadados quanto seus dados. Os dados são retidos por um dia como salvaguarda contra exclusão acidental. Após esse período, são excluídos permanentemente.
Na lista Database, clique em um nome de banco de dados para abrir a lista de tabelas.
Na table list, clique em Delete na coluna Actions.
Na caixa de diálogo, clique em OK.
As tabelas de dados excluídas podem ser restauradas durante o período de retenção de metadados. Para mais informações, consulte Recycle bin.