Betöltés a tárolóból

A .ingest into parancs úgy betölti az adatokat egy táblába, hogy "lekérte" az adatokat egy vagy több felhőbeli tárolófájlból. A parancs például lekérhet 1000 CSV-formátumú blobot Azure Blob Storage, elemezheti és egyetlen céltáblába betöltheti őket. Az adatok hozzá lesznek fűzve a táblához a meglévő rekordok befolyásolása és a tábla sémájának módosítása nélkül.

Megjegyzés

Ez a betöltési módszer feltárásra és prototípus-mentesítésre szolgál. Éles vagy nagy volumenű forgatókönyvekben ne használja.

Engedélyek

A parancs futtatásához legalább Table Ingestor-engedélyekkel kell rendelkeznie.

Syntax

.ingest [async] intotableTableNameSourceDataLocator [with(IngestionPropertyName=IngestionPropertyValue [, ...] )]

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 azonnal visszatér, és a háttérben folytatja a betöltést. A parancs eredményei közé tartozik egy OperationId érték, amely a paranccsal a betöltési befejezés állapotának és eredményeinek lekéréséhez használható .show operation .
TableName string ✔️ Annak a táblának a neve, amelybe az adatokat betölti. A tábla neve mindig az adatbázishoz viszonyítva van a környezetben. Ha nincs megadva sémaleképezési objektum, a rendszer az adatbázis sémáját használja a környezetben.
SourceDataLocator string ✔️ A tárkapcsolati sztringek egyetlen vagy vesszővel tagolt listája. Egyetlen kapcsolati karakterlánc egy tárfiók által üzemeltetett fájlra kell hivatkoznia. Több fájl betöltése több kapcsolati sztring megadásával vagy egy külső táblalekérdezéséből való betöltéssel végezhető el.

Megjegyzés

A SourceDataPointerhezobfuscated sztringkonstansok használatát javasoljuk. A szolgáltatás belső nyomkövetésekben és hibaüzenetekben törli a hitelesítő adatokat.

Betöltési tulajdonságok

Fontos

Az alábbi táblázat felsorolja az Azure Data Explorer által támogatott tulajdonságokat, ismerteti őket, és példákat tartalmaz:

Tulajdonság Leírás Példa
ingestionMapping Sztringérték, amely azt jelzi, hogyan képezheti le az adatokat a forrásfájlból a tábla tényleges oszlopaiba. Adja meg az format értéket a megfelelő leképezési típussal. Lásd: adatleképezések. with (format="json", ingestionMapping = "[{\"column\":\"rownumber\", \"Properties\":{\"Path\":\"$.RowNumber\"}}, {\"column\":\"rowguid\", \"Properties\":{\"Path\":\"$.RowGuid\"}}]")
(elavult: avroMapping, csvMapping, jsonMapping)
ingestionMappingReference Sztringérték, amely azt jelzi, hogyan képezheti le az adatokat a forrásfájlból a tábla tényleges oszlopaiba egy elnevezett leképezési szabályzatobjektum használatával. Adja meg az format értéket a megfelelő leképezési típussal. Lásd: adatleképezések. with (format="csv", ingestionMappingReference = "Mapping1")
(elavult: avroMappingReference, csvMappingReference, jsonMappingReference)
creationTime A dátum/idő érték (ISO8601 sztringként formázva), amelyet a betöltött adat kiterjedésének létrehozásakor használhat. Ha nincs meghatározva, a rendszer az aktuális értéket (now()) használja. Az alapértelmezett érték felülírása hasznos a régebbi adatok betöltésekor, hogy a megőrzési szabályzat megfelelően legyen alkalmazva. Ha meg van adva, győződjön meg arról, hogy a Lookback céltábla hatályos Extents merge szabályzatának tulajdonsága igazodik a megadott értékhez. with (creationTime="2017-02-13")
extend_schema Egy logikai érték, amely, ha meg van adva, arra utasítja a parancsot, hogy terjessze ki a tábla sémáját (alapértelmezés szerint a értékre false). Ez a beállítás csak a és .set-or-append parancsokra .append vonatkozik. Az egyetlen engedélyezett sémabővítmények végén további oszlopok vannak hozzáadva a táblához. Ha az eredeti táblaséma , (a:string, b:int)akkor érvényes sémabővítmény lenne (a:string, b:int, c:datetime, d:string), de (a:string, c:datetime) nem lenne érvényes
folder A lekérdezési parancsok betöltéséhez a táblához rendelendő mappa. Ha a tábla már létezik, ez a tulajdonság felülbírálja a tábla mappáját. with (folder="Tables/Temporary")
format Az adatformátum (lásd a támogatott adatformátumokat). with (format="csv")
ingestIfNotExists Olyan sztringérték, amely ha meg van adva, megakadályozza a betöltés sikerességét, ha a táblában már vannak azonos értékű címkével ingest-by: ellátott adatok. Ez biztosítja az idempotens adatbetöltést. További információ: betöltési címkék. A tulajdonságok azt jelzik with (ingestIfNotExists='["Part0001"]', tags='["ingest-by:Part0001"]') , hogy ha a címkével ingest-by:Part0001 rendelkező adatok már léteznek, akkor ne fejezze be az aktuális betöltési elemet. Ha még nem létezik, ennek az új betöltési műveletnek rendelkeznie kell ezzel a címkekészlettel (abban az esetben, ha egy jövőbeli betöltési kísérlet újra betölti ugyanazokat az adatokat.)
ignoreFirstRecord Egy logikai érték, amely ha a értékre truevan állítva, azt jelzi, hogy a betöltésnek figyelmen kívül kell hagynia minden fájl első rekordját. Ez a tulajdonság akkor hasznos, ha a fájl CSVelső rekordja az oszlopnév. Alapértelmezés szerint a false rendszer feltételezi. with (ignoreFirstRecord=false)
policy_ingestiontime Egy logikai érték, amely, ha meg van adva, azt írja le, hogy engedélyezi-e a betöltési időszabályzatot egy olyan táblán, amelyet ez a parancs hoz létre. A mező alapértelmezett értéke: true. with (policy_ingestiontime=false)
recreate_schema Egy logikai érték, amely, ha meg van adva, leírja, hogy a parancs újra létrehozza-e a tábla sémáját. Ez a tulajdonság csak a .set-or-replace parancsra vonatkozik. Ez a tulajdonság elsőbbséget élvez a extend_schema tulajdonságnál, ha mindkettő be van állítva. with (recreate_schema=true)
tags A betöltött adatokhoz társítandó címkék listája JSON-sztringként formázva with (tags="['Tag1', 'Tag2']")
validationPolicy Egy JSON-sztring, amely azt jelzi, hogy mely érvényesítéseket kell futtatni a CSV-formátummal ábrázolt adatok betöltése során. A különböző lehetőségek magyarázatát lásd: Adatbetöltés . with (validationPolicy='{"ValidationOptions":1, "ValidationImplications":1}') (ez valójában az alapértelmezett szabályzat)
zipPattern Ezt a tulajdonságot akkor használja, ha zip-archívummal rendelkező tárolóból betölt adatokat. Ez egy sztringérték, amely azt a reguláris kifejezést jelzi, amelyet a ZIP-archívumban a betöltendő fájlok kiválasztásakor kell használni. A rendszer figyelmen kívül hagyja az archívumban lévő összes többi fájlt. with (zipPattern="*.csv")

Hitelesítés és engedélyezés

Minden tároló kapcsolati karakterlánc jelzi a tárhoz való hozzáféréshez használni kívánt engedélyezési módszert. Az engedélyezési módszertől függően előfordulhat, hogy a rendszerbiztonsági tagnak engedélyt kell adni a külső tárolóra a betöltés végrehajtásához.

Az alábbi táblázat a támogatott hitelesítési módszereket és az adatok külső tárolóból való betöltéséhez szükséges engedélyeket sorolja fel.

Hitelesítési módszer Azure Blob Storage/Data Lake Storage Gen2 Data Lake Storage Gen1
Megszemélyesítés Storage-blobadatok olvasója Olvasó
Közös hozzáférésű (SAS) jogkivonat Lista + Olvasás Ez a hitelesítési módszer az 1. generációs verzióban nem támogatott.
Microsoft Entra hozzáférési jogkivonat
Tárfiók hozzáférési kulcsa Ez a hitelesítési módszer az 1. generációs verzióban nem támogatott.
Kezelt identitás Storage-blobadatok olvasója Olvasó

Válaszok

A parancs eredménye egy tábla, amely annyi rekordot tartalmaz, amennyit a parancs által létrehozott adatszegélyek ("extents") hoznak létre. Ha nem hoztak létre adat szegmenseket, a rendszer egyetlen rekordot ad vissza üres (nulla értékű) mértékazonosítóval.

Név Típus Description
ExtentId guid A parancs által létrehozott adats szegmens egyedi azonosítója.
Elem betöltődve string Egy vagy több, ehhez a rekordhoz kapcsolódó tárfájl.
Időtartam timespan Mennyi ideig tartott a betöltés végrehajtása.
HasErrors bool Azt jelzi, hogy ez a rekord betöltési hibát jelez-e, vagy sem.
Műveletazonosító guid A műveletet jelképező egyedi azonosító. A paranccsal használható .show operation .

Megjegyzés

Ez a parancs nem módosítja a betöltés alatt álló tábla sémáját. Ha szükséges, az adatokat a rendszer a betöltés során "kényszeríti" ebbe a sémába, nem fordítva (a felesleges oszlopokat figyelmen kívül hagyja, a hiányzó oszlopokat pedig null értékként kezeli a rendszer).

Példák

Azure Blob Storage közös hozzáférésű jogosultságkóddal

Az alábbi példa arra utasítja a fürtöt, hogy olvasson be két blobot Azure Blob Storage CSV-fájlként, és betöltse a tartalmát a táblábaT. A ... az Azure Storage közös hozzáférésű jogosultságkódját (SAS) jelöli, amely olvasási hozzáférést biztosít az egyes blobokhoz. Vegye figyelembe az obfuscated sztringek (a h sztringértékek előtti) használatát is, hogy az SAS soha ne legyen rögzítve.

.ingest into table T (
    h'https://contoso.blob.core.windows.net/container/file1.csv?...',
    h'https://contoso.blob.core.windows.net/container/file2.csv?...'
)

Azure Blob Storage felügyelt identitással

Az alábbi példa bemutatja, hogyan olvashatja be a CSV-fájlokat Azure Blob Storage, és hogyan betöltheti annak tartalmát a táblába T felügyelt identitásalapú hitelesítéssel. A felügyelt identitás-hitelesítési módszerről további információt a Felügyelt identitás hitelesítésének áttekintése című témakörben talál.

.ingest into table T ('https://StorageAccount.blob.core.windows.net/Container/file.csv;managed_identity=802bada6-4d21-44b2-9d15-e66b29e4d63e')

Azure Data Lake Storage Gen 2

Az alábbi példa a 2. generációs Azure Data Lake Storage (ADLSv2) adatok betöltésére használható. Az itt használt hitelesítő adatok (...) a tárfiók hitelesítő adatai (megosztott kulcs), és csak a kapcsolati karakterlánc titkos részére használunk sztring-elrejtést.

.ingest into table T (
  'abfss://myfilesystem@contoso.dfs.core.windows.net/path/to/file1.csv;...'
)

Azure Data Lake Storage

Az alábbi példa egyetlen fájlt betölt a Azure Data Lake Storage (ADLS) fájlból. A felhasználó hitelesítő adataival fér hozzá az ADLS-hez (így nem kell titkos kódként kezelni a tárolási URI-t). Azt is bemutatja, hogyan adhatja meg a betöltési tulajdonságokat.

.ingest into table T ('adl://contoso.azuredatalakestore.net/Path/To/File/file1.ext;impersonate')
  with (format='csv')

Amazon S3 hozzáférési kulccsal

Az alábbi példa egyetlen fájlt használ az Amazon S3-ból egy hozzáférési kulcs azonosítójával és titkos hozzáférési kulcsával.

.ingest into table T ('https://bucketname.s3.us-east-1.amazonaws.com/path/to/file.csv;AwsCredentials=AKIAIOSFODNN7EXAMPLE,wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY')
  with (format='csv')

Amazon S3 előre aláírt URL-címmel

Az alábbi példa egyetlen fájlt használ az Amazon S3-ból egy előre aláírt URL-cím használatával.

.ingest into table T ('https://bucketname.s3.us-east-1.amazonaws.com/file.csv?<<pre signed string>>')
  with (format='csv')