Erstellen und Ändern externer Azure SQL-Tabellen
Gilt für: ✅Microsoft Fabric✅Azure Data Explorer
Erstellt oder ändert eine externe Azure SQL-Tabelle in der Datenbank, in der der Befehl ausgeführt wird.
Hinweis
- Wenn die Tabelle vorhanden ist, schlägt der
.create
Befehl mit einem Fehler fehl. Verwenden oder.alter
ändern Sie.create-or-alter
vorhandene Tabellen. - Das Ändern des Schemas einer externen Azure SQL-Tabelle wird nicht unterstützt.
Unterstützte externe Azure SQL-Tabellentypen
- SQL Server
- MySQL
- PostgreSQL
- Cosmos DB
Berechtigungen
Damit .create
mindestens Berechtigungen für Datenbankbenutzer erforderlich sind und .alter
mindestens Tabellenadministratorberechtigungen erforderlich sind.
Für .create
eine .alter
.create-or-alter
externe Tabelle mit verwalteter Identitätsauthentifizierung sind Datenbankadministratorberechtigungen erforderlich. Diese Methode wird für externe SQL Server- und Cosmos DB-Tabellen unterstützt.
Syntax
(.create
.alter
| | .create-or-alter
) external
table
TableName-Schema kind
=
sql
)
[ =
table
SqlTableName (
] (
SqlConnectionString)
[ (
with
[ SqlDialect ] ,
[ sqlDialect
=
Property ,
... ]])
Erfahren Sie mehr über Syntaxkonventionen.
Parameter
Name | Type | Erforderlich | Beschreibung |
---|---|---|---|
TableName | string |
✔️ | Der Name der externen Tabelle. Der Name muss den Regeln für Entitätsnamen entsprechen, und eine externe Tabelle darf nicht denselben Namen wie eine reguläre Tabelle in derselben Datenbank haben. |
Schema | string |
✔️ | Das Schema für externe Daten ist eine durch Trennzeichen getrennte Liste mit einem oder mehreren Spaltennamen und Datentypen, wobei jedes Element dem Format folgt: ColumnName : ColumnType. |
SqlTableName | string |
Der Name der SQL-Tabelle, die den Datenbanknamen nicht enthält. Beispiel: "MySqlTable" und nicht "db1". MySqlTable". Wenn der Name der Tabelle einen Punkt (".") enthält, verwenden Sie ['Name.of.the.table'] Notation. | |
Diese Spezifikation ist für alle Arten von Tabellen mit Ausnahme von Cosmos DB erforderlich, da der Sammlungsname teil des Verbindungszeichenfolge ist. |
|||
SqlConnectionString | string |
✔️ | Die Verbindungszeichenfolge auf dem SQL-Server. |
SqlDialect | string |
Gibt den Typ der externen Azure SQL-Tabelle an. SQL Server ist die Standardeinstellung. Geben Sie für MySQL an MySQL . Geben Sie für PostgreSQL an PostgreSQL . Geben Sie für Cosmos DB an CosmosDbSql . |
|
Eigenschaft | string |
Ein Schlüssel-Wert-Eigenschaftspaar im Format PropertyName = PropertyValue. Weitere Informationen finden Sie unter optionalen Eigenschaften. |
Warnung
Verbindungszeichenfolgen und Abfragen, die vertrauliche Informationen enthalten, sollten verschleiert werden, damit sie von jeder Kusto-Ablaufverfolgung weggelassen werden. Weitere Informationen finden Sie unter verschleierten Zeichenfolgenliteralen.
Optionale Eigenschaften:
Eigenschaft | Typ | Beschreibung |
---|---|---|
folder |
string |
Der Ordner der Tabelle. |
docString |
string |
Eine Zeichenfolge, die die Tabelle dokumentiert. |
firetriggers |
true /false |
Wenn true , weist das Zielsystem an, INSERT-Trigger auszulösen, die in der SQL-Tabelle definiert sind. Der Standardwert ist false . (Weitere Informationen finden Sie unter BULK INSERT und System.Data.SqlClient.SqlBulkCopy) |
createifnotexists |
true / false |
Wenn true die Ziel-SQL-Tabelle erstellt wird, wenn sie noch nicht vorhanden ist; die primarykey Eigenschaft muss in diesem Fall bereitgestellt werden, um die Ergebnisspalte anzugeben, die der Primärschlüssel ist. Der Standardwert ist false . |
primarykey |
string |
Wenn createifnotexists dies der Fall ist true , wird der resultierende Spaltenname als Primärschlüssel der SQL-Tabelle verwendet, wenn er mit diesem Befehl erstellt wird. |
Authentifizierung und Autorisierung
Um mit einer externen Azure SQL-Tabelle zu interagieren, müssen Sie die Authentifizierungsmittel als Teil von SqlConnectionString angeben. SqlConnectionString definiert die Ressource für den Zugriff und die zugehörigen Authentifizierungsinformationen.
Weitere Informationen finden Sie unter Azure SQL-Authentifizierungsmethoden für externe Tabellen.
Hinweis
Wenn die externe Tabelle für den kontinuierlichen Export verwendet wird, muss die Authentifizierung entweder durch Benutzername/Kennwort oder verwaltete Identitäten ausgeführt werden.
Beispiele
Die folgenden Beispiele zeigen, wie Sie jeden Azure SQL-externen Tabellentyp erstellen.
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
)
Output
TableName | TableType | Ordner | DocString | Eigenschaften |
---|---|---|---|---|
MySqlExternalTable | Sql | ExternalTables | Docs | { "TargetEntityKind": "sqltable'", "TargetEntityName": "MySqlTable", "TargetEntityConnectionString": "Server=tcp:myserver.database.windows.net,1433; Authentication=Active Directory Integrated; Initial Catalog=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",
)