.export till SQL
Gäller för: ✅Microsoft Fabric✅Azure Data Explorer
Om du exporterar data till SQL kan du köra en fråga och få resultatet skickat till en tabell i en SQL-databas, till exempel en SQL-databas som hanteras av Azure SQL Database-tjänsten.
Behörigheter
Du måste ha minst tabelladministratör behörigheter för att köra det här kommandot.
Syntax
.export
[async
] to
sql
sqlTableNamesqlConnectionString [with
(
propertyName=
propertyValue [,
...])
] <|
fråga
Läs mer om syntaxkonventioner.
Parametrar
Namn | Typ | Krävs | Beskrivning |
---|---|---|---|
async |
string |
Om det anges körs kommandot asynkront. | |
SqlTableName | string |
✔️ | Namnet på sql-databastabellen som data ska infogas i. För att skydda mot inmatningsattacker är det här namnet begränsat. |
SqlConnectionString | string |
✔️ | Anslutningssträngen för SQL-slutpunkten och databasen. Strängen måste följa ADO.NET anslutningssträngformat. Av säkerhetsskäl är anslutningssträngen begränsad. |
PropertyName, PropertyValue | string |
En lista över valfria egenskaper. |
Egenskaper som stöds
Namn | Värden | Beskrivning |
---|---|---|
firetriggers |
true eller false |
Om true instruerar du målsystemet att utlösa INSERT-utlösare som definierats i SQL-tabellen. Standardvärdet är false . Mer information finns i BULK INSERT- och System.Data.SqlClient.SqlBulkCopy. |
createifnotexists |
true eller false |
Om true skapas SQL-måltabellen om den inte redan finns. egenskapen primarykey måste anges i det här fallet för att ange den resultatkolumn som är primärnyckeln. Standardvärdet är false . |
primarykey |
Om createifnotexists är true anger den här egenskapen namnet på kolumnen i resultatet som används som SQL-tabellens primära nyckel om den skapas av det här kommandot. |
|
persistDetails |
bool |
Anger att kommandot ska spara sina resultat (se async flagga). Standardvärdet är true i asynkrona körningar, men kan inaktiveras om anroparen inte kräver resultatet. Standardvärdet är att false i synkrona körningar, men kan aktiveras. |
token |
string |
Microsoft Entra-åtkomsttoken som Kusto vidarebefordrar till SQL-slutpunkten för autentisering. När den är inställd ska SQL-anslutningssträngen inte innehålla autentiseringsinformation som Authentication , User ID eller Password . |
Autentisering och auktorisering
Autentiseringsmetoden baseras på den angivna anslutningssträngen och de behörigheter som krävs för att komma åt SQL-databasen varierar beroende på autentiseringsmetoden.
De autentiseringsmetoder som stöds för att exportera data till SQL är Microsoft Entra-integrerad autentisering (personifiering) och användarnamn/lösenordsautentisering. För personifieringsautentisering kontrollerar du att huvudkontot har följande behörigheter för databasen:
- Befintlig tabell: tabellUPPDATERING och INSERT
- Ny tabell: CREATE, UPDATE och INSERT
Not
Där det är möjligt är den föredragna autentiseringsmetoden Microsoft Entra-integrerad (personifiering) autentisering.
Begränsningar och begränsningar
Det finns vissa begränsningar när du exporterar data till en SQL-databas:
Kusto är en molntjänst, så anslutningssträngen måste peka på en databas som är tillgänglig från molnet. (I synnerhet kan man inte exportera till en lokal databas eftersom den inte är tillgänglig från det offentliga molnet.)
Kusto stöder Active Directory-integrerad autentisering när det anropande huvudnamnet är ett Microsoft Entra-huvudnamn (
aaduser=
elleraadapp=
). Kusto har också stöd för att ange autentiseringsuppgifterna för SQL-databasen som en del av anslutningssträngen. Andra autentiseringsmetoder stöds inte. Identiteten som presenteras för SQL-databasen kommer alltid från kommandoanroparen, inte själva Kusto-tjänstidentiteten.Om måltabellen i SQL-databasen finns måste den matcha frågeresultatschemat. I vissa fall, till exempel Azure SQL Database, innebär det att tabellen har en kolumn markerad som en identitetskolumn.
Det kan ta lång tid att exportera stora mängder data. Vi rekommenderar att SQL-måltabellen anges för minimal loggning under massimport. Se SQL Server Database Engine > ... > Database Features > Massimport och export av data.
Dataexport utförs med sql-masskopiering och ger inga transaktionsgarantier för SQL-måldatabasen. Se transaktions- och masskopieringsåtgärder.
SQL-tabellnamnet är begränsat till ett namn som består av bokstäver, siffror, blanksteg, understreck (
_
), punkter (.
) och bindestreck (-
).SQL-anslutningssträngen är begränsad på följande sätt:
Persist Security Info
anges uttryckligen tillfalse
,Encrypt
är inställd påtrue
ochTrust Server Certificate
är inställd påfalse
.Primärnyckelegenskapen i kolumnen kan anges när du skapar en ny SQL-tabell. Om kolumnen är av typen
string
kan SQL vägra att skapa tabellen på grund av andra begränsningar i primärnyckelkolumnen. Lösningen är att manuellt skapa tabellen i SQL innan du exporterar data. Den här begränsningen finns eftersom primärnyckelkolumner i SQL inte kan vara av obegränsad storlek, men Kusto-tabellkolumner har inte deklarerat storleksbegränsningar.
Dokumentation om Microsoft Entra-integrerad autentisering i Azure Database
Exempel
Asynkron export till SQL-tabell
I följande exempel kör Kusto frågan och exporterar sedan den första postuppsättningen som skapas av frågan till tabellen MySqlTable
i MyDatabase
-databasen i 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)
Exportera till SQL-tabellen om den inte finns
I följande exempel kör Kusto frågan och exporterar sedan den första postuppsättningen som skapas av frågan till tabellen MySqlTable
i MyDatabase
-databasen i server myserver
.
Måltabellen skapas om den inte finns i måldatabasen.
.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