Freigeben über


.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] tosqlsqlTableNamesqlConnectionString [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 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 Wenn createifnotexiststrueist, 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 IDPassword.

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:

  1. 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.)

  2. Kusto unterstützt die integrierte Active Directory-Authentifizierung, wenn der aufrufende Prinzipal ein Microsoft Entra-Prinzipal (aaduser= oder aadapp=) 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.

  3. 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.

  4. 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.

  5. Der Datenexport erfolgt mithilfe von SQL-Massenkopien und bietet keine Transaktionsgarantien für die SQL-Zieldatenbank. Siehe Transaktions- und Massenkopievorgänge.

  6. Der NAME der SQL-Tabelle ist auf einen Namen beschränkt, der aus Buchstaben, Ziffern, Leerzeichen, Unterstrichen (), Punkten (_) und Bindestrichen (.-) besteht.

  7. Die SQL-Verbindungszeichenfolge ist wie folgt eingeschränkt: Persist Security Info ist explizit auf false, Encrypt wird auf true, Trust Server Certificate festgelegt und auf .false

  8. Die Primärschlüsseleigenschaft der Spalte kann beim Erstellen einer neuen SQL-Tabelle angegeben werden. Wenn die Spalte vom Typ stringist, 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