Partilhar via


Criar e alterar tabelas externas do Azure SQL

Aplica-se a: ✅Microsoft FabricAzure Data Explorer

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

Observação

  • Se a tabela existir, o comando .create 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 SQL do Azure suportados

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

Permissões

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

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

Sintaxe

(.create.create-or-alter.alter | | )externaltable Esquemasql)kind=TableName( [ table=SqlTableName ] (SqlConnectionString) [(with [=sqlDialectSqlDialect ] , [ Propriedade, ... ])]

Saiba mais sobre convenções de sintaxe.

Parâmetros

Nome Tipo Obrigatório Descrição
Nome da tabela string ✔️ O nome da tabela externa. O nome deve seguir as regras para nomes de entidades, 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, onde cada item segue o formato: ColumnName:ColumnType.
SqlConnectionString string ✔️ A cadeia de conexão com o servidor SQL.
SqlTableName string O nome da tabela SQL não inclui o nome do banco de dados. Se o nome da tabela contiver um ponto ("."), use a notação ['Name.of.the.table']. Se a tabela não estiver no esquema padrão do banco de dados SQL, use a notação ['SchemaName.TableName']. Por exemplo, para uma tabela "T1" no esquema "S1": ['S1. T1']

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

Advertência

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 ofuscadas.

Propriedades opcionais

Propriedade Tipo Descrição
folder string A pasta da tabela.
docString string Uma cadeia de caracteres que documenta a tabela.
firetriggers true/false Se true, instrui o sistema de destino a disparar gatilhos INSERT definidos na tabela SQL. A predefiniçã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 será criada se ainda não existir; A propriedade primarykey deve ser fornecida neste caso para indicar a coluna de resultados que é a chave primária. A predefinição é false.
primarykey string Se createifnotexists for true, o nome da coluna resultante será usado como 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 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 SQL do Azure.

Servidor SQL

.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
)  

Realização

Nome da Tabela Tipo de tabela Pasta de Arquivos DocString Propriedades
MySqlExternalTable SQL Tabelas Externas Documentos {
"TargetEntityKind": "sqltable'",
"TargetEntityName": "MySqlTable",
"TargetEntityConnectionString": "Server=tcp:myserver.database.windows.net,1433; Authentication=Ative Directory Integrado; Catálogo Inicial = mydatabase;",
"FireTriggers": verdadeiro,
"CreateIfNotExists": verdadeiro,
"PrimaryKey": "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", 
)