Mapowania pozyskiwania
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer
Mapowania pozyskiwania są używane podczas pozyskiwania do mapowania danych przychodzących na kolumny wewnątrz tabel.
Eksplorator danych obsługuje różne typy mapowań, zarówno zorientowane na wiersz (CSV, JSON, AVRO i W3CLOGFILE) oraz zorientowane na kolumny (Parquet i ORC).
Mapowania pozyskiwania mogą być wstępnie tworzone i mogą być przywoływane z polecenia pozyskiwania przy użyciu ingestionMappingReference
parametrów. Pozyskiwanie jest możliwe bez określania mapowania. Aby uzyskać więcej informacji, zobacz Mapowanie tożsamości.
Każdy element na liście mapowania jest konstruowany z trzech pól:
Właściwości | Wymagania | opis |
---|---|---|
Kolumna | ✔️ | Nazwa kolumny docelowej w tabeli. |
Datatype | Typ danych, za pomocą którego ma zostać utworzona zamapowana kolumna, jeśli jeszcze nie istnieje w tabeli. | |
Właściwości | Torba właściwości zawierająca właściwości specyficzne dla każdego mapowania zgodnie z opisem na każdej stronie określonego typu mapowania. |
Ważne
W przypadku pozyskiwania w kolejce:
- Jeśli tabela, do której odwołuje się mapowanie, nie istnieje w bazie danych, zostanie utworzona automatycznie, biorąc pod uwagę, że prawidłowe typy danych są określone dla wszystkich kolumn.
- Jeśli kolumna przywoływana w mapowaniu nie istnieje w tabeli, zostanie ona automatycznie dodana do tabeli jako ostatnia kolumna podczas pierwszego pozyskiwania danych dla tej kolumny, biorąc pod uwagę prawidłowy typ danych określony dla kolumny. Aby dodać nowe kolumny do mapowania, użyj polecenia .alter ingestion mapowania.
- Dane są wsadowe przy użyciu właściwości pozyskiwania. Bardziej odrębne właściwości mapowania pozyskiwania, takie jak różne wartości ConstValue, tym bardziej rozdrobnione pozyskiwanie staje się, co może prowadzić do obniżenia wydajności.
Obsługiwane typy mapowań
W poniższej tabeli zdefiniowano typy mapowań, które mają być używane podczas pozyskiwania lub wykonywania zapytań względem danych zewnętrznych określonego formatu.
Format danych | Typ mapowania |
---|---|
CSV | Mapowanie woluminów CSV |
TSV | Mapowanie woluminów CSV |
TSVe | Mapowanie woluminów CSV |
PSV | Mapowanie woluminów CSV |
ScSV | Mapowanie woluminów CSV |
SOHsv | Mapowanie woluminów CSV |
TXT | Mapowanie woluminów CSV |
SUROWY | Mapowanie woluminów CSV |
JSON | Mapowanie JSON |
AVRO | Mapowanie AVRO |
APACHEAVRO | Mapowanie AVRO |
Parquet | Mapowanie parquet |
ORK | Mapowanie ORC |
W3CLOGFILE | mapowanie W3CLOGFILE |
Mapowanie tożsamości
Pozyskiwanie jest możliwe bez określania ingestionMapping
lub ingestionMappingReference
właściwości. Dane są mapowane przy użyciu mapowania danych tożsamości pochodzącego ze schematu tabeli. Schemat tabeli pozostaje taki sam. format
należy określić właściwość . Zobacz formaty pozyskiwania.
Typ formatu | Formatuj | Logika mapowania |
---|---|---|
Formaty danych tabelarycznych ze zdefiniowaną kolejnością kolumn, takie jak formaty rozdzielane ogranicznikami lub jednowierszowe. | CSV, TSV, TSVe, PSV, SCSV, Txt, SOHsv, Raw | Wszystkie kolumny tabeli są mapowane w odpowiedniej kolejności na kolumny danych, aby były wyświetlane w źródle danych. Typ danych kolumny jest pobierany ze schematu tabeli. |
Formaty z nazwanymi kolumnami lub rekordami z nazwanymi polami. | JSON, Parquet, Avro, ApacheAvro, Orc, W3CLOGFILE | Wszystkie kolumny tabeli są mapowane na kolumny danych lub pola rekordów o tej samej nazwie (z uwzględnieniem wielkości liter). Typ danych kolumny jest pobierany ze schematu tabeli. |
Ostrzeżenie
Wszelkie niezgodności między schematem tabeli a strukturą danych, takimi jak typy danych kolumn lub pól, nazwy kolumn lub pól lub ich liczba, mogą spowodować pozyskiwanie pustych lub nieprawidłowych danych.
Przekształcenia mapowania
Niektóre mapowania formatów danych (Parquet, JSON i AVRO) obsługują proste i przydatne przekształcenia czasu pozyskiwania. Jeśli scenariusz wymaga bardziej złożonego przetwarzania w czasie pozyskiwania, użyj zasad aktualizacji, które umożliwiają definiowanie uproszczonego przetwarzania przy użyciu wyrażenia KQL.
Transformacja zależna od ścieżki | opis | Warunki |
---|---|---|
PropertyBagArrayToDictionary | Przekształca tablicę właściwości JSON, taką jak {events:[{"n1":"v1"},{"n2":"v2"}]} , na słownik i serializuje ją do prawidłowego dokumentu JSON, takiego jak {"n1":"v1","n2":"v2"} . |
Dostępne dla JSON typów mapowań , Parquet , AVRO i ORC . |
Lokalizacja źródłowa | Nazwa artefaktu magazynu, który dostarczył dane, wpisz ciąg (na przykład pole "BaseUri" obiektu blob). | Dostępne dla CSV typów mapowania , ORC AVRO JSON Parquet i .W3CLOGFILE |
SourceLineNumber | Przesunięcie względem tego artefaktu magazynu, wpisz długi (począwszy od "1" i przyrostowe na nowy rekord). | Dostępne dla CSV typów mapowania , ORC AVRO JSON Parquet i .W3CLOGFILE |
DateTimeFromUnixSeconds | Konwertuje liczbę reprezentującą czas unix (sekundy od 1970-01-01) do ciągu daty/godziny UTC. | Dostępne dla CSV typów mapowania , , JSON Parquet , AVRO i ORC . |
DateTimeFromUnixMilliseconds | Konwertuje liczbę reprezentującą czas unix (milisekundy od 1970-01-01) do ciągu daty/godziny UTC. | Dostępne dla CSV typów mapowania , , JSON Parquet , AVRO i ORC . |
DateTimeFromUnixMicroseconds | Konwertuje liczbę reprezentującą czas unix (mikrosekundy od 1970-01-01) do ciągu daty/godziny UTC. | Dostępne dla CSV typów mapowania , , JSON Parquet , AVRO i ORC . |
DateTimeFromUnixNanoseconds | Konwertuje liczbę reprezentującą czas unix (nanosekundy od 1970-01-01) do ciągu daty/godziny UTC. | Dostępne dla CSV typów mapowania , , JSON Parquet , AVRO i ORC . |
DropMappedFields | Mapuje obiekt w dokumencie JSON na kolumnę i usuwa wszystkie zagnieżdżone pola, do których już odwołuje się inne mapowania kolumn. | Dostępne dla JSON typów mapowań , Parquet , AVRO i ORC . |
BytesAsBase64 | Traktuje dane jako tablicę bajtów i konwertuje je na ciąg zakodowany w formacie base64. | Dostępny dla AVRO typu mapowania. W przypadku ApacheAvro formatu typ schematu mapowanego pola danych powinien mieć bytes wartość lub fixed Typ Avro. W przypadku Avro formatu pole powinno być tablicą zawierającą wartości bajtów z zakresu [0–255]. null jest pozyskiwany, jeśli dane nie reprezentują prawidłowej tablicy bajtów. |
Przykłady przekształcania mapowania
DropMappedFields
przekształcenie:
Biorąc pod uwagę następującą zawartość JSON:
{
"Time": "2012-01-15T10:45",
"Props": {
"EventName": "CustomEvent",
"Revenue": 0.456
}
}
Poniższe mapowanie danych mapuje cały Props
obiekt na kolumnę Props
dynamiczną, a jednocześnie wyklucza już zamapowane kolumny (Props.EventName
jest już mapowane na kolumnę EventName
, więc jest wykluczone).
[
{ "Column": "Time", "Properties": { "Path": "$.Time" } },
{ "Column": "EventName", "Properties": { "Path": "$.Props.EventName" } },
{ "Column": "Props", "Properties": { "Path": "$.Props", "Transform":"DropMappedFields" } },
]
Pozyskane dane wyglądają następująco:
Czas | EventName | Rekwizyty |
---|---|---|
2012-01-15T10:45 |
CustomEvent |
{"Revenue": 0.456} |
BytesAsBase64
przekształcenie
Biorąc pod uwagę następującą zawartość pliku AVRO:
{
"Time": "2012-01-15T10:45",
"Props": {
"id": [227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52]
}
}
Następujące mapowanie danych mapuje kolumnę IDENTYFIKATORa dwa razy z transformacją i bez jej przekształcenia.
[
{ "Column": "ID", "Properties": { "Path": "$.props.id" } },
{ "Column": "Base64EncodedId", "Properties": { "Path": "$.props.id", "Transform":"BytesAsBase64" } },
]
Pozyskane dane wyglądają następująco:
ID | Base64EncodedId |
---|---|
[227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52] |
44MiXBxbQUiGigmFMy1oNA== |