Gerenciamento de tabelas de diretório¶
Este tópico fornece instruções para criar e gerenciar estágios externos ou internos com tabelas de diretório.
Como criar um estágio com uma tabela de diretório¶
Esta seção fornece instruções para a criação de estágios (usando CREATE STAGE) que cobrem uma tabela de diretório para armazenar metadados sobre os arquivos preparados.
Tabelas de diretório em estágios internos exigem atualizações manuais de metadados. Você também pode optar por incluir uma tabela de diretório em estágios externos e atualizar os metadados manualmente. Para obter mais informações sobre atualizações automatizadas de metadados, consulte atualizações automatizadas de metadados.
A sintaxe para criar um estágio com uma tabela de diretório é quase idêntica à criação de um estágio padrão externo ou interno. Defina o parâmetro opcional DIRECTORY como TRUE.
Para a descrição completa da sintaxe e dos parâmetros, consulte CREATE STAGE. Para adicionar uma tabela de diretório a um estágio existente, use o comando ALTER STAGE … SET DIRECTORY.
Nota
Depois de criar um estágio com uma tabela de diretório, você deve executar ALTER STAGE … REFRESH para atualizar manualmente os metadados da tabela de diretório.
Exemplos¶
Criar um estágio interno chamado mystage
que inclua uma tabela de diretório. O estágio faz referência a um formato de arquivo chamado myformat
:
CREATE STAGE mystage DIRECTORY = (ENABLE = TRUE) FILE_FORMAT = myformat;
Criar um estágio externo chamado mystage
que inclua uma tabela de diretório. O estágio faz referência a um bucket ou contêiner chamado load
com um caminho de files
. O acesso seguro ao local de armazenamento em nuvem é fornecido por meio da integração de armazenamento my_storage_int
:
Nota
O local de armazenamento no valor de URL deve terminar em uma barra (/
).
Amazon S3
CREATE STAGE mystage
URL='s3://load/files/'
STORAGE_INTEGRATION = my_storage_int
DIRECTORY = (ENABLE = TRUE);
Google Cloud Storage
CREATE STAGE mystage
URL='gcs://load/files/'
STORAGE_INTEGRATION = my_storage_int
DIRECTORY = (ENABLE = TRUE);
Microsoft Azure
CREATE STAGE mystage
URL='azure://myaccount.blob.core.windows.net/load/files/'
STORAGE_INTEGRATION = my_storage_int
DIRECTORY = (ENABLE = TRUE);
Atualização dos metadados da tabela de diretório¶
Atualização automatizada¶
É possível atualizar automaticamente os metadados de uma tabela de diretório usando o serviço de mensagens de evento do serviço de armazenamento em nuvem. Para configurar as atualizações automatizadas, consulte Atualizações automatizadas dos metadados da tabela de diretório.
Atualização manual¶
Nota
Atualizações manuais em um estágio externo bloqueiam atualizações automatizadas simultâneas. As atualizações automatizadas são retomadas após a conclusão da atualização manual.
Atualizações manuais executam uma operação de lista em um estágio e podem ser lentas ou caras para estágios grandes ou em rápido crescimento. Em vez disso, use atualizações automatizadas baseadas em eventos.
Para atualizar manualmente os metadados em uma tabela de diretório, use o comando ALTER STAGE.
Para melhor desempenho, use um SUBPATH
seletivo com ALTER STAGE. Isso reduz o número de arquivos que precisam ser listados e verificados. Para saber mais sobre como organizar seus dados por caminho, consulte as práticas recomendadas para preparar seus arquivos de dados.
Por exemplo:
ALTER STAGE my_stage REFRESH SUBPATH = '2024/01/31';
O comando retorna as seguintes colunas:
Coluna |
Descrição |
---|---|
|
Nome do arquivo preparado de origem e caminho relativo ao arquivo. |
|
Status: REGISTERED_NEW, REGISTERED_UPDATE, REGISTER_SKIPPED, REGISTER_FAILED, UNREGISTERED ou UNREGISTER_FAILED. |
|
Descrição detalhada do status de registro do arquivo. |