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.

Atualização automática dos metadados da tabela de diretório

Os metadados de uma tabela de diretório podem ser atualizados automaticamente usando o serviço de mensagens de eventos para seu serviço de armazenamento em nuvem.

A operação de atualização sincroniza os metadados com o último conjunto de arquivos associados no caminho e estágio externo, ou seja:

  • Novos arquivos no caminho são adicionados aos metadados da tabela.

  • As mudanças nos arquivos do caminho são atualizadas nos metadados da tabela.

  • Os arquivos que não estão mais no caminho são removidos dos metadados da tabela.

Para instruções para criação de estágios com tabelas de diretório atualizadas automaticamente, consulte Atualizações automatizadas dos metadados da tabela de diretório.

Nota

A atualização automática dos metadados não está disponível para tabelas de diretório em estágios internos que fazem referência ao armazenamento em nuvem externo. Para esses tipos de estágios, você precisa atualizar manualmente os metadados da tabela de diretório. Para instruções, consulte Atualização manual de uma tabela de diretório (neste tópico).

Para registrar qualquer arquivo ausente, sugerimos seguir nossas práticas recomendadas para preparar seus arquivos de dados e executar periodicamente uma instrução ALTER STAGE … REFRESH. Para obter um desempenho satisfatório, também recomendamos que você use um prefixo de caminho seletivo com ALTER STAGE. Isso reduz o número de arquivos que precisam ser listados e verificados se já foram registrados (por exemplo, bucket_name/YYYY/MM/DD/ ou mesmo bucket_name/YYYY/MM/DD/HH/ dependendo de seu volume).

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 automáticas de metadados, consulte Atualização automática dos metadados da tabela de diretório (neste tópico).

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 manual de uma tabela de diretório

Atualize os metadados em uma tabela de diretório manualmente usando o comando ALTER STAGE.

Nota

A atualização manual de metadados em um estágio externo impede que qualquer operação de atualização automatizada ocorra ao mesmo tempo. As atualizações automatizadas serão retomadas após a conclusão da atualização manual.

Por exemplo:

ALTER STAGE mystage REFRESH;
Copy