Export dat do SQL
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer
Export dat do SQL umožňuje spustit dotaz a nechat výsledky odeslané do tabulky v databázi SQL, jako je databáze SQL hostovaná službou Azure SQL Database.
Oprávnění
Ke spuštění tohoto příkazu musíte mít alespoň oprávnění správce tabulky.
Syntaxe
.export
[async
] to
sql
sqlTableNamesqlConnectionString [with
(
propertyName=
propertyValue [,
...]] )
<|
dotaz
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Type | Požadováno | Popis |
---|---|---|---|
async |
string |
Pokud je zadaný, příkaz se spustí asynchronně. | |
SqlTableName | string |
✔️ | Název tabulky databáze SQL, do které chcete vložit data. Pro ochranu před útoky prostřednictvím injektáže je tento název omezený. |
SqlConnectionString | string |
✔️ | Připojovací řetězec pro koncový bod a databázi SQL. Řetězec musí odpovídat ADO.NET formátu připojovací řetězec. Z bezpečnostních důvodů je připojovací řetězec omezeno. |
PropertyName, PropertyValue | string |
Seznam volitelných vlastností |
Podporované vlastnosti
Název | Hodnoty | Popis |
---|---|---|
firetriggers |
true nebo false |
Pokud true , dává cílovému systému pokyn, aby aktivoval triggery INSERT definované v tabulce SQL. Výchozí hodnota je false . Další informace naleznete v tématu BULK INSERT a System.Data.SqlClient.SqlBulkCopy. |
createifnotexists |
true nebo false |
Pokud true je cílová tabulka SQL vytvořená, pokud ještě neexistuje; primarykey vlastnost musí být v tomto případě uvedena, aby bylo možné určit výsledný sloupec, který je primárním klíčem. Výchozí hodnota je false . |
primarykey |
Pokud je createifnotexists true , tato vlastnost označuje název sloupce ve výsledku, který se použije jako primární klíč tabulky SQL, pokud je vytvořen tímto příkazem. |
|
persistDetails |
bool |
Označuje, že příkaz by měl zachovat výsledky (viz async příznak). Výchozí nastavení true je v asynchronních spuštěních, ale je možné ho vypnout, pokud volající nevyžaduje výsledky. Výchozí hodnota false je v synchronních spuštěních, ale je možné ji zapnout. |
token |
string |
Přístupový token Microsoft Entra, který Kusto předává koncovému bodu SQL pro ověřování. Při nastavení by připojovací řetězec SQL neměl obsahovat ověřovací informace, jako je Authentication , User ID nebo Password . |
Ověřování a autorizace
Metoda ověřování je založená na zadaném připojovací řetězec a oprávnění potřebná pro přístup k databázi SQL se liší v závislosti na metodě ověřování.
Podporované metody ověřování pro export dat do SQL jsou ověřování Microsoft Entra integrované (zosobnění) a ověřování pomocí uživatelského jména a hesla. Pro ověřování zosobnění se ujistěte, že objekt zabezpečení má v databázi následující oprávnění:
- Existující tabulka: UPDATE a INSERT
- Nová tabulka: CREATE, UPDATE a INSERT
Poznámka:
Pokud je to možné, upřednostňovanou metodou ověřování je integrované ověřování Microsoft Entra (zosobnění).
Limity a omezení
Při exportu dat do databáze SQL existují určitá omezení a omezení:
Kusto je cloudová služba, takže připojovací řetězec musí odkazovat na databázi, která je přístupná z cloudu. (Konkrétně se nedá exportovat do místní databáze, protože není přístupný z veřejného cloudu.)
Kusto podporuje integrované ověřování služby Active Directory, pokud je volajícím instančním objektem instanční objekt (
aaduser=
neboaadapp=
). Kusto také podporuje poskytnutí přihlašovacích údajů pro databázi SQL jako součást připojovací řetězec. Jiné metody ověřování se nepodporují. Identita, která se prezentuje do databáze SQL, vždy vychází z volajícího příkazu, nikoli samotné identity služby Kusto.Pokud cílová tabulka v databázi SQL existuje, musí odpovídat schématu výsledků dotazu. V některých případech, například Azure SQL Database, to znamená, že tabulka má jeden sloupec označený jako sloupec identity.
Export velkých objemů dat může trvat delší dobu. Doporučuje se nastavit cílovou tabulku SQL pro minimální protokolování během hromadného importu. Viz databázový stroj > SQL Serveru ... > Funkce > databáze – Hromadný import a export dat
Export dat se provádí pomocí hromadného kopírování SQL a neposkytuje žádné transakční záruky cílové databáze SQL. Viz Operace transakcí a hromadného kopírování.
Název tabulky SQL je omezen na název skládající se z písmen, číslic, mezer, podtržítka (
_
), tečk (.
) a pomlček (-
).Sql připojovací řetězec je omezena následujícím způsobem:
Persist Security Info
je explicitně nastavena nafalse
,Encrypt
je nastavena natrue
aTrust Server Certificate
je nastavena nafalse
.Vlastnost primárního klíče ve sloupci lze zadat při vytváření nové tabulky SQL. Pokud je sloupec typu
string
, sql může odmítnout vytvořit tabulku kvůli jiným omezením sloupce primárního klíče. Alternativním řešením je ruční vytvoření tabulky v SQL před exportem dat. Toto omezení existuje, protože sloupce primárního klíče v SQL nemohou mít neomezenou velikost, ale sloupce tabulky Kusto nemají deklarovaná omezení velikosti.
Dokumentace k integrovanému ověřování Microsoft Entra ve službě Azure Database
Příklady
Asynchronní export do tabulky SQL
V následujícím příkladu Kusto spustí dotaz a pak exportuje první sadu záznamů vytvořenou dotazem do tabulky MySqlTable
v databázi MyDatabase
na serveru 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)
Export do tabulky SQL, pokud neexistuje
V následujícím příkladu Kusto spustí dotaz a pak exportuje první sadu záznamů vytvořenou dotazem do tabulky MySqlTable
v databázi MyDatabase
na serveru myserver
.
Cílová tabulka se vytvoří, pokud v cílové databázi neexistuje.
.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