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;
Copy

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);
Copy

Google Cloud Storage

CREATE STAGE mystage
  URL='gcs://load/files/'
  STORAGE_INTEGRATION = my_storage_int
  DIRECTORY = (ENABLE = TRUE);
Copy

Microsoft Azure

CREATE STAGE mystage
  URL='azure://myaccount.blob.core.windows.net/load/files/'
  STORAGE_INTEGRATION = my_storage_int
  DIRECTORY = (ENABLE = TRUE);
Copy

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';
Copy

O comando retorna as seguintes colunas:

Coluna

Descrição

file

Nome do arquivo preparado de origem e caminho relativo ao arquivo.

status

Status: REGISTERED_NEW, REGISTERED_UPDATE, REGISTER_SKIPPED, REGISTER_FAILED, UNREGISTERED ou UNREGISTER_FAILED.

description

Descrição detalhada do status de registro do arquivo.