Compartilhar via


Criar e alterar tabelas delta externas no Armazenamento do Azure

Aplica-se a: ✅Microsoft FabricAzure Data Explorer

Os comandos neste artigo podem ser usados para criar ou alterar uma tabela externa delta no banco de dados 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 Azure Data Lake Store Gen1 ou no Azure Data Lake Store Gen2.

Observação

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

Para acelerar consultas em tabelas delta externas, consulte Política de aceleração de consulta.

Permissões

Requer .create pelo menos permissões de usuário de banco de dados e requer .alter pelo menos permissões de administrador de tabela.

Para .create-or-alter uma tabela externa usando a autenticação de identidade gerenciada, são necessárias permissões AllDatabasesAdmin .

Sintaxe

(.create | .create-or-alter.alter | ) external table TableName [(Esquema)] kind (= deltaStorageConnectionString ) [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 regular 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, em que 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 blobs 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 do log delta. As colunas de partição são adicionadas como colunas virtuais ao esquema de 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 compatíveis com as 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. Nas operações de gravação, todos os arquivos serão gravados com esse prefixo. Em operações de leitura, somente arquivos com esse prefixo são lidos.
fileExtension string Se definido, indica as extensões dos arquivos. Na gravação, os nomes dos arquivos terminarão com esse sufixo. Na leitura, somente os arquivos com esta extensão de arquivo serão lidos.
encoding string Indica como o texto é codificado: UTF8NoBOM (padrão) ou UTF8BOM.
dryRun bool Se definido, a definição de tabela externa não será mantida. Essa opção é útil para validar a definição da tabela externa, especialmente em conjunto com o filesPreview parâmetro or 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 baseado 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

  • A viagem no tempo não é suportada. Somente a versão mais recente da tabela delta é usada.