Adatok exportálása SQL-be
Az adatok SQL-be való exportálásával lekérdezést futtathat, és az eredmények elküldhetők egy SQL-adatbázisban lévő táblába, például a Azure SQL Database szolgáltatás által üzemeltetett SQL-adatbázisba.
Engedélyek
A parancs futtatásához legalább Table Rendszergazda engedéllyel kell rendelkeznie.
Syntax
.export
[async
] to
sql
sqlTableNamesqlConnectionString [with
(
propertyName=
propertyValue [,
...])
] <|
Lekérdezés
További információ a szintaxis konvenciókról.
Paraméterek
Név | Típus | Kötelező | Leírás |
---|---|---|---|
async |
string |
Ha meg van adva, a parancs aszinkron módon fut. | |
SqlTableName | string |
✔️ | Annak az SQL-adatbázistáblának a neve, amelybe be szeretné szúrni az adatokat. Az injektálási támadások elleni védelem érdekében ez a név korlátozott. |
SqlConnectionString | string |
✔️ | Az SQL-végpont és az adatbázis kapcsolati karakterlánc. A sztringnek a ADO.NET kapcsolati karakterlánc formátumot kell követnie. Biztonsági okokból a kapcsolati karakterlánc korlátozva van. |
PropertyName, PropertyValue | string |
A választható tulajdonságok listája. |
Támogatott tulajdonságok
Name | Értékek | Leírás |
---|---|---|
firetriggers |
true vagy false |
Ha true a parancs arra utasítja a célrendszert, hogy aktiválja az SQL-táblában definiált INSERT-eseményindítókat. A mező alapértelmezett értéke: false . További információ: BULK INSERT és System.Data.SqlClient.SqlBulkCopy. |
createifnotexists |
true vagy false |
Ha true a , akkor a cél SQL-tábla akkor jön létre, ha még nem létezik; ebben az esetben meg kell adni a primarykey tulajdonságot az elsődleges kulcs eredményoszlopának jelzéséhez. A mező alapértelmezett értéke: false . |
primarykey |
Ha createifnotexists igen true , ez a tulajdonság az eredményben szereplő oszlop nevét jelzi, amelyet az SQL-tábla elsődleges kulcsaként fog használni, ha ezt a parancsot hozza létre. |
|
persistDetails |
bool |
Azt jelzi, hogy a parancsnak meg kell őriznie az eredményeit (lásd a jelzőt async ). true Alapértelmezés szerint az aszinkron futtatás, de kikapcsolható, ha a hívónak nincs szüksége az eredményekre. false Alapértelmezés szerint szinkron végrehajtásban van, de be lehet kapcsolni. |
token |
string |
A Microsoft Entra hozzáférési jogkivonat, amelyet a Kusto továbbít az SQL-végpontnak hitelesítés céljából. Ha be van állítva, az SQL-kapcsolati karakterlánc nem tartalmazhatnak olyan hitelesítési adatokat, mint a Authentication , User ID vagy Password . |
Hitelesítés és engedélyezés
A hitelesítési módszer a megadott kapcsolati karakterlánc alapul, és az SQL-adatbázis eléréséhez szükséges engedélyek a hitelesítési módszertől függően változnak.
Az adatok SQL-be való exportálásának támogatott hitelesítési módszerei Microsoft Entra integrált (megszemélyesítési) hitelesítés, valamint felhasználónév-/jelszó-hitelesítés. A megszemélyesítés hitelesítéséhez győződjön meg arról, hogy a rendszerbiztonsági tag rendelkezik a következő engedélyekkel az adatbázishoz:
- Meglévő tábla: table UPDATE és INSERT
- Új tábla: CREATE, UPDATE és INSERT
Korlátozások és megkötések
Bizonyos korlátozások és korlátozások vonatkoznak az adatok SQL-adatbázisba való exportálására:
A Kusto egy felhőszolgáltatás, ezért a kapcsolati karakterlánc a felhőből elérhető adatbázisra kell mutatnia. (Különösen nem lehet exportálni egy helyszíni adatbázisba, mert az nem érhető el a nyilvános felhőből.)
A Kusto támogatja az Active Directory integrált hitelesítését, ha a hívónév egy Microsoft Entra egyszerű (
aaduser=
vagyaadapp=
). Másik lehetőségként a Kusto támogatja az SQL-adatbázis hitelesítő adatainak megadását is a kapcsolati karakterlánc részeként. Más hitelesítési módszerek nem támogatottak. Az SQL-adatbázis számára megjelenített identitás mindig a parancshívótól származik, nem magát a Kusto-szolgáltatás identitását.Ha az SQL-adatbázisban található céltábla létezik, annak meg kell egyeznie a lekérdezés eredménysémával. Vegye figyelembe, hogy bizonyos esetekben (például Azure SQL Adatbázis) ez azt jelenti, hogy a tábla egy oszlopot identitásoszlopként jelöl meg.
A nagy mennyiségű adat exportálása hosszú időt vehet igénybe. Javasoljuk, hogy a cél SQL-tábla minimális naplózásra legyen beállítva a tömeges importálás során. Lásd: SQL Server adatbázismotor > ... > Adatbázis-funkciók > – Adatok tömeges importálása és exportálása.
Az adatexportálás tömeges SQL-másolással történik, és nem biztosít tranzakciós garanciát a cél SQL-adatbázisban. Lásd: Tranzakciós és tömeges másolási műveletek.
Az SQL-tábla neve betűkből, számjegyekből, szóközökből, aláhúzásokból (), pontból (
_
.
) és kötőjelekből (-
) álló névre korlátozódik.Az SQL-kapcsolati karakterlánc a következőképpen van korlátozva:
Persist Security Info
explicit módon afalse
,Encrypt
értékretrue
van állítva, ésTrust Server Certificate
a értékrefalse
van állítva.Új SQL-tábla létrehozásakor meg lehet adni az oszlop elsődleges kulcstulajdonságát. Ha az oszlop típusa
string
, akkor előfordulhat, hogy az SQL megtagadja a tábla létrehozását az elsődleges kulcs oszlopának egyéb korlátozásai miatt. A megkerülő megoldás az, hogy manuálisan hozza létre a táblát az SQL-ben az adatok exportálása előtt. Ennek a korlátozásnak az az oka, hogy az SQL elsődleges kulcsoszlopai nem lehetnek korlátlan méretűek, de a Kusto-táblaoszlopok nem rendelkeznek deklarált méretkorlátozásokkal.
Az Azure DB Microsoft Entra integrált hitelesítés dokumentációja
Példák
Ebben a példában a Kusto futtatja a lekérdezést, majd exportálja a lekérdezés által létrehozott első rekordhalmazt a MySqlTable
kiszolgáló myserver
adatbázisának MyDatabase
táblájára.
.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)
Ebben a példában a Kusto futtatja a lekérdezést, majd exportálja a lekérdezés által létrehozott első rekordhalmazt a MySqlTable
kiszolgáló myserver
adatbázisának MyDatabase
táblájára.
Ha a céltábla nem létezik a céladatbázisban, akkor létrejön.
.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
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: