Compartilhar via


Criar e alterar tabelas externas delta no Armazenamento do Azure

Os comandos neste artigo podem ser usados para criar ou alterar uma tabela externa delta no banco de dados a partir do qual o comando é executado. Uma tabela externa delta faz referência aos dados da tabela Delta Lake localizados no Armazenamento de Blobs do Azure, no Repositório Azure Data Lake Gen1 ou no Repositório Azure Data Lake Gen2.

Observação

Se a tabela existir, o .create comando falhará com um erro. Use .create-or-alter ou .alter modifique tabelas existentes.

Permissões

Para .create requer pelo menos permissões de Usuário do Banco de Dados e .alter para requer pelo menos permissões de Administrador de Tabela.

Para .create-or-alter uma tabela externa usando autenticação de identidade gerenciada requer permissões AllDatabasesAdmin .

Sintaxe

(.create.create-or-alter | .alter | ) external table TableName [(Schema)]delta kind = (StorageConnectionString ) [with (Propriedade [, ...]])

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
TableName string ✔️ Um nome de tabela externa que adere às regras de nomes de entidade. Uma tabela externa não pode ter o mesmo nome que uma tabela normal no mesmo banco de dados.
Esquema string O esquema de dados externos opcional é uma lista separada por vírgulas de um ou mais nomes de coluna e tipos de dados, onde cada item segue o formato: ColumnName : ColumnType. Se não for especificado, ele será inferido automaticamente do log delta com base na versão mais recente da tabela delta.
StorageConnectionString string ✔️ caminho da pasta raiz da tabela delta, incluindo credenciais. Pode apontar para o contêiner de blob do Armazenamento de Blobs do Azure, o sistema de arquivos do Azure Data Lake Gen 2 ou o contêiner do Azure Data Lake Gen 1. O tipo de armazenamento de tabela externa é determinado pela cadeia de conexão fornecida. Consulte Cadeias de conexão de armazenamento.
Propriedade string Um par de propriedades chave-valor no formato PropertyName = PropertyValue. Consulte propriedades opcionais.

Observação

  • Se um esquema personalizado for fornecido, colunas não existentes ou colunas com tipos incompatíveis serão preenchidas com valores nulos.
  • As informações sobre partições são inferidas automaticamente a partir do log delta. As colunas de partição são adicionadas como colunas virtuais ao esquema da tabela. Para obter mais informações, consulte Colunas virtuais.
  • O formato do caminho é inferido automaticamente a partir das informações de particionamento. Para obter mais informações, consulte Formato de caminho

Dica

Para um esquema personalizado, você pode usar o plug-in infer_storage_schema para inferir o esquema com base no conteúdo do arquivo externo.

Autenticação e autorização

O método de autenticação para acessar uma tabela externa é baseado na cadeia de conexão fornecida durante sua criação, e as permissões necessárias para acessar a tabela variam dependendo do método de autenticação.

Os métodos de autenticação com suporte são os mesmos suportados pelas tabelas externas do Armazenamento do Azure.

Propriedades opcionais

Propriedade Type Descrição
folder string Pasta da tabela
docString string Cadeia de caracteres documentando a tabela
namePrefix string Se definido, indica o prefixo dos arquivos. Em operações de gravação, todos os arquivos serão gravados com esse prefixo. Em operações de leitura, somente os arquivos com esse prefixo são lidos.
fileExtension string Se definido, indica extensões de arquivo dos arquivos. Na gravação, os nomes dos arquivos terminarão com esse sufixo. Na leitura, apenas os arquivos com essa extensão de arquivo serão lidos.
encoding string Indica como o texto é codificado: UTF8NoBOM (padrão) ou UTF8BOM.
dryRun bool Se definida, a definição de tabela externa não será persistente. Essa opção é útil para validar a definição de tabela externa, especialmente em conjunto com o filesPreview parâmetro ou sampleUris .

Observação

A tabela delta externa é acessada durante a criação, para inferir as informações de particionamento e, opcionalmente, o esquema. Verifique se a definição da tabela é válida e se o armazenamento está acessível.

Exemplos

Criar ou alterar uma tabela externa delta com um esquema inferido

Na tabela externa a seguir, o esquema é inferido automaticamente da versão mais recente da tabela delta.

.create-or-alter external table ExternalTable  
kind=delta 
( 
   h@'https://storageaccount.blob.core.windows.net/container1;secretKey'
) 

Criar uma tabela externa delta com um esquema personalizado

Na tabela externa a seguir, um esquema personalizado é especificado e substitui o esquema da tabela delta. Se, posteriormente, você precisar substituir o esquema personalizado pelo esquema com base na versão mais recente da tabela delta, execute o .alter | .create-or-alter comando sem especificar um esquema, como no exemplo anterior.

.create external table ExternalTable (Timestamp:datetime, x:long, s:string) 
kind=delta
( 
   h@'abfss://filesystem@storageaccount.dfs.core.windows.net/path;secretKey'
)

Limitações

  • Não há suporte para viagens no tempo. Somente a versão mais recente da tabela delta é usada.