Skapa och ändra externa SQL-tabeller
Skapar eller ändrar en extern SQL-tabell i databasen där kommandot körs.
Anteckning
- Om tabellen finns
.create
misslyckas kommandot med ett fel. Använd.create-or-alter
eller.alter
för att ändra befintliga tabeller. - Det går inte att ändra schemat för en extern SQL-tabell.
Sql-externa tabelltyper som stöds
- Microsoft SQL Server
- MySQL
- PostgreSQL
- Cosmos DB
Behörigheter
För att .create
minst behöva behörigheter för databasanvändare och för att .alter
minst behöva behörigheter för table Admin.
För .create-or-alter
en extern tabell som använder hanterad identitetsautentisering krävs Behörigheter för AllDatabasesAdmin . För närvarande är detta endast relevant för Microsoft SQL Server externa tabeller.
Syntax
(.create
.alter
.create-or-alter
| | ) external
table
TableName Schema(
)
=
kind
sql
[ table
=
SqlTableName ] (
SqlConnectionString)
[with
(
SqlDialectsqlDialect
=
] ,
[ Egenskap,
... ]])
Läs mer om syntaxkonventioner.
Parametrar
Namn | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
TableName | string |
✔️ | Namnet på den externa tabellen. Namnet måste följa reglerna för entitetsnamn och en extern tabell får inte ha samma namn som en vanlig tabell i samma databas. |
Schema | string |
✔️ | Det externa dataschemat är en kommaavgränsad lista med ett eller flera kolumnnamn och datatyper, där varje objekt följer formatet: ColumnName: ColumnType. |
SqlTableName | string |
Namnet på SQL-tabellen som inte innehåller databasnamnet. Till exempel "MySqlTable" och inte "db1. MySqlTable". Om namnet på tabellen innehåller en punkt ("."), använder du ['Name.of.the.table'] notation. Den här specifikationen krävs för alla typer av tabeller förutom Cosmos DB, eftersom samlingsnamnet för Cosmos DB är en del av anslutningssträng. |
|
SqlConnectionString | string |
✔️ | Anslutningssträng till SQL-servern. |
SqlDialect | string |
Anger typen av extern SQL-tabell. Microsoft SQL Server är standard. För MySQL anger du MySQL . För PostgreSQL anger du PostgreSQL . För Cosmos DB anger du CosmosDbSql . |
|
Egenskap | string |
Ett nyckel/värde-egenskapspar i formatet PropertyName= PropertyValue. Se valfria egenskaper. |
Varning
Anslutningssträngar och frågor som innehåller konfidentiell information bör döljas så att de utelämnas från kusto-spårning. Mer information finns i dolda strängliteraraler.
Valfria egenskaper
Egenskap | Typ | Description |
---|---|---|
folder |
string |
Tabellens mapp. |
docString |
string |
En sträng som dokumenterar tabellen. |
firetriggers |
true /false |
Om true instruerar instruerar du målsystemet att utlösa INSERT-utlösare som definierats i SQL-tabellen. Standardvärdet är false . (Mer information finns i BULK INSERT och System.Data.SqlClient.SqlBulkCopy) |
createifnotexists |
true / false |
Om true skapas SQL-måltabellen om den inte redan finns. primarykey Egenskapen måste anges i det här fallet för att ange den resultatkolumn som är primärnyckeln. Standardvärdet är false . |
primarykey |
string |
Om createifnotexists är true används det resulterande kolumnnamnet som SQL-tabellens primärnyckel om den skapas med det här kommandot. |
Autentisering och auktorisering
Om du vill interagera med en extern SQL-tabell från Azure Data Explorer måste du ange autentiseringsmedelvärden som en del av SqlConnectionString. SqlConnectionString definierar resursen för åtkomst och dess autentiseringsinformation.
Mer information finns i autentiseringsmetoder för externa SQL-tabeller.
Anteckning
Om den externa tabellen används för kontinuerlig export måste autentiseringen utföras antingen med användarnamn/lösenord eller hanterade identiteter.
Exempel
I följande exempel visas hur du skapar varje typ av extern SQL-tabell.
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
)
Resultat
TableName | TableType | Mapp | DocString | Egenskaper |
---|---|---|---|---|
MySqlExternalTable | SQL | ExternalTables | Docs | { "TargetEntityKind": "sqltable", "TargetEntityName": "MySqlTable", "TargetEntityConnectionString": "Server=tcp:myserver.database.windows.net,1433; Authentication=Active Directory Integrated; Initial Catalog=mydatabase;", "FireTriggers": sant, "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",
)
Relaterat innehåll
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för