Megosztás a következőn keresztül:


Betöltési leképezések

A következőkre vonatkozik: ✅Microsoft FabricAzure 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 EventNameoszlopba 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==