Delen via


Opnametoewijzingen

Van toepassing op: ✅Microsoft FabricAzure Data Explorer-

Opnametoewijzingen worden gebruikt tijdens opname om binnenkomende gegevens toe te wijzen aan kolommen in tabellen.

Data Explorer ondersteunt verschillende typen toewijzingen, zowel rijgeoriënteerd (CSV, JSON, AVRO en W3CLOGFILE) als kolomgeoriënteerd (Parquet en ORC).

Opnametoewijzingen kunnen worden gedefinieerd in de opnameopdracht of kunnen worden vooraf gemaakte en waarnaar wordt verwezen vanuit de opnameopdracht met behulp van ingestionMappingReference parameters. Opname is mogelijk zonder een toewijzing op te geven. Zie identiteitstoewijzingvoor meer informatie.

Elk element in de toewijzingslijst is samengesteld uit drie velden:

Eigenschap Vereist Beschrijving
Kolom ✔️ Naam van doelkolom in de tabel.
Datatype Gegevenstype waarmee de toegewezen kolom moet worden gemaakt als deze nog niet bestaat in de tabel.
Eigenschappen Eigenschappentas met eigenschappen die specifiek zijn voor elke toewijzing, zoals beschreven op elke pagina met specifieke toewijzingstypen.

Belangrijk

Voor opname in de wachtrij:

  • Als de tabel waarnaar wordt verwezen in de toewijzing niet bestaat in de database, wordt deze automatisch gemaakt, omdat geldige gegevenstypen voor alle kolommen worden opgegeven.
  • Als een kolom waarnaar in de toewijzing wordt verwezen niet in de tabel bestaat, wordt deze automatisch toegevoegd aan de tabel als de laatste kolom wanneer de eerste keer dat gegevens voor die kolom worden opgenomen, op basis van een geldig gegevenstype voor de kolom. Als u nieuwe kolommen wilt toevoegen aan een toewijzing, gebruikt u de opdracht .alter ingestion mapping.
  • Gegevens worden in batches verwerkt met behulp van opname-eigenschappen. Hoe meer afzonderlijke opnametoewijzingseigenschappen worden gebruikt, zoals verschillende ConstValue-waarden, hoe gefragmenteerder de opname wordt, wat kan leiden tot prestatievermindering.

Ondersteunde toewijzingstypen

In de volgende tabel worden toewijzingstypen gedefinieerd die moeten worden gebruikt bij het opnemen of opvragen van externe gegevens van een specifieke indeling.

Gegevensindeling Toewijzingstype
CSV CSV-toewijzing
TSV CSV-toewijzing
TSVe CSV-toewijzing
PSV CSV-toewijzing
SCSV CSV-toewijzing
SOHsv CSV-toewijzing
TXT CSV-toewijzing
RAUW CSV-toewijzing
JSON JSON-toewijzing
AVRO AVRO-toewijzing
APACHEAVRO AVRO-toewijzing
Parket Parquet-toewijzing
ORK ORC-toewijzing
W3CLOGFILE W3CLOGFILE toewijzen

Voorbeelden van opnametoewijzing

In de volgende voorbeelden wordt de RawEvents tabel gebruikt met het volgende schema:

.create table RawEvents (timestamp: datetime, deviceId: guid, messageId: guid, temperature: decimal, humidity: decimal) 

Eenvoudige toewijzing

In het volgende voorbeeld ziet u de opname waarbij de toewijzing is gedefinieerd in de opnameopdracht. Met de opdracht wordt een JSON-bestand uit een URL opgenomen in de RawEvents tabel. De toewijzing geeft het pad op naar elk veld in het JSON-bestand.

.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"}}
            ]
            ```
          )

Toewijzing met ingestionMappingReference

Als u hetzelfde JSON-bestand wilt toewijzen met behulp van een vooraf gemaakte toewijzing, maakt u de verwijzing RawEventMapping opnametoewijzing met de volgende opdracht:

.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"}}
  ]
  ```

Opname van het JSON-bestand met behulp van de RawEventMapping verwijzing naar opnametoewijzing met de volgende opdracht:

.ingest into table RawEvents ('https://kustosamplefiles.blob.core.windows.net/jsonsamplefiles/simple.json') 
  with (
          format="json",
          ingestionMappingReference="RawEventMapping"
        )

Identiteitstoewijzing

Opname is mogelijk zonder ingestionMapping of ingestionMappingReference eigenschappen op te geven. De gegevens worden toegewezen met behulp van een identiteitsgegevenstoewijzing die is afgeleid van het schema van de tabel. Het tabelschema blijft hetzelfde. format eigenschap moet worden opgegeven. Zie opnameindelingen.

Indelingstype Formatteren Toewijzingslogica
Gegevensindelingen in tabelvorm met gedefinieerde volgorde van kolommen, zoals gescheiden scheidingstekens of indelingen met één regel. CSV, TSV, TSVe, PSV, SCSV, Txt, SOHsv, Raw Alle tabelkolommen worden in hun respectieve volgorde toegewezen aan gegevenskolommen in de volgorde waarin ze worden weergegeven in de gegevensbron. Het gegevenstype Kolom wordt uit het tabelschema gehaald.
Indelingen met benoemde kolommen of records met benoemde velden. JSON, Parquet, Avro, ApacheAvro, Orc, W3CLOGFILE Alle tabelkolommen worden toegewezen aan gegevenskolommen of recordvelden met dezelfde naam (hoofdlettergevoelig). Het gegevenstype Kolom wordt uit het tabelschema gehaald.

Waarschuwing

Eventuele verschillen tussen het tabelschema en de structuur van gegevens, zoals kolom- of veldgegevenstypen, kolom- of veldnamen of hun nummer, kunnen leiden tot lege of onjuiste gegevensopname.

Toewijzingstransformaties

Sommige toewijzingen van gegevensindelingen (Parquet, JSON en AVRO) ondersteunen eenvoudige en nuttige opnametijdtransformaties. Wanneer voor het scenario complexere verwerking tijdens opnametijd is vereist, gebruikt u Update-beleid, waarmee u lichtgewicht verwerking kunt definiëren met behulp van KQL-expressie.

Padafhankelijke transformatie Beschrijving Voorwaarden
PropertyBagArrayToDictionary Transformeert de JSON-matrix met eigenschappen, zoals {events:[{"n1":"v1"},{"n2":"v2"}]}, naar woordenlijst en serialiseert deze naar een geldig JSON-document, zoals {"n1":"v1","n2":"v2"}. Beschikbaar voor JSON, Parquet, AVROen ORC toewijzingstypen.
SourceLocation Naam van het opslagartefact dat de gegevens heeft opgegeven, typt u een tekenreeks (bijvoorbeeld het veld 'BaseUri' van de blob). Beschikbaar voor CSV, JSON, Parquet, AVRO, ORCen W3CLOGFILE toewijzingstypen.
SourceLineNumber Verschuiving ten opzichte van dat opslagartefact, typ lang (beginnend met '1' en incrementeren per nieuwe record). Beschikbaar voor CSV, JSON, Parquet, AVRO, ORCen W3CLOGFILE toewijzingstypen.
DateTimeFromUnixSeconds Converteert getal dat unix-tijd vertegenwoordigt (seconden sinds 1970-01-01) naar UTC-datum/tijdtekenreeks. Beschikbaar voor CSV, JSON, Parquet, AVROen ORC toewijzingstypen.
DateTimeFromUnixMilliseconden Converteert getal dat unix-tijd vertegenwoordigt (milliseconden sinds 1970-01-01) naar utc-datum/tijdtekenreeks. Beschikbaar voor CSV, JSON, Parquet, AVROen ORC toewijzingstypen.
DateTimeFromUnixMicroseconds Converteert getal dat unix-tijd (microseconden sinds 1970-01-01) vertegenwoordigt naar UTC-datum/tijdtekenreeks. Beschikbaar voor CSV, JSON, Parquet, AVROen ORC toewijzingstypen.
DateTimeFromUnixNanoseconds Converteert getal dat unix-tijd (nanoseconden sinds 1970-01-01) vertegenwoordigt naar utc-datum/tijdtekenreeks. Beschikbaar voor CSV, JSON, Parquet, AVROen ORC toewijzingstypen.
DropMappedFields Wijst een object in het JSON-document toe aan een kolom en verwijdert alle geneste velden waarnaar al wordt verwezen door andere kolomtoewijzingen. Beschikbaar voor JSON, Parquet, AVROen ORC toewijzingstypen.
BytesAsBase64 Behandelt de gegevens als bytematrix en converteert deze naar een met base64 gecodeerde tekenreeks. Beschikbaar voor AVRO toewijzingstype. Voor ApacheAvro-indeling moet het schematype van het toegewezen gegevensveld worden bytes of fixed Avro-type. Voor Avro-indeling moet het veld een matrix zijn die bytewaarden uit het bereik [0-255] bevat. null wordt opgenomen als de gegevens geen geldige bytematrix vertegenwoordigen.

Voorbeelden van toewijzingstransformatie

DropMappedFields transformatie:

Gegeven de volgende JSON-inhoud:

{
    "Time": "2012-01-15T10:45",
    "Props": {
        "EventName": "CustomEvent",
        "Revenue": 0.456
    }
}

Met de volgende gegevenstoewijzing worden hele Props object toegewezen aan dynamische kolom Props terwijl al toegewezen kolommen worden uitgesloten (Props.EventName al is toegewezen aan kolom EventName, dus uitgesloten).

[
    { "Column": "Time", "Properties": { "Path": "$.Time" } },
    { "Column": "EventName", "Properties": { "Path": "$.Props.EventName" } },
    { "Column": "Props", "Properties": { "Path": "$.Props", "Transform":"DropMappedFields" } },
]

De opgenomen gegevens zien er als volgt uit:

Tijd EventName Props
2012-01-15T10:45 CustomEvent {"Revenue": 0.456}

BytesAsBase64 transformatie

Gegeven de volgende AVRO-bestandsinhoud:

{
    "Time": "2012-01-15T10:45",
    "Props": {
        "id": [227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52]
    }
}

Met de volgende gegevenstoewijzing wordt de id-kolom twee keer toegewezen, met en zonder de transformatie.

[
    { "Column": "ID", "Properties": { "Path": "$.props.id" } },
    { "Column": "Base64EncodedId", "Properties": { "Path": "$.props.id", "Transform":"BytesAsBase64" } },
]

De opgenomen gegevens zien er als volgt uit:

LEGITIMATIEBEWIJS Base64EncodedId
[227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52] 44MiXBxbQUiGigmFMy1oNA==