.export to SQL
Gilt für: ✅Microsoft Fabric✅Azure Data Explorer
Mit dem Exportieren von Daten nach SQL können Sie eine Abfrage ausführen und deren Ergebnisse an eine Tabelle in einer SQL-Datenbank gesendet werden, z. B. eine SQL-Datenbank, die vom Azure SQL-Datenbank Dienst gehostet wird.
Berechtigungen
Sie müssen mindestens über Die Berechtigungen des Tabellenadministrators verfügen, um diesen Befehl auszuführen.
Syntax
.export
[async
] to
sql
sqlTableNamesqlConnectionString [with
(
propertyName=
propertyValue [,
...]] )
<|
Frage
Erfahren Sie mehr über Syntaxkonventionen.
Parameter
Name | Type | Erforderlich | Beschreibung |
---|---|---|---|
async |
string |
Wenn angegeben, wird der Befehl asynchron ausgeführt. | |
SqlTableName | string |
✔️ | Der Name der SQL-Datenbanktabelle, in die die Daten eingefügt werden sollen. Um vor Einfügungsangriffen zu schützen, ist dieser Name eingeschränkt. |
SqlConnectionString | string |
✔️ | Die Verbindungszeichenfolge für den SQL-Endpunkt und die SQL-Datenbank. Die Zeichenfolge muss dem ADO.NET Verbindungszeichenfolge Format entsprechen. Aus Sicherheitsgründen ist die Verbindungszeichenfolge eingeschränkt. |
PropertyName, PropertyValue | string |
Eine Liste optionaler Eigenschaften. |
Unterstützte Eigenschaften
Name | Werte | Beschreibung |
---|---|---|
firetriggers |
true oder 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 oder 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 |
Wenn createifnotexists true ist, gibt diese Eigenschaft den Namen der Spalte im Ergebnis an, die als Primärschlüssel der SQL-Tabelle verwendet wird, wenn sie mit diesem Befehl erstellt wird. |
|
persistDetails |
bool |
Gibt an, dass der Befehl seine Ergebnisse beibehalten soll (siehe async Flag). Standardwerte für true asynchrone Ausführung, können aber deaktiviert werden, wenn der Aufrufer die Ergebnisse nicht erfordert.
false Standardmäßig werden synchrone Ausführungen ausgeführt, können aber aktiviert werden. |
token |
string |
Das Microsoft Entra-Zugriffstoken, das Kusto zur Authentifizierung an den SQL-Endpunkt weiterleitet. Bei Festlegung sollte die SQL-Verbindungszeichenfolge keine Authentifizierungsinformationen wie Authentication , oder User ID Password . |
Authentifizierung und Autorisierung
Die Authentifizierungsmethode basiert auf den bereitgestellten Verbindungszeichenfolge und die berechtigungen, die für den Zugriff auf die SQL-Datenbank erforderlich sind, variieren je nach Authentifizierungsmethode.
Die unterstützten Authentifizierungsmethoden zum Exportieren von Daten nach SQL sind die integrierte Microsoft Entra-Authentifizierung (Identitätswechsel) und die Benutzernamen-/Kennwortauthentifizierung. Stellen Sie für die Identitätswechselauthentifizierung sicher, dass der Prinzipal über die folgenden Berechtigungen für die Datenbank verfügt:
- Vorhandene Tabelle: TabellenAKTUALISIERUNG und INSERT
- Neue Tabelle: CREATE, UPDATE und INSERT
Hinweis
Wenn möglich, ist die bevorzugte Authentifizierungsmethode die integrierte Microsoft Entra-Authentifizierung (Identitätswechsel).
Einschränkungen
Beim Exportieren von Daten in eine SQL-Datenbank gibt es einige Einschränkungen und Einschränkungen:
Kusto ist ein Clouddienst, sodass die Verbindungszeichenfolge auf eine Datenbank verweisen muss, auf die über die Cloud zugegriffen werden kann. (Insbesondere kann eine Datenbank nicht in eine lokale Datenbank exportiert werden, da sie nicht über die öffentliche Cloud zugänglich ist.)
Kusto unterstützt die integrierte Active Directory-Authentifizierung, wenn der aufrufende Prinzipal ein Microsoft Entra-Prinzipal (
aaduser=
oderaadapp=
) ist. Alternativ unterstützt Kusto auch die Bereitstellung der Anmeldeinformationen für die SQL-Datenbank als Teil der Verbindungszeichenfolge. Andere Authentifizierungsmethoden werden nicht unterstützt. Die Identität, die der SQL-Datenbank angezeigt wird, bezieht sich immer auf den Befehlsaufrufer, nicht auf die Kusto-Dienstidentität selbst.Wenn die Zieltabelle in der SQL-Datenbank vorhanden ist, muss sie mit dem Abfrageergebnisschema übereinstimmen. In einigen Fällen, z. B. azure SQL-Datenbank, bedeutet dies, dass die Tabelle eine Spalte als Identitätsspalte markiert hat.
Das Exportieren großer Datenmengen kann eine lange Zeit dauern. Es wird empfohlen, die SQL-Zieltabelle für die minimale Protokollierung während des Massenimports festzulegen. Siehe SQL Server Datenbank-Engine > ... > Datenbankfeatures > – Massenimport und -export von Daten.
Der Datenexport erfolgt mithilfe von SQL-Massenkopien und bietet keine Transaktionsgarantien für die SQL-Zieldatenbank. Siehe Transaktions- und Massenkopievorgänge.
Der NAME der SQL-Tabelle ist auf einen Namen beschränkt, der aus Buchstaben, Ziffern, Leerzeichen, Unterstrichen (), Punkten (
_
) und Bindestrichen (.
-
) besteht.Die SQL-Verbindungszeichenfolge ist wie folgt eingeschränkt:
Persist Security Info
ist explizit auffalse
,Encrypt
wird auftrue
,Trust Server Certificate
festgelegt und auf .false
Die Primärschlüsseleigenschaft der Spalte kann beim Erstellen einer neuen SQL-Tabelle angegeben werden. Wenn die Spalte vom Typ
string
ist, kann SQL die Erstellung der Tabelle aufgrund anderer Einschränkungen für die Primärschlüsselspalte ablehnen. Die Problemumgehung besteht darin, die Tabelle in SQL vor dem Exportieren der Daten manuell zu erstellen. Diese Einschränkung besteht darin, dass Primärschlüsselspalten in SQL nicht unbegrenzt groß sein können, kusto-Tabellenspalten jedoch keine Größenbeschränkungen deklariert haben.
Microsoft Entra-Integrierte Authentifizierungsdokumentation für die Azure-Datenbank
Beispiele
Asynchroner Export in SQL-Tabelle
Im folgenden Beispiel führt Kusto die Abfrage aus und exportiert dann den ersten Datensatzsatz, der von der Abfrage erstellt wurde, in die MySqlTable
Tabelle in der MyDatabase
-Datenbank im Server-myserver
.
.export async to sql MySqlTable
h@"Server=tcp:myserver.database.windows.net,1433;Authentication=Active Directory Integrated;Initial Catalog=MyDatabase;Connection Timeout=30;"
<| print Id="d3b68d12-cbd3-428b-807f-2c740f561989", Name="YSO4", DateOfBirth=datetime(2017-10-15)
In SQL-Tabelle exportieren, wenn sie nicht vorhanden ist
Im folgenden Beispiel führt Kusto die Abfrage aus und exportiert dann den ersten Datensatzsatz, der von der Abfrage erstellt wurde, in die MySqlTable
Tabelle in der MyDatabase
-Datenbank im Server-myserver
.
Die Zieltabelle wird erstellt, wenn sie nicht in der Zieldatenbank vorhanden ist.
.export async to sql ['dbo.MySqlTable']
h@"Server=tcp:myserver.database.windows.net,1433;Authentication=Active Directory Integrated;Initial Catalog=MyDatabase;Connection Timeout=30;"
with (createifnotexists="true", primarykey="Id")
<| print Message = "Hello World!", Timestamp = now(), Id=12345678