Opnametoewijzingen

Opnametoewijzingen worden tijdens de opname gebruikt 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 vooraf worden gemaakt en kunnen worden verwezen vanuit de opdracht opnemen met behulp van ingestionMappingReference parameters. Opname is echter mogelijk zonder een toewijzing op te geven. Zie Identiteitstoewijzing voor meer informatie.

Elk element in de toewijzingslijst is samengesteld uit drie velden:

Eigenschap Vereist Beschrijving
Kolom ✔️ Naam van doelkolom in de tabel.
Gegevenstype Gegevenstype waarmee de toegewezen kolom moet worden gemaakt als deze nog niet in de tabel bestaat.
Eigenschappen Eigenschappenverzameling 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, op basis van het feit dat geldige gegevenstypen worden opgegeven voor alle kolommen.
  • Als een kolom waarnaar wordt verwezen in de toewijzing niet bestaat in de tabel, wordt deze automatisch toegevoegd aan de tabel als de laatste kolom bij de eerste keer dat gegevens voor die kolom worden opgenomen, mits er een geldig gegevenstype is opgegeven voor de kolom. Als u nieuwe kolommen wilt toevoegen aan een toewijzing, gebruikt u de opdracht .alter ingestion mapping.
  • Gegevens worden in batches gemaakt met behulp van opname-eigenschappen. Hoe meer verschillende 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 met 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
RAW CSV-toewijzing
JSON JSON-toewijzing
AVRO AVRO-toewijzing
APACHEAVRO AVRO-toewijzing
Parquet Parquet-toewijzing
ORC ORC-toewijzing
W3CLOGFILE toewijzing van W3CLOGFILE

Identiteitstoewijzing

Opname is mogelijk zonder eigenschappen of ingestionMappingReference op te ingestionMapping 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 Indeling Toewijzingslogica
Tabellaire gegevensindelingen met gedefinieerde volgorde van kolommen, zoals door scheidingstekens gescheiden 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 in de gegevensbron worden weergegeven. Het gegevenstype Kolom is afkomstig uit het tabelschema.
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 is afkomstig uit het tabelschema.

Waarschuwing

Als het tabelschema en de structuur van gegevens niet overeenkomen, zoals kolom- of veldgegevenstypen, kolom- of veldnamen of hun aantal, kan dit leiden tot lege of onjuiste gegevensopname.

Toewijzingstransformaties

Sommige toewijzingen van gegevensindelingen (Parquet, JSON en AVRO) ondersteunen eenvoudige en nuttige opnametijdtransformaties. Als het scenario complexere verwerking tijdens opname vereist, gebruikt u Updatebeleid, waarmee lichtgewicht verwerking met behulp van KQL-expressie kan worden gedefinieerd.

Padafhankelijke transformatie Description 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 JSONtoewijzingstypen , ParquetAVRO enORC.
SourceLocation Naam van het opslagartefact dat de gegevens heeft geleverd, typ tekenreeks (bijvoorbeeld het veld BaseUri van de blob). Beschikbaar voor CSVtoewijzingstypen , ParquetJSON, AVRO, ORC en W3CLOGFILE .
SourceLineNumber Verschuiving ten opzichte van dat opslagartefact, typt u long (beginnend met '1' en oplopend per nieuwe record). Beschikbaar in: JSON, Parquet, AVROORC en W3CLOGFILE toewijzingstypen.
DateTimeFromUnixSeconds Converteert getal dat unix-tijd vertegenwoordigt (seconden sinds 1970-01-01) naar UTC-tekenreeks datum/tijd. Beschikbaar voor JSONtoewijzingstypen , ParquetAVRO enORC.
DateTimeFromUnixMilliseconds Converteert getal dat unix-tijd vertegenwoordigt (milliseconden sinds 1970-01-01) naar UTC-tekenreeks datum/tijd. Beschikbaar voor JSONtoewijzingstypen , ParquetAVRO enORC.
DateTimeFromUnixMicroseconds Converteert een getal dat unix-tijd vertegenwoordigt (microseconden sinds 1970-01-01) naar UTC-tekenreeks datum/tijd. Beschikbaar voor JSONtoewijzingstypen , ParquetAVRO enORC.
DateTimeFromUnixNanoseconds Converteert een getal dat unix-tijd vertegenwoordigt (nanoseconden sinds 1970-01-01) naar UTC-tekenreeks datum/tijd. Beschikbaar voor JSONtoewijzingstypen , ParquetAVRO enORC.
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 JSONtoewijzingstypen , ParquetAVRO enORC.
BytesAsBase64 Behandelt de gegevens als bytematrix en converteert deze naar een met base64 gecodeerde tekenreeks. Beschikbaar voor AVRO toewijzingstype. Voor ApacheAvro de indeling moet het schematype van het toegewezen gegevensveld of fixed het Avro-type zijnbytes. Voor Avro opmaak moet het veld een matrix zijn met bytewaarden van het bereik [0-255]. null wordt opgenomen als de gegevens geen geldige bytematrix vertegenwoordigen.

Voorbeelden van toewijzingstransformaties

DropMappedFields Transformatie:

Gezien de volgende JSON-inhoud:

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

De volgende gegevenstoewijzing wijst het hele Props object toe aan dynamische kolommen Props , terwijl al toegewezen kolommen worden uitgesloten (Props.EventName is al toegewezen aan kolom EventName, dus het is 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 Gebeurtenisnaam Props
2012-01-15T10:45 CustomEvent {"Revenue": 0.456}

BytesAsBase64 Transformatie

Gezien 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:

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