Betöltési leképezések
A következőkre vonatkozik: ✅Microsoft Fabric✅Azure Data Explorer
A betöltési leképezések a betöltés során a bejövő adatok táblákon belüli oszlopaihoz való leképezésére szolgálnak.
Az Adatkezelő különböző típusú leképezéseket támogat, sororientált (CSV, JSON, AVRO és W3CLOGFILE) és oszloporientált (Parquet és ORC).
A betöltési leképezések definiálhatók a betöltési parancsban, vagy előre létrehozott, és ingestionMappingReference
paraméterekkel hivatkozhatnak a betöltési parancsra. A betöltés leképezés megadása nélkül lehetséges. További információ: identitásleképezési.
A leképezési lista minden eleme három mezőből épül fel:
Ingatlan | Szükséges | Leírás |
---|---|---|
Oszlop | ✔️ | Céloszlop neve a táblában. |
Adattípus | Adattípus, amellyel létre szeretné hozni a megfeleltetett oszlopot, ha még nem létezik a táblában. | |
Kellékek | Az egyes leképezésekre jellemző tulajdonságokat tartalmazó tulajdonságcsomag az egyes leképezési típuslapokban leírtak szerint. |
Fontos
Várólista-betöltéshez:
- Ha a leképezésben hivatkozott tábla nem létezik az adatbázisban, automatikusan létrejön, mivel az összes oszlophoz érvényes adattípusok vannak megadva.
- Ha a megfeleltetésben hivatkozott oszlop nem szerepel a táblában, a rendszer automatikusan hozzáadja a táblához az utolsó oszlopként az adott oszlop első betöltésekor, mivel az oszlophoz érvényes adattípus van megadva. Ha új oszlopokat szeretne hozzáadni egy leképezéshez, használja a .alter betöltési leképezési parancsot.
- adatok kötegelésebetöltési tulajdonságok használatával történik. Minél több különböző betöltési leképezési tulajdonságot használ, például különböző ConstValue értékeket, annál töredezettebbé válik a betöltés, ami teljesítménycsökkenéshez vezethet.
Támogatott leképezési típusok
Az alábbi táblázat egy adott formátumú külső adatok betöltéséhez vagy lekérdezéséhez használandó leképezési típusokat határozza meg.
Adatformátum | Leképezés típusa |
---|---|
CSV | CSV-leképezési |
TSV | CSV-leképezési |
TSVe | CSV-leképezési |
PSV | CSV-leképezési |
SCSV | CSV-leképezési |
SOHsv | CSV-leképezési |
TXT | CSV-leképezési |
NYERS | CSV-leképezési |
JSON | JSON-leképezési |
AVRO | AVRO-leképezési |
APACHEAVRO | AVRO-leképezési |
Parketta | Parquet Mapping |
ORK | ORC-leképezési |
W3CLOGFILE | W3CLOGFILE leképezési |
Példák a betöltési leképezésre
Az alábbi példák a RawEvents
táblát használják a következő sémával:
.create table RawEvents (timestamp: datetime, deviceId: guid, messageId: guid, temperature: decimal, humidity: decimal)
Egyszerű leképezés
Az alábbi példa betöltést mutat be, ahol a leképezés a betöltési parancsban van definiálva. A parancs betölt egy JSON-fájlt egy URL-címről a RawEvents
táblába. A leképezés megadja a JSON-fájl egyes mezőinek elérési útját.
.ingest into table RawEvents ('https://kustosamplefiles.blob.core.windows.net/jsonsamplefiles/simple.json')
with (
format = "json",
ingestionMapping =
```
[
{"column":"timestamp","Properties":{"path":"$.timestamp"}},
{"column":"deviceId","Properties":{"path":"$.deviceId"}},
{"column":"messageId","Properties":{"path":"$.messageId"}},
{"column":"temperature","Properties":{"path":"$.temperature"}},
{"column":"humidity","Properties":{"path":"$.humidity"}}
]
```
)
Leképezés ingestionMappingReference
Ha ugyanazt a JSON-fájlt előre létrehozott leképezéssel szeretné megfeleltetni, hozza létre a RawEventMapping
betöltési leképezési hivatkozást a következő paranccsal:
.create table RawEvents ingestion json mapping 'RawEventMapping'
```
[
{"column":"timestamp","Properties":{"path":"$.timestamp"}},
{"column":"deviceId","Properties":{"path":"$.deviceId"}},
{"column":"messageId","Properties":{"path":"$.messageId"}},
{"column":"temperature","Properties":{"path":"$.temperature"}},
{"column":"humidity","Properties":{"path":"$.humidity"}}
]
```
A JSON-fájl betöltése a RawEventMapping
betöltési leképezési hivatkozással a következő paranccsal:
.ingest into table RawEvents ('https://kustosamplefiles.blob.core.windows.net/jsonsamplefiles/simple.json')
with (
format="json",
ingestionMappingReference="RawEventMapping"
)
Identitásleképezés
A betöltés ingestionMapping
vagy ingestionMappingReference
tulajdonságok megadása nélkül lehetséges. Az adatok leképezése a tábla sémájából származtatott identitásadatok leképezésével történik. A táblaséma változatlan marad.
format
tulajdonságot kell megadni. Lásd betöltési formátumokat.
Formátum típusa | Formátum | Leképezési logika |
---|---|---|
Táblázatos adatformátumok az oszlopok meghatározott sorrendjével, például elválasztójellel tagolt vagy egysoros formátumokkal. | CSV, TSV, TSVe, PSV, SCSV, Txt, SOHsv, Raw | Az összes táblaoszlop a megfelelő sorrendben van leképezve az adatoszlopra, hogy azok megjelenjenek az adatforrásban. Az oszlop adattípusa a táblasémából származik. |
Névvel ellátott oszlopokat vagy rekordokat tartalmazó formázások nevesített mezőkkel. | JSON, Parquet, Avro, ApacheAvro, Orc, W3CLOGFILE | Minden táblaoszlop azonos nevű (kis- és nagybetűket megkülönböztető) adatoszlopra vagy rekordmezőre van leképezve. Az oszlop adattípusa a táblasémából származik. |
Figyelmeztetés
A táblaséma és az adatok struktúrája közötti eltérések, például oszlop- vagy mezőadattípusok, oszlop- vagy mezőnevek, illetve azok száma üres vagy helytelen adatbetöltést eredményezhet.
Leképezési átalakítások
Egyes adatformátum-leképezések (Parquet, JSON és AVRO) egyszerű és hasznos betöltési idejű átalakításokat támogatnak. Ha a forgatókönyv betöltésekor összetettebb feldolgozásra van szükség, használja Frissítési szabályzat, amely lehetővé teszi a KQL-kifejezéssel történő egyszerűsített feldolgozás definiálását.
Útvonalfüggő átalakítás | Leírás | Feltételek |
---|---|---|
PropertyBagArrayToDictionary | Átalakítja a JSON tulajdonságtömböt, például {events:[{"n1":"v1"},{"n2":"v2"}]} szótárba, és szerializálja azt érvényes JSON-dokumentummá, például {"n1":"v1","n2":"v2"} . |
Elérhető JSON , Parquet , AVRO és ORC leképezési típusokhoz. |
SourceLocation | Az adatokat tartalmazó tárolási összetevő neve, írja be a sztringet (például a blob "BaseUri" mezőjét). | Elérhető CSV , JSON , Parquet , AVRO , ORC és W3CLOGFILE leképezési típusokhoz. |
SourceLineNumber | Eltolás a tárolási összetevőhöz képest, írja be a hosszú típust (1-től kezdve és az új rekordonkénti növekményig). | Elérhető CSV , JSON , Parquet , AVRO , ORC és W3CLOGFILE leképezési típusokhoz. |
DateTimeFromUnixSeconds | A unix-time (1970-01-01 óta másodperc) értéket utc dátum/idő sztringgé alakítja. | Elérhető CSV , JSON , Parquet , AVRO és ORC leképezési típusokhoz. |
DateTimeFromUnixMilliseconds | A unix-time értéket (ezredmásodperc 1970-01-01 óta) utc dátum/idő sztringgé alakítja. | Elérhető CSV , JSON , Parquet , AVRO és ORC leképezési típusokhoz. |
DateTimeFromUnixMicroseconds | A unix-time (1970-01-01 óta mikroszekundum) értéket utc dátum/idő sztringgé alakítja. | Elérhető CSV , JSON , Parquet , AVRO és ORC leképezési típusokhoz. |
DateTimeFromUnixNanoseconds | A unix-time (nanoszekundumok 1970-01-01 óta) értéket utc datetime sztringgé alakítja. | Elérhető CSV , JSON , Parquet , AVRO és ORC leképezési típusokhoz. |
DropMappedFields | A JSON-dokumentumban lévő objektumot egy oszlophoz rendeli, és eltávolítja a más oszlopleképezések által már hivatkozott beágyazott mezőket. | Elérhető JSON , Parquet , AVRO és ORC leképezési típusokhoz. |
BytesAsBase64 | Az adatokat bájttömbként kezeli, és alap64 kódolású sztringgé alakítja át. | Elérhető AVRO leképezési típushoz.
ApacheAvro formátum esetében a megfeleltetett adatmező sématípusának bytes vagy fixed Avro típusúnak kell lennie.
Avro formátum esetén a mezőnek olyan tömbnek kell lennie, amely a [0–255] tartomány bájtértékeit tartalmazza.
null akkor van betöltve, ha az adatok nem egy érvényes bájttömböt jelölnek. |
Leképezési átalakítási példák
DropMappedFields
átalakítás:
Tekintettel a következő JSON-tartalomra:
{
"Time": "2012-01-15T10:45",
"Props": {
"EventName": "CustomEvent",
"Revenue": 0.456
}
}
A következő adatleképezés a teljes Props
objektumot dinamikus Props
, a már megfeleltetett oszlopok kizárása mellett (Props.EventName
már EventName
oszlopba van leképezve, ezért ki van zárva).
[
{ "Column": "Time", "Properties": { "Path": "$.Time" } },
{ "Column": "EventName", "Properties": { "Path": "$.Props.EventName" } },
{ "Column": "Props", "Properties": { "Path": "$.Props", "Transform":"DropMappedFields" } },
]
A betöltött adatok a következőképpen néznek ki:
Idő | EventName | Kellékek |
---|---|---|
2012-01-15T10:45 |
CustomEvent |
{"Revenue": 0.456} |
BytesAsBase64
átalakítás
Tekintettel a következő AVRO-fájl tartalmára:
{
"Time": "2012-01-15T10:45",
"Props": {
"id": [227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52]
}
}
Az alábbi adatleképezés kétszer leképezi az azonosító oszlopot átalakítással és anélkül.
[
{ "Column": "ID", "Properties": { "Path": "$.props.id" } },
{ "Column": "Base64EncodedId", "Properties": { "Path": "$.props.id", "Transform":"BytesAsBase64" } },
]
A betöltött adatok a következőképpen néznek ki:
AZONOSÍTÓ | Base64EncodedId |
---|---|
[227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52] |
44MiXBxbQUiGigmFMy1oNA== |