Freigeben über


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

  1. SQL Server
  2. MySQL
  3. PostgreSQL
  4. Cosmos DB

Berechtigungen

Damit .create mindestens Berechtigungen für Datenbankbenutzer erforderlich sind und .alter mindestens Tabellenadministratorberechtigungen erforderlich sind.

Für .createeine .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 truedie 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", 
)