Mapping di inserimento
I mapping di inserimento vengono usati durante l'inserimento per eseguire il mapping dei dati in ingresso alle colonne all'interno di tabelle.
Esplora dati supporta diversi tipi di mapping, orientati a righe (CSV, JSON, AVRO e W3CLOGFILE) e orientate alle colonne (Parquet e ORC).
È possibile creare i mapping di inserimento e fare riferimento al comando inserimento usando ingestionMappingReference
i parametri. Anche se l'inserimento è possibile senza specificare un mapping. Per altre informazioni, vedere Mapping delle identità.
Ogni elemento nell'elenco di mapping viene costruito da tre campi:
Proprietà | Obbligatoria | Descrizione |
---|---|---|
Colonna | ✔️ | Nome della colonna di destinazione nella tabella. |
Datatype | Tipo di dati con cui creare la colonna mappata se non esiste già nella tabella. | |
Proprietà | Contenitore di proprietà contenente proprietà specifiche per ogni mapping, come descritto in ogni pagina del tipo di mapping specifico. |
Importante
Per l'inserimento in coda:
- Se la tabella a cui si fa riferimento nel mapping non esiste nel database, viene creata automaticamente, dato che per tutte le colonne vengono specificati tipi di dati validi.
- Se una colonna a cui si fa riferimento nel mapping non esiste nella tabella, viene aggiunta automaticamente alla tabella come ultima colonna alla prima inserimento dei dati per tale colonna, dato che viene specificato un tipo di dati valido per la colonna. Per aggiungere nuove colonne a un mapping, usare il comando di mapping di inserimento .alter.
- I dati vengono in batch usando le proprietà di inserimento. Le proprietà di mapping di inserimento più distinte usate, ad esempio valori ConstValue diversi, diventa più frammentata l'inserimento, che può causare una riduzione delle prestazioni.
Tipi di mapping supportati
La tabella seguente definisce i tipi di mapping da usare durante l'inserimento o l'esecuzione di query su dati esterni di un formato specifico.
Formato dati | Tipo di mapping |
---|---|
CSV | CSV Mapping |
TSV | CSV Mapping |
TSVe | CSV Mapping |
PSV | CSV Mapping |
SCSV | CSV Mapping |
SOHsv | CSV Mapping |
TXT | CSV Mapping |
RAW | CSV Mapping |
JSON | JSON Mapping |
AVRO | AVRO Mapping |
APACHEAVRO | AVRO Mapping |
Parquet | Parquet Mapping |
ORC | ORC Mapping |
W3CLOGFILE | W3CLOGFILE Mapping |
Mapping di identità
L'inserimento è possibile senza specificare ingestionMapping
o ingestionMappingReference
proprietà. I dati verranno mappati usando un mapping dei dati di identità derivato dallo schema della tabella. Lo schema della tabella rimarrà invariato. format
la proprietà deve essere specificata. Vedere formati di inserimento.
Tipo di formato | Formato | Logica di mapping |
---|---|---|
Formati di dati tabulari con ordine definito di colonne, ad esempio formati delimitatori separati o a riga singola. | CSV, TSV, TSVe, PSV, SCSV, Txt, SOHsv, Raw | Tutte le colonne di tabella vengono mappate rispettivamente alle colonne di dati nell'ordine in cui vengono visualizzate nell'origine dati. Il tipo di dati della colonna viene tratto dallo schema della tabella. |
Formati con colonne o record denominati con campi denominati. | JSON, Parquet, Avro, ApacheAvro, Orc, W3CLOGFILE | Tutte le colonne di tabella vengono mappate a colonne di dati o campi di record con lo stesso nome (distinzione tra maiuscole e minuscole). Il tipo di dati della colonna viene tratto dallo schema della tabella. |
Avviso
Qualsiasi mancata corrispondenza tra lo schema della tabella e la struttura dei dati, ad esempio tipi di dati di colonna o di campo, colonne o nomi di campo o il relativo numero potrebbero comportare dati vuoti o non corretti inseriti.
Trasformazioni del mapping
Alcuni dei mapping di formato dati (Parquet, JSON e AVRO) supportano trasformazioni semplici e utili ingest-time. Se lo scenario richiede un'elaborazione più complessa in fase di inserimento, usare i criteri di aggiornamento, che consentono di definire l'elaborazione leggera usando l'espressione KQL.
Trasformazione a seconda del percorso | Descrizione | Condizioni |
---|---|---|
PropertyBagArrayToDictionary | Trasforma la matrice JSON di proprietà, ad esempio , per dizionario e serializza la matrice JSON valida, ad esempio {events:[{"n1":"v1"},{"n2":"v2"}]} {"n1":"v1","n2":"v2"} . |
Disponibile per JSON , Parquet AVRO e ORC tipi di mapping. |
SourceLocation | Nome dell'artefatto di archiviazione che ha fornito i dati, digitare stringa (ad esempio, il campo "BaseUri" del BLOB). | Disponibile per CSV , JSON Parquet , , AVRO ORC e W3CLOGFILE tipi di mapping. |
SourceLineNumber | Offset rispetto a tale artefatto di archiviazione, digitare long (a partire da '1' e incremento per nuovo record). | Disponibile in: JSON , Parquet , AVRO ORC e W3CLOGFILE tipi di mapping. |
DateTimeFromUnixSeconds | Converte il numero che rappresenta unix-time (secondi dal 1970-01-01) alla stringa datetime UTC. | Disponibile per JSON , Parquet AVRO e ORC tipi di mapping. |
DateTimeFromUnixMilliseconds | Converte il numero che rappresenta unix-time (millisecondi dal 1970-01-01) alla stringa datetime UTC. | Disponibile per JSON , Parquet AVRO e ORC tipi di mapping. |
DateTimeFromUnixMicroseconds | Converte il numero che rappresenta unix-time (microsecondi dal 1970-01-01) alla stringa datetime UTC. | Disponibile per JSON , Parquet AVRO e ORC tipi di mapping. |
DateTimeFromUnixNanoseconds | Converte il numero che rappresenta unix-time (nanosecondi dal 1970-01-01) alla stringa datetime UTC. | Disponibile per JSON , Parquet AVRO e ORC tipi di mapping. |
DropMappedFields | Esegue il mapping di un oggetto nel documento JSON a una colonna e rimuove tutti i campi annidati già a cui fa riferimento altri mapping di colonne. | Disponibile per JSON , Parquet AVRO e ORC tipi di mapping. |
ByteAsBase64 | Considera i dati come matrice di byte e lo converte in una stringa con codifica base64. | Disponibile per AVRO il tipo di mapping. Per ApacheAvro il formato, il tipo di schema del campo dati mappato deve essere bytes o fixed tipo Avro. Per Avro il formato, il campo deve essere una matrice contenente valori di byte dall'intervallo [0-255]. null viene inserito se i dati non rappresentano una matrice di byte valida. |
Esempi di trasformazione mapping
DropMappedFields
Trasformazione:
Dato il contenuto JSON seguente:
{
"Time": "2012-01-15T10:45",
"Props": {
"EventName": "CustomEvent",
"Revenue": 0.456
}
}
Il mapping dei dati seguente esegue il mapping dell'intero Props
oggetto nella colonna dinamica, escludendo le colonne già mappate (Props.EventName
è già mappato alla colonna Props
EventName
, quindi è escluso).
[
{ "Column": "Time", "Properties": { "Path": "$.Time" } },
{ "Column": "EventName", "Properties": { "Path": "$.Props.EventName" } },
{ "Column": "Props", "Properties": { "Path": "$.Props", "Transform":"DropMappedFields" } },
]
I dati inseriti sono i seguenti:
Ora | EventName | Proprietà |
---|---|---|
2012-01-15T10:45 |
CustomEvent |
{"Revenue": 0.456} |
BytesAsBase64
Trasformazione
Dato il contenuto del file AVRO seguente:
{
"Time": "2012-01-15T10:45",
"Props": {
"id": [227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52]
}
}
Il mapping dei dati seguente esegue il mapping della colonna ID due volte, con e senza la trasformazione.
[
{ "Column": "Id", "Properties": { "Path": "$.props.id" } },
{ "Column": "Base64EncodedId", "Properties": { "Path": "$.props.id", "Transform":"BytesAsBase64" } },
]
I dati inseriti sono i seguenti:
ID | Base64EncodedId |
---|---|
[227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52] |
44MiXBxbQUiGigmFMy1oNA== |
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per