Criar e alterar tabelas externas do SQL
Cria ou altera uma tabela externa do SQL na base de dados na qual o comando é executado.
Nota
- Se a tabela existir, o
.create
comando falhará com um erro. Utilizar.create-or-alter
ou.alter
modificar tabelas existentes. - A alteração do esquema de uma tabela SQL externa não é suportada.
Tipos de tabelas externas do SQL suportados
- Microsoft SQL Server
- MySQL
- PostgreSQL
- Cosmos DB
Permissões
Para .create
exigir, pelo menos, permissões de Utilizador da Base de Dados e exigir.alter
, pelo menos, permissões de Administração de Tabelas.
Para .create-or-alter
uma tabela externa através da autenticação de identidade gerida requer permissões AllDatabasesAdmin . Atualmente, isto só é relevante para a Microsoft SQL Server tabelas externas.
Syntax
(.create
.create-or-alter
| .alter
| ) external
table
TableName(
Schema)
kind
=
sql
[ table
=
SqlTableName ] (
SqlConnectionString)
[ [ sqlDialect
with
(
=
SqlDialect ] [ ,
Property,
... ])
]
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Tipo | Necessário | Descrição |
---|---|---|---|
TableName | string |
✔️ | O nome da tabela externa. O nome tem de seguir as regras para nomes de entidades e uma tabela externa não pode ter o mesmo nome que uma tabela normal na mesma base de dados. |
Esquema | string |
✔️ | O esquema de dados externos é uma lista separada por vírgulas de um ou mais nomes de colunas e tipos de dados, onde cada item segue o formato: ColumnName: ColumnType. |
SqlTableName | string |
O nome da tabela SQL que não inclui o nome da base de dados. Por exemplo, "MySqlTable" e não "db1. MySqlTable". Se o nome da tabela contiver um ponto final ("."), utilize a notação ['Name.of.the.table']. Esta especificação é necessária para todos os tipos de tabelas, exceto para o Cosmos DB, uma vez que para o Cosmos DB o nome da coleção faz parte do cadeia de ligação. |
|
SqlConnectionString | string |
✔️ | O cadeia de ligação para o SQL Server. |
SqlDialect | string |
Indica o tipo de tabela externa do SQL. O Microsoft SQL Server é a predefiniçã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. Veja as propriedades opcionais. |
Aviso
As cadeias de ligação e as consultas que incluem informações confidenciais devem ser ocultadas para que sejam omitidas de qualquer rastreio kusto. Para obter mais informações, veja literais de cadeias obsultas.
Propriedades opcionais
Propriedade | Tipo | Description |
---|---|---|
folder |
string |
A pasta da tabela. |
docString |
string |
Uma cadeia que documenta a tabela. |
firetriggers |
true /false |
Se true , instruir o sistema de destino a acionar acionadores 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 primarykey propriedade tem de 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á utilizado como chave primária da tabela SQL se for criado por este comando. |
Autenticação e autorização
Para interagir com uma tabela SQL externa do Azure Data Explorer, tem de especificar meios de autenticação como parte do SqlConnectionString. O SqlConnectionString define o recurso a aceder e as informações de autenticação.
Para obter mais informações, veja Métodos de autenticação de tabelas externas do SQL.
Nota
Se a tabela externa for utilizada para exportação contínua, a autenticação tem de ser efetuada por nome de utilizador/palavra-passe ou identidades geridas.
Exemplos
Os exemplos seguintes mostram como criar cada tipo de tabela externa do SQL.
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 | Tabelas Externas | Docs | { "TargetEntityKind": "sqltable", "TargetEntityName": "MySqlTable", "TargetEntityConnectionString": "Server=tcp:myserver.database.windows.net,1433; Autenticação=Integrado do Active Directory; Catálogo Inicial=mydatabase;", "FireTriggers": true, "CreateIfNotExists": true, "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",
)
Conteúdo relacionado
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários