Asignaciones de ingesta
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer
Las asignaciones de ingesta se usan durante la ingesta para asignar datos entrantes a columnas dentro de tablas.
Data Explorer admite diferentes tipos de asignaciones, orientadas a filas (CSV, JSON, AVRO y W3CLOGFILE) y orientadas a columnas (Parquet y ORC).
Las asignaciones de ingesta se pueden crear previamente y se puede hacer referencia desde el comando ingest mediante ingestionMappingReference
parámetros. La ingesta es posible sin especificar una asignación. Para obtener más información, consulte asignación de identidades.
Cada elemento de la lista de asignación se construye a partir de tres campos:
Propiedad | Obligatorio | Descripción |
---|---|---|
Columna | ✔️ | Nombre de columna de destino en la tabla. |
Datatype | Tipo de datos con el que se va a crear la columna asignada si aún no existe en la tabla. | |
Propiedades | Contenedor de propiedades que contiene propiedades específicas para cada asignación, tal como se describe en cada página de tipo de asignación específica. |
Importante
Para la ingesta en cola:
- Si la tabla a la que se hace referencia en la asignación no existe en la base de datos, se crea automáticamente, dado que se especifican tipos de datos válidos para todas las columnas.
- Si no existe una columna a la que se hace referencia en la asignación en la tabla, se agrega automáticamente a la tabla como la última columna en la primera vez que se ingieren datos para esa columna, dado que se especifica un tipo de datos válido para la columna. Para agregar nuevas columnas a una asignación, use el comando .alter ingestion mapping .
- Los datos se procesan por lotes mediante propiedades de ingesta. Las propiedades de asignación de ingesta más distintas usadas, como los distintos valores de ConstValue, más fragmentados se convierten en la ingesta, lo que puede provocar una degradación del rendimiento.
Tipos de asignación admitidos
En la tabla siguiente se definen los tipos de asignación que se usarán al ingerir o consultar datos externos de un formato específico.
Formato de datos | Tipo de asignación |
---|---|
CSV | Asignación de CSV |
TSV | Asignación de CSV |
TSVe | Asignación de CSV |
PSV | Asignación de CSV |
SCSV | Asignación de CSV |
SOHsv | Asignación de CSV |
TXT | Asignación de CSV |
RAW | Asignación de CSV |
JSON | Asignación de JSON |
AVRO | Asignación de AVRO |
APACHEAVRO | Asignación de AVRO |
Parquet | Asignación de Parquet |
ORC | Asignación orc |
W3CLOGFILE | Asignación de W3CLOGFILE |
Asignación de identidades
La ingesta es posible sin especificar ingestionMapping
propiedades o ingestionMappingReference
. Los datos se asignan mediante una asignación de datos de identidad derivada del esquema de la tabla. El esquema de tabla sigue siendo el mismo. format
se debe especificar la propiedad . Consulte los formatos de ingesta.
Tipo de formato | Format | Lógica de asignación |
---|---|---|
Formatos de datos tabulares con orden definido de columnas, como formatos separados por delimitadores o de una sola línea. | CSV, TSV, TSVe, PSV, SCSV, Txt, SOHsv, Raw | Todas las columnas de tabla se asignan en su orden respectivo a las columnas de datos en orden en que aparecen en el origen de datos. El tipo de datos de columna se toma del esquema de tabla. |
Da formato a columnas o registros con nombre con campos con nombre. | JSON, Parquet, Avro, ApacheAvro, Orc, W3CLOGFILE | Todas las columnas de tabla se asignan a columnas de datos o campos de registro con el mismo nombre (distingue mayúsculas de minúsculas). El tipo de datos de columna se toma del esquema de tabla. |
Advertencia
Cualquier discrepancia entre el esquema de tabla y la estructura de datos, como los tipos de datos de columna o campo, los nombres de columna o campo o su número podrían dar lugar a datos vacíos o incorrectos ingeridos.
Asignación de transformaciones
Algunas de las asignaciones de formato de datos (Parquet, JSON y AVRO) admiten transformaciones en tiempo de ingesta sencillas y útiles. Cuando el escenario requiere un procesamiento más complejo en el momento de la ingesta, use la directiva de actualización, lo que permite definir el procesamiento ligero mediante la expresión KQL.
Transformación dependiente de la ruta de acceso | Descripción | Condiciones |
---|---|---|
PropertyBagArrayToDictionary | Transforma la matriz JSON de propiedades, como {events:[{"n1":"v1"},{"n2":"v2"}]} , para el diccionario y la serializa en un documento JSON válido, como {"n1":"v1","n2":"v2"} . |
Disponible para JSON los tipos de asignación , Parquet , AVRO y ORC . |
SourceLocation | Nombre del artefacto de almacenamiento que proporcionó los datos, cadena de tipo (por ejemplo, el campo "BaseUri" del blob). | Disponible para CSV los tipos de asignación , JSON , Parquet AVRO , , ORC y W3CLOGFILE . |
SourceLineNumber | Desplazamiento relativo a ese artefacto de almacenamiento, tipo long (a partir de "1" e incremento por registro nuevo). | Disponible para CSV los tipos de asignación , JSON , Parquet AVRO , , ORC y W3CLOGFILE . |
DateTimeFromUnixSeconds | Convierte el número que representa la hora unix (segundos desde 1970-01-01) a la cadena datetime UTC. | Disponible para CSV los tipos de asignación , JSON , Parquet , AVRO y ORC . |
DateTimeFromUnixMilliseconds | Convierte el número que representa la hora unix (milisegundos desde 1970-01-01) a la cadena datetime UTC. | Disponible para CSV los tipos de asignación , JSON , Parquet , AVRO y ORC . |
DateTimeFromUnixMicroseconds | Convierte el número que representa la hora unix (microsegundos desde 1970-01-01) a la cadena datetime UTC. | Disponible para CSV los tipos de asignación , JSON , Parquet , AVRO y ORC . |
DateTimeFromUnixNanoseconds | Convierte el número que representa la hora unix (nanosegundos desde 1970-01-01) a la cadena datetime UTC. | Disponible para CSV los tipos de asignación , JSON , Parquet , AVRO y ORC . |
DropMappedFields | Asigna un objeto del documento JSON a una columna y quita los campos anidados a los que ya hacen referencia otras asignaciones de columnas. | Disponible para JSON los tipos de asignación , Parquet , AVRO y ORC . |
BytesAsBase64 | Trata los datos como matriz de bytes y los convierte en una cadena codificada en base64. | Disponible para el AVRO tipo de asignación. Para ApacheAvro el formato, el tipo de esquema del campo de datos asignado debe ser bytes o fixed tipo Avro. Para Avro el formato, el campo debe ser una matriz que contenga valores de bytes del intervalo [0-255]. null se ingiere si los datos no representan una matriz de bytes válida. |
Ejemplos de transformación de asignación
DropMappedFields
transformación:
Dado el siguiente contenido JSON:
{
"Time": "2012-01-15T10:45",
"Props": {
"EventName": "CustomEvent",
"Revenue": 0.456
}
}
La siguiente asignación de datos asigna todo Props
el objeto a una columna Props
dinámica, sin incluir columnas ya asignadas (Props.EventName
ya está asignada a la columna EventName
, por lo que se excluye).
[
{ "Column": "Time", "Properties": { "Path": "$.Time" } },
{ "Column": "EventName", "Properties": { "Path": "$.Props.EventName" } },
{ "Column": "Props", "Properties": { "Path": "$.Props", "Transform":"DropMappedFields" } },
]
Los datos ingeridos tienen el siguiente aspecto:
Time | EventName | Propiedades |
---|---|---|
2012-01-15T10:45 |
CustomEvent |
{"Revenue": 0.456} |
BytesAsBase64
transformación
Dado el siguiente contenido del archivo AVRO:
{
"Time": "2012-01-15T10:45",
"Props": {
"id": [227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52]
}
}
La siguiente asignación de datos asigna la columna id. dos veces, con y sin la transformación .
[
{ "Column": "ID", "Properties": { "Path": "$.props.id" } },
{ "Column": "Base64EncodedId", "Properties": { "Path": "$.props.id", "Transform":"BytesAsBase64" } },
]
Los datos ingeridos tienen el siguiente aspecto:
ID | Base64EncodedId |
---|---|
[227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52] |
44MiXBxbQUiGigmFMy1oNA== |