Mapping di inserimento
Si applica a: ✅Microsoft Fabric✅Azure Esplora dati
I mapping di inserimento vengono usati durante l'inserimento per eseguire il mapping dei dati in ingresso alle colonne all'interno delle tabelle.
Esplora dati supporta diversi tipi di mapping, sia orientati alle righe (CSV, JSON, AVRO e W3CLOGFILE) sia orientati alle colonne (Parquet e ORC).
I mapping di inserimento possono essere creati in modo preliminare e possono essere referenziati dal comando di inserimento usando ingestionMappingReference
i parametri. L'inserimento è possibile senza specificare un mapping. Per altre informazioni, vedere Mapping delle identità.
Ogni elemento dell'elenco di mapping viene costruito da tre campi:
Proprietà | Richiesto | 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 delle proprietà contenente proprietà specifiche per ogni mapping, come descritto in ogni pagina specifica del tipo di mapping. |
Importante
Per l'inserimento in coda:
- Se la tabella a cui viene fatto 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 per la colonna viene specificato un tipo di dati valido. Per aggiungere nuove colonne a un mapping, usare il comando di mapping dell'inserimento con estensione alter.
- I dati vengono inseriti in batch usando le proprietà di inserimento. Le proprietà di mapping di inserimento più distinte usate, ad esempio valori ConstValue diversi, diventano più frammentate l'inserimento, il che può causare una riduzione delle prestazioni.
Tipi di mapping supportati
La tabella seguente definisce i tipi di mapping da utilizzare 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 vengono mappati usando un mapping dei dati identity derivato dallo schema della tabella. Lo schema della tabella rimane invariato. format
deve essere specificata la proprietà . 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 della tabella vengono mappate nel rispettivo ordine alle colonne di dati nell'ordine in cui vengono visualizzate nell'origine dati. Il tipo di dati della colonna viene ricavato dallo schema della tabella. |
Formatta con colonne o record denominati con campi denominati. | JSON, Parquet, Avro, ApacheAvro, Orc, W3CLOGFILE | Viene eseguito il mapping di tutte le colonne di tabella alle colonne di dati o ai campi di record con lo stesso nome (con distinzione tra maiuscole e minuscole). Il tipo di dati della colonna viene ricavato dallo schema della tabella. |
Avviso
Qualsiasi mancata corrispondenza tra lo schema della tabella e la struttura dei dati, ad esempio i tipi di dati di colonna o di campo, i nomi di colonna o di campo o il relativo numero potrebbero generare dati vuoti o non corretti inseriti.
Trasformazioni del mapping
Alcuni dei mapping dei formati di dati (Parquet, JSON e AVRO) supportano trasformazioni semplici e utili in fase di inserimento. Quando 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 dipendente dal percorso | Descrizione | Condizioni |
---|---|---|
PropertyBagArrayToDictionary | Trasforma la matrice JSON di proprietà, ad esempio {events:[{"n1":"v1"},{"n2":"v2"}]} , in dizionario e la serializza in un documento JSON valido, ad esempio {"n1":"v1","n2":"v2"} . |
Disponibile per JSON i tipi di mapping , Parquet AVRO , e ORC . |
SourceLocation | Nome dell'artefatto di archiviazione che ha fornito i dati, la stringa di tipo (ad esempio, il campo "BaseUri" del BLOB). | Disponibile per CSV i tipi di mapping , JSON AVRO Parquet , , ORC , e .W3CLOGFILE |
SourceLineNumber | Offset relativo all'artefatto di archiviazione, tipo long (a partire da '1' e incremento per ogni nuovo record). | Disponibile per CSV i tipi di mapping , JSON AVRO Parquet , , ORC , e .W3CLOGFILE |
DateTimeFromUnixSeconds | Converte il numero che rappresenta unix-time (secondi dal 1970-01-01) alla stringa datetime UTC. | Disponibile per CSV i tipi di mapping , JSON Parquet , AVRO , e ORC . |
DateTimeFromUnixMilliseconds | Converte il numero che rappresenta unix-time (millisecondi dal 1970-01-01) alla stringa datetime UTC. | Disponibile per CSV i tipi di mapping , JSON Parquet , AVRO , e ORC . |
DateTimeFromUnixMicroseconds | Converte il numero che rappresenta unix-time (microsecondi dal 1970-01-01) alla stringa datetime UTC. | Disponibile per CSV i tipi di mapping , JSON Parquet , AVRO , e ORC . |
DateTimeFromUnixNanoseconds | Converte il numero che rappresenta unix-time (nanosecondi dal 1970-01-01) alla stringa datetime UTC. | Disponibile per CSV i tipi di mapping , JSON Parquet , AVRO , e ORC . |
DropMappedFields | Esegue il mapping di un oggetto nel documento JSON a una colonna e rimuove tutti i campi annidati già a cui fanno riferimento altri mapping di colonne. | Disponibile per JSON i tipi di mapping , Parquet AVRO , e ORC . |
ByteAsBase64 | Considera i dati come matrice di byte e li 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 compresi nell'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 Props
dinamica, escludendo le colonne già mappate (Props.EventName
è già mappato alla colonna EventName
, quindi viene 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:
Time | 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== |