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.
Conteúdo relacionado
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de