Partilhar via


Trabalhar com tables externos

Os dados do armazenamento tables externo são armazenados num diretório no armazenamento de objetos na nuvem no seu locatário de nuvem. Você deve especificar um local de armazenamento ao definir um tableexterno.

O Databricks recomenda o uso de tables externos somente quando você precisar de acesso direto aos dados sem usar computação no Azure Databricks. Os privilégios do Unity Catalog não são aplicados quando os usuários acessam arquivos de dados de sistemas externos.

Nota

Este artigo concentra-se em Unity Catalog externos tables. Os tables externos no metastore herdado do Hive têm comportamentos diferentes. Consulte Objetos de banco de dados no metastore herdado do Hive.

Trabalhar com tables externos

Azure Databricks gerencia apenas os metadados para tables externos e não usa o local de armazenamento gerido associado ao schemacorrespondente. O registo table no Unity Catalog é apenas um ponteiro para ficheiros de dados. Quando você solta um tableexterno, os arquivos de dados não são excluídos.

Ao criar um tableexterno, você pode registrar um diretório existente de arquivos de dados como um table ou fornecer um caminho para criar novos arquivos de dados.

Os tables externos podem usar os seguintes formatos de arquivo:

  • DELTA
  • CSV
  • JSON
  • AVRO
  • PARQUET
  • ORC
  • TEXTO

Criar uma table externa

Para criar um tableexterno, pode usar comandos SQL ou operações de gravação Dataframe.

Antes de começar

Para criar um tableexterno, você deve atender aos seguintes requisitos de permissão:

  • O privilégio CREATE EXTERNAL TABLE num local exterior que concede acesso ao LOCATION acedido pelo tableexterior.
  • A permissão USE SCHEMA no schemapai de table.
  • A permissão USE CATALOG no pai catalogde table.
  • A permissão CREATE TABLE no pai do table, schema.

Para obter mais informações sobre como configurar locais externos, consulte Criar um local externo para conectar o armazenamento em nuvem ao Azure Databricks.

Exemplos de comandos SQL

Use um dos seguintes exemplos de comando em um bloco de anotações ou no editor de consultas SQL para criar um tableexterno.

Nos exemplos a seguir, substitua o marcador de posição values:

  • <catalog>: O nome do catalog que conterá o table.
  • <schema>: O nome do schema que conterá o table.
  • <table-name>: Um nome para o table.
  • <column-specification>: O nome e o tipo de dados para cada column.
  • <bucket-path>: O caminho para o bucket de armazenamento em nuvem where o table será criado.
  • <table-directory>: Um diretório com o where e table será criado. Use um diretório exclusivo para cada table.
CREATE TABLE <catalog>.<schema>.<table-name>
(
  <column-specification>
)
LOCATION 'abfss://<bucket-path>/<table-directory>';

Para obter mais informações sobre a criação de tableparameters, consulte CREATE TABLE.

Operações de gravação de dataframe

Muitos utilizadores criam tables externos a partir de resultados de consultas ou operações de escrita do DataFrame. Os artigos a seguir demonstram alguns dos muitos padrões que você pode usar para criar um table externo no Azure Databricks:

Solte uma table externa

Para remover um table você deve ser o seu proprietário ou ter o privilégio MANAGE no table. Para soltar um tableexterno, execute o seguinte comando SQL:

DROP TABLE IF EXISTS catalog_name.schema_name.table_name;

O Unity Catalog não elimina os dados subjacentes no armazenamento em nuvem quando removes um tableexterno. Você deve excluir diretamente os arquivos de dados subjacentes se precisar remove dados associados ao table.

Bloco de notas de exemplo: Criar tables externo

Você pode usar o caderno de anotações de exemplo a seguir para criar um cataloge schemainternos e um tableexterno, e para gerenciar permissões nesses itens.

Criar e gerir um table externo no caderno Unity Catalog

Get computador portátil