Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.create-or-alter
ändern Sie.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 (
table
=
] (
)
[ with
(
[ SqlDialect=
,
Property,
... ]])
Erfahren Sie mehr über Syntaxkonventionen.
Parameter
Name | Typ | Erforderlich | Beschreibung |
---|---|---|---|
Tabellenname | 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. |
SqlConnectionString | string |
✔️ | Die Verbindungszeichenfolge auf dem SQL-Server. |
SqlTableName | string |
Der Name der SQL-Tabelle, die den Datenbanknamen nicht enthält. Wenn der Name der Tabelle einen Punkt (".") enthält, verwenden Sie ['Name.of.the.table'] Notation. Wenn sich die Tabelle nicht im Standardmäßigen SQL-Datenbankschema befindet, verwenden Sie die ['SchemaName.TableName']-Schreibweise. For example, for a table "T1" in schema "S1": ['S1. T1'] Diese Spezifikation ist für alle Arten von Tabellen mit Ausnahme von Cosmos DB erforderlich, da der Sammlungsname Teil der Verbindungszeichenfolge ist. |
|
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
)
Ausgabe
Tabellenname | Tabellentyp | Ordner | DocString | Eigenschaften |
---|---|---|---|---|
MySqlExternalTable | SQL | ExternalTables | Doktoren | { "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",
)