Criar e alterar tabelas externas SQL do Azure
Aplica-se a: ✅Microsoft Fabric✅Azure 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
- SQL Server
- MySQL
- PostgreSQL
- 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",
)