Partilhar via


Criar e alterar tabelas externas SQL do Azure

Aplica-se a: ✅Microsoft FabricAzure Data Explorer

Cria ou altera uma tabela externa do SQL do Azure no banco de dados no qual o comando é executado.

Observação

  • Se a tabela existir, o .create comando falhará com um erro. Use .create-or-alter ou .alter para modificar tabelas existentes.
  • Não há suporte para alterar o esquema de uma tabela SQL externa do Azure.

Tipos de tabela externa do SQL do Azure com suporte

  1. SQL Server
  2. MySQL
  3. PostgreSQL
  4. Cosmos DB

Permissões

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

Para , ou uma tabela externa usando autenticação de identidade gerenciada requer permissões de administrador de banco de dados..create-or-alter .alter.create Esse método tem suporte para tabelas externas do SQL Server e do Cosmos DB.

Sintaxe

(.create | .create-or-alter | .alter) external table Esquema kind=) sql de nome de (tabela [ table = NomeDaTabela Sql ] (SqlConnectionString) [ (with [ sqlDialect = Dialeto de tabela ] , [ Propriedade , ... ]])

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
TableName string ✔️ O nome da tabela externa. O nome deve seguir as regras para nomes de entidade, e 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 é 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.
SqlTableName string O nome da tabela SQL não incluindo o nome do banco de dados. Por exemplo, "MySqlTable" e não "db1. MySqlTable". Se o nome da tabela contiver um ponto ("."), use a notação ['Name.of.the.table'].


Essa especificação é necessária para todos os tipos de tabelas, exceto para o Cosmos DB, pois para o Cosmos DB, o nome da coleção faz parte da cadeia de conexão.
SqlConnectionString string ✔️ A cadeia de conexão com o SQL Server.
Dialeto Sql string Indica o tipo de tabela externa do SQL do Azure. SQL Server é o padrão. Para MySQL, especifique MySQL. Para PostgreSQL, especifique PostgreSQL. Para o Cosmos DB, especifique CosmosDbSql.
Propriedade string Um par de propriedades chave-valor no formato PropertyName = PropertyValue. Consulte propriedades opcionais.

Aviso

Cadeias de conexão e consultas que incluem informações confidenciais devem ser ofuscadas para que sejam omitidas de qualquer rastreamento Kusto. Para obter mais informações, consulte literais de cadeia de caracteres ofuscados.

Propriedades opcionais

Propriedade Type Descrição
folder string A pasta da tabela.
docString string Uma cadeia de caracteres documentando a tabela.
firetriggers true/false Se true, instrui o sistema de destino a disparar gatilhos INSERT definidos na tabela SQL. O padrão é false. (Para obter mais informações, consulte BULK INSERT e System.Data.SqlClient.SqlBulkCopy)
createifnotexists true/ false Se true, a tabela SQL de destino for criada se ainda não existir; a primarykey propriedade deverá ser fornecida nesse caso para indicar a coluna de resultado que é a chave primária. O padrão é false.
primarykey string Se createifnotexists for true, o nome da coluna resultante será usado como a chave primária da tabela SQL se for criado por esse comando.

Autenticação e autorização

Para interagir com uma tabela SQL externa do Azure, você deve especificar os meios de autenticação como parte do SqlConnectionString. O SqlConnectionString define o recurso a ser acessado e suas informações de autenticação.

Para obter mais informações, consulte Métodos de autenticação de tabela externa do SQL do Azure.

Observação

Se a tabela externa for usada para exportação contínua, a autenticação deverá ser executada por nome de usuário/senha ou identidades gerenciadas.

Exemplos

Os exemplos a seguir mostram como criar cada tipo de tabela externa do SQL do Azure.

SQL Server

.create external table MySqlExternalTable (x:long, s:string) 
kind=sql
table=MySqlTable
( 
   h@'Server=tcp:myserver.database.windows.net,1433;Authentication=Active Directory Integrated;Initial Catalog=mydatabase;'
)
with 
(
   docstring = "Docs",
   folder = "ExternalTables", 
   createifnotexists = true,
   primarykey = x,
   firetriggers=true
)  

Saída

TableName TableType Pasta DocString Propriedades
MySqlExternalTable Sql ExternalTables Docs {
"TargetEntityKind": "sqltable'",
"TargetEntityName": "MySqlTable",
"TargetEntityConnectionString": "Servidor = tcp: meuservidor.banco de dados.windows.net, 1433; Autenticação=Active Directory Integrado; Catálogo Inicial=meubanco de dados;",
"FireTriggers": verdadeiro,
"CreateIfNotExists": verdadeiro,
"Chave Primária": "x"
}

MySQL

.create external table MySqlExternalTable (x:long, s:string) 
kind=sql
table=MySqlTable
( 
   h@'Server=myserver.mysql.database.windows.net;Port = 3306;UID = USERNAME;Pwd = PASSWORD;Database = mydatabase;'
)
with 
(
   sqlDialect = "MySql",
   docstring = "Docs",
   folder = "ExternalTables", 
)  

PostgreSQL

.create external table PostgreSqlExternalTable (x:long, s:string) 
kind=sql
table=PostgreSqlTable
( 
   h@'Host = hostname.postgres.database.azure.com; Port = 5432; Database= db; User Id=user; Password=pass; Timeout = 30;'
)
with 
(
   sqlDialect = "PostgreSQL",
   docstring = "Docs",
   folder = "ExternalTables", 
)  

Cosmos DB

.create external table CosmosDBSQLExternalTable (x:long, s:string) 
kind=sql
( 
   h@'AccountEndpoint=https://cosmosdbacc.documents.azure.com/;Database=MyDatabase;Collection=MyCollection;AccountKey=' h'R8PM...;'
)
with 
(
   sqlDialect = "CosmosDbSQL",
   docstring = "Docs",
   folder = "ExternalTables", 
)