Mapowania pozyskiwania
Mapowania pozyskiwania są używane podczas pozyskiwania do mapowania danych przychodzących na kolumny wewnątrz tabel.
Data Explorer obsługuje różne typy mapowań, zarówno zorientowane na wiersze (CSV, JSON, AVRO i W3CLOGFILE) oraz zorientowane na kolumny (Parquet i ORC).
Mapowania pozyskiwania można wstępnie utworzyć i przywoływać się z polecenia pozyskiwania przy użyciu ingestionMappingReference
parametrów. Chociaż 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ść | Wymagane | 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órego odwołuje się mapowanie, nie istnieje w bazie danych, zostanie utworzona automatycznie, biorąc pod uwagę, że dla wszystkich kolumn określono prawidłowe typy danych.
- Jeśli kolumna przywoływana w mapowaniu nie istnieje w tabeli, zostanie automatycznie dodana do tabeli jako ostatnia kolumna przy pierwszym pozyskiwaniu danych dla tej kolumny, biorąc pod uwagę, że określono prawidłowy typ danych dla kolumny. Aby dodać nowe kolumny do mapowania, użyj polecenia .alter ingestion mapping.
- 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 |
RAW | Mapowanie woluminów CSV |
JSON | Mapowanie JSON |
AVRO | Mapowanie AVRO |
APACHEAVRO | Mapowanie AVRO |
Parquet | Mapowanie Parquet |
ORC | Mapowanie ORC |
W3CLOGFILE | mapowanie W3CLOGFILE |
Mapowanie tożsamości
Pozyskiwanie jest możliwe bez określania ingestionMapping
lub ingestionMappingReference
właściwości. Dane zostaną zamapowane przy użyciu mapowania danych tożsamości pochodzącego ze schematu tabeli. Schemat tabeli pozostanie taki sam. format
należy określić właściwość . Zobacz formaty pozyskiwania.
Typ formatu | Format | 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, takie jak typy danych kolumn lub pól, nazwy kolumn lub pól albo 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 mapowania , Parquet AVRO i ORC . |
Sourcelocation | Nazwa artefaktu magazynu, który dostarczył danych, wpisz ciąg (na przykład pole "BaseUri" obiektu blob). | Dostępne dla CSV typów mapowania , , JSON Parquet , AVRO ORC i W3CLOGFILE . |
SourceLineNumber | Przesunięcie względem tego artefaktu magazynu, typ długi (rozpoczynający się od "1" i zwiększający się na nowy rekord). | Dostępne w typach mapowania: JSON , Parquet , AVRO ORC i W3CLOGFILE . |
DateTimeFromUnixSeconds | Konwertuje liczbę reprezentującą czas systemu unix (sekundy od 1970-01-01) na ciąg daty/godziny UTC. | Dostępne dla JSON typów mapowania , Parquet AVRO i ORC . |
DateTimeFromUnixMilliseconds | Konwertuje liczbę reprezentującą czas systemu unix (milisekundy od 1970-01-01) na ciąg daty/godziny UTC. | Dostępne dla JSON typów mapowania , Parquet AVRO i ORC . |
DateTimeFromUnixMicroseconds | Konwertuje liczbę reprezentującą mikrosekundy (mikrosekundy od 1970-01-01) do ciągu daty/godziny UTC. | Dostępne dla JSON typów mapowania , Parquet AVRO i ORC . |
DateTimeFromUnixNanoseconds | Konwertuje liczbę reprezentującą czas systemu unix (nanosekundy od 1970-01-01) do ciągu daty/godziny UTC. | Dostępne dla JSON typów mapowania , 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 mapowania , 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łceń mapowania
DropMappedFields
Transformacji:
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ą z wyłączeniem już zamapowanych kolumn (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:
Godzina | EventName | Rekwizyty |
---|---|---|
2012-01-15T10:45 |
CustomEvent |
{"Revenue": 0.456} |
BytesAsBase64
Transformacji
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]
}
}
Poniższe 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== |
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla