Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Importante
Esse recurso está em Pré-visualização Pública para Databricks Runtime 13.3 LTS e superior.
Com suporte para arquivamento no Azure Databricks, pode usar políticas de ciclo de vida baseadas na cloud em armazenamentos de objetos na nuvem que contêm tabelas Delta Lake. Ativar o suporte de arquivamento numa tabela Delta Lake diz efetivamente ao Azure Databricks para ignorar ficheiros mais antigos do que o período especificado na tabela.
As políticas de ciclo de vida na cloud reduzem os custos de armazenamento ao mover ficheiros mais antigos para uma camada de armazenamento arquivístico. Sem suporte de arquivamento, uma política de ciclo de vida pode quebrar consultas contra uma tabela Delta Lake, porque os ficheiros de dados que as consultas leem já não estão disponíveis. Veja por que deve ativar o suporte de arquivamento?
Quando usar suporte de arquivamento
Ative o suporte de arquivamento numa tabela quando todas as seguintes condições são verdadeiras:
- Utiliza-se uma política de ciclo de vida que arquiva os ficheiros de dados da tabela com base no tempo de criação dos ficheiros.
- A maioria das consultas na tabela lê dados recentes ou filtra ficheiros arquivados.
- Consultas que necessitam de dados arquivados são raras, e pode esperar que alguém restaure esses ficheiros no armazenamento do seu fornecedor cloud antes de voltar a executar a consulta. Ver Restaurar ficheiros arquivados.
Não use suporte de arquivamento se as suas consultas analisam regularmente o histórico completo da tabela. Consultas que requerem ficheiros arquivados falham. O suporte de arquivo também não funciona com políticas de ciclo de vida baseadas no tempo de acesso ou nas etiquetas. Consulte Limitações.
Requisitos
O Azure Databricks tem suporte de arquivamento apenas para o Azure Archive. Consulte os documentos do Azure sobre como otimizar custos com o gerenciamento do ciclo de vida.
Por que você deve habilitar o suporte a arquivamento?
O suporte ao arquivamento permite apenas consultas que retornam resultados corretos sem tocar nos ficheiros arquivados. Estas consultas incluem aquelas que podem ser:
- Consultar apenas metadados.
- Ter filtros que não exijam a verificação de nenhum arquivo arquivado.
Todas as consultas que requerem dados em arquivos arquivados falham.
Importante
O Azure Databricks nunca retorna resultados para consultas que exigem arquivos arquivados para retornar o resultado correto.
Habilitar o suporte de arquivamento para uma tabela no Azure Databricks não cria nem altera as políticas de ciclo de vida definidas para seu armazenamento de objetos na nuvem. Consulte Alterar a regra de transição do gerenciamento do ciclo de vida.
Sem suporte de arquivamento, as operações contra tabelas Delta Lake podem falhar porque ficheiros de dados ou registos de transações foram movidos para locais arquivados e não estão disponíveis quando consultados. O suporte ao arquivamento introduz otimizações para evitar interrogar dados arquivados quando possível. Ele também adiciona nova sintaxe para identificar arquivos que devem ser restaurados do armazenamento de arquivamento para concluir consultas.
Consultas otimizadas para dados arquivados
O suporte de arquivamento no Azure Databricks otimiza estas consultas em tabelas Delta Lake.
| Pergunta | Novo comportamento |
|---|---|
SELECT * FROM <table_name> LIMIT <limit> [WHERE <partition_predicate>] |
Ignore automaticamente os arquivos arquivados e retorne resultados de dados em um nível de armazenamento não arquivado. |
Comandos de manutenção do Lago Delta: OPTIMIZE, ZORDER, ANALYZE, PURGE |
Ignore automaticamente os arquivos arquivados e execute a manutenção no resto da tabela. |
Instruções DDL e DML que sobrescrevem dados ou eliminam dados, incluindo REPLACE TABLE, INSERT OVERWRITE, TRUNCATE TABLE, e DROP TABLE |
Marque as entradas do log de transações para arquivos de dados arquivados de destino como excluídas. |
FSCK REPAIR TABLE |
Ignore os arquivos arquivados e verifique apenas se há arquivos que não atingiram a política de ciclo de vida. |
Mensagens de falha e erro antecipadas
Para consultas que têm de analisar ficheiros arquivados para gerar resultados corretos, configurar o suporte de arquivo para o Delta Lake tem os seguintes efeitos:
- As consultas falham antecipadamente se tentarem acessar arquivos arquivados, reduzindo o desperdício de computação e permitindo que os usuários se adaptem e executem novamente as consultas rapidamente.
- As mensagens de erro informam os usuários de que uma consulta falhou porque a consulta tentou acessar arquivos arquivados.
Os usuários podem gerar um relatório de arquivos que devem ser restaurados usando a sintaxe SHOW ARCHIVED FILES. Consulte Mostrar ficheiros arquivados.
Importante
Se você receber o erro Not enough files to satisfy LIMIT, sua tabela não tem linhas de dados suficientes em arquivos não arquivados para satisfazer o número de registros especificado pelo LIMIT. Diminua a LIMIT cláusula para encontrar linhas não arquivadas suficientes para atender ao especificado LIMIT. Consulte Limitações.
Habilite o suporte a arquivamento
Pode ativar o suporte de arquivamento para tabelas Delta Lake especificando manualmente o intervalo de arquivamento configurado na política de gestão do ciclo de vida da cloud subjacente.
ALTER TABLE <table_name> SET TBLPROPERTIES(delta.timeUntilArchived = 'X days');
Definir uma timeUntilArchived hora diz ao Azure Databricks para ignorar ficheiros na tua tabela Delta Lake que são mais antigos do que o período especificado. Esta definição é separada das políticas de ciclo de vida da sua conta na cloud. Alterações a um não afetam o outro. Se atualizar a política do ciclo de vida na sua conta de nuvem, deve também atualizar a configuração de arquivamento na sua tabela Delta Lake. Consulte Alterar a regra de transição do gerenciamento do ciclo de vida.
Quando define uma nova política de ciclo de vida na sua conta cloud, pode demorar até 24 horas até as alterações entrarem em vigor. Veja Execução da política de gestão do ciclo de vida.
Se ativar esta configuração sem as políticas de ciclo de vida definidas para o armazenamento de objetos na cloud, o suporte ao arquivo permite que as consultas tenham sucesso, e os resultados incluem dados dos ficheiros marcados para arquivamento. Veja como o Azure Databricks faz amostragem de dados recuperados?.
Advertência
A sua política de ciclo de vida da cloud não deve arquivar o registo de transações Delta no diretório _delta_log/. Consulte Limitações.
Importante
O suporte arquivístico depende inteiramente de ambientes de computação Azure Databricks compatíveis e só funciona para tabelas Delta Lake. A configuração do suporte a arquivamento não altera o comportamento, a compatibilidade ou o suporte em clientes OSS Delta Lake ou Databricks Runtime 12.2 LTS e inferiores.
Mostrar ficheiros arquivados
Para identificar ficheiros que precisam de ser restaurados para completar uma determinada consulta, use SHOW ARCHIVED FILES.
SHOW ARCHIVED FILES FOR table_name [ WHERE predicate ];
Esta operação devolve nomes de ficheiros de ficheiros arquivados como um DataFrame Spark. Restaure os arquivos arquivados necessários seguindo instruções documentadas do seu provedor de armazenamento de objetos. Ver Restaurar ficheiros arquivados.
Para obter informações sobre como o Azure Databricks verifica se há dados restaurados, consulte Como o Azure Databricks faz um exemplo de dados restaurados?.
Nota
Durante esta operação, o Delta Lake só tem acesso às estatísticas de dados contidas no log de transações. Por defeito, estas são as estatísticas recolhidas nas primeiras 32 colunas da tabela:
- Valores mínimos
- Valores máximos
- Contagens nulas
- Número total de registos
Os arquivos retornados incluem todos os arquivos arquivados que devem ser lidos para determinar se os registros que preenchem um predicado existem ou não no arquivo. O Databricks recomenda o fornecimento de predicados que incluam campos nos quais os dados são particionados, ordenados por z ou agrupados para reduzir o número de arquivos que devem ser restaurados.
Restaurar ficheiros arquivados
Para identificar todos os ficheiros que necessitam de restauro, use SHOW ARCHIVED FILES para visualizar a lista de ficheiros arquivados.
Utilize as APIs de reidratação para restaurar ficheiros para uma camada de armazenamento online. Consulte Reidratação de blobs da camada de arquivo.
Depois de restaurar os ficheiros no armazenamento do seu fornecedor de cloud, pode consultar a sua tabela. O suporte de arquivamento reconhece automaticamente os ficheiros restaurados. Para obter informações sobre como o Azure Databricks verifica se há dados restaurados, consulte Como o Azure Databricks faz um exemplo de dados restaurados?.
Atualizar ou excluir dados arquivados
A operação falhará ao executar uma operação MERGE, UPDATE ou DELETE que afete os dados em arquivos arquivados. Você deve restaurar os dados para uma camada de armazenamento que ofereça suporte à recuperação rápida para executar essas operações. Use SHOW ARCHIVED FILES para determinar os ficheiros que deve restaurar (veja Restaurar ficheiros arquivados).
Como o Azure Databricks faz amostragem de dados restaurados?
Quando o Azure Databricks prepara uma verificação em uma tabela com o suporte a arquivamento habilitado, ele faz amostras de arquivos mais antigos do que o período de retenção especificado exigido pela consulta para determinar se os arquivos foram restaurados ou não. Se os resultados indicarem que os arquivos de amostra presumivelmente arquivados foram restaurados, o Azure Databricks assumirá que todos os arquivos da consulta foram restaurados e os processos de consulta. Os resultados incluem dados dos ficheiros marcados para arquivamento.
A amostragem pode não se aplicar a todas as consultas, veja Limitações.
Limitações
O suporte para arquivamento tem estas limitações:
- O suporte para arquivamento aplica-se apenas a ficheiros de dados. Se quaisquer ficheiros no registo de transações Delta (
_delta_log/diretório) forem movidos para uma camada de armazenamento arquivado, a tabela torna-se completamente inacessível e todas as consultas à tabela falham. Deve configurar a sua política de ciclo de vida na cloud para que o_delta_log/caminho não seja incluído no arquivamento. Veja exemplos de configurações do ciclo de vida do S3. - Não há suporte para políticas de gerenciamento do ciclo de vida que não se baseiam no tempo de criação do arquivo. Isso inclui políticas baseadas em tempo de acesso e políticas baseadas em tags.
- Não é possível usar
DROP COLUMNem uma tabela com arquivos arquivados. -
REORG TABLE APPLY PURGEfaz uma tentativa de melhor esforço, mas só funciona em arquivos vetoriais de exclusão e arquivos de dados referenciados que não são arquivados.PURGENão é possível excluir arquivos vetoriais de exclusão arquivados. - Estender a regra de transição do gerenciamento do ciclo de vida resulta em um comportamento inesperado. Consulte Extender a regra de transição do gerenciamento do ciclo de vida.
-
LIMITConsultas em tabelas com suporte de arquivo ativado não acionam amostragem para dados restaurados. Se os dados de uma tabela forem restaurados, a maioria das consultas tem sucesso ao consultar dados restaurados, mas umaLIMITconsulta devolve umDELTA_ARCHIVED_FILES_IN_LIMITerro. Veja como o Azure Databricks faz amostragem de dados recuperados?.
Alterar a regra de transição do gerenciamento do ciclo de vida
Se alterar o intervalo de tempo para a regra de transição do ciclo de vida da sua nuvem, deve atualizar a propriedade delta.timeUntilArchived para o mesmo intervalo.
Se o intervalo de tempo antes do arquivamento for reduzido (menos tempo desde a criação do ficheiro), o suporte de arquivamento para a tabela Delta Lake continua a funcionar normalmente após a atualização da propriedade da tabela.
Expandir a regra de transição do gerenciamento do ciclo de vida
Se o intervalo de tempo antes do arquivamento for estendido (para adicionar mais tempo antes que o arquivamento seja acionado), atualizar a propriedade delta.timeUntilArchived para o novo valor pode levar a erros. Os fornecedores de serviços na nuvem não restauram automaticamente os ficheiros do armazenamento arquivado quando as políticas de retenção de dados são alteradas. Isso significa que os arquivos anteriormente elegíveis para arquivamento, mas agora não considerados elegíveis para arquivamento, ainda são arquivados.
Importante
Para evitar erros, nunca defina a propriedade delta.timeUntilArchived para um valor maior do que a idade real dos dados arquivados mais recentemente.
Considere um cenário em que o intervalo de tempo para arquivamento é alterado de 60 dias para 90 dias:
- Todos os registros entre 60 e 90 dias são arquivados quando a política é alterada.
- Durante 30 dias, nenhum novo ficheiro é arquivado (os ficheiros não arquivados mais antigos têm 60 dias quando a política é prorrogada).
- Após 30 dias, a política de ciclo de vida descreve corretamente todos os dados arquivados.
A configuração delta.timeUntilArchived rastreia o intervalo de tempo definido em relação ao tempo de criação do arquivo registrado pelo log de transações Delta. Não tem conhecimento explícito da política subjacente. Durante o período de atraso entre o antigo limiar de arquivamento e o novo limiar de arquivamento, pode adotar uma destas abordagens para evitar consultar ficheiros arquivados:
- Você pode deixar a configuração
delta.timeUntilArchivedcom o limite antigo até que tenha passado tempo suficiente para que todos os arquivos sejam arquivados.- Seguindo o exemplo acima, todos os dias, durante os primeiros 30 dias, os dados de outro dia seriam considerados arquivados pelo Azure Databricks, mas ainda precisam ser arquivados pelo provedor de nuvem. Isso não resulta em um erro, mas ignora alguns arquivos de dados que poderiam ser consultados.
- Após 30 dias, atualize o
delta.timeUntilArchivedpara90 days.
- Você pode atualizar a configuração
delta.timeUntilArchivedtodos os dias para refletir o intervalo atual durante o período de atraso.- Embora a política de nuvem esteja definida para 90 dias, a idade real dos dados arquivados muda em tempo real. Por exemplo, após 7 dias, a configuração de
delta.timeUntilArchivedpara67 daysreflete com precisão a idade de todos os ficheiros de dados arquivados. - Essa abordagem só é necessária se você precisar acessar todos os dados em camadas quentes.
- Embora a política de nuvem esteja definida para 90 dias, a idade real dos dados arquivados muda em tempo real. Por exemplo, após 7 dias, a configuração de
Nota
A atualização do valor para delta.timeUntilArchived não altera quais dados são arquivados. Ele altera apenas quais dados o Azure Databricks trata como se fossem arquivados.