Сопоставления приема
Область применения: ✅Microsoft Fabric✅Azure Data Explorer
Сопоставления приема используются во время приема для сопоставления входящих данных со столбцами в таблицах.
Обозреватель данных поддерживает различные типы сопоставлений, ориентированные на строки (CSV, JSON, AVRO и W3CLOGFILE), а также ориентированные на столбцы (Parquet и ORC).
Сопоставления приема могут быть предварительно созданы и можно ссылаться из команды приема с помощью ingestionMappingReference
параметров. Прием возможен без указания сопоставления. Дополнительные сведения см. в разделе сопоставления удостоверений.
Каждый элемент в списке сопоставлений создается из трех полей:
Свойство | Обязательное поле | Описание |
---|---|---|
Column | ✔️ | Имя целевого столбца в таблице. |
Datatype | Тип данных, с помощью которого создается сопоставленный столбец, если он еще не существует в таблице. | |
Свойства | Контейнер свойств, содержащий свойства, относящиеся к каждому сопоставлению, как описано на каждой странице типа сопоставления. |
Внимание
Для приема в очереди:
- Если таблица, указанная в сопоставлении, не существует в базе данных, она создается автоматически, учитывая, что допустимые типы данных указаны для всех столбцов.
- Если столбец, на который ссылается сопоставление, не существует в таблице, он автоматически добавляется в таблицу в качестве последнего столбца при первом приеме данных для этого столбца, если для этого столбца указан допустимый тип данных. Чтобы добавить новые столбцы в сопоставление, используйте команду сопоставления .alter ingestion.
- Данные пакетируются с помощью свойств приема. Чем больше уникальных свойств сопоставления приема, таких как различные значения ConstValue, тем больше фрагментировано прием становится, что может привести к снижению производительности.
Поддерживаемые типы сопоставлений
В следующей таблице определяются типы сопоставления, используемые при приеме или запросе внешних данных определенного формата.
Формат данных | Тип сопоставления |
---|---|
CSV | Сопоставление CSV |
TSV | Сопоставление CSV |
TSVe | Сопоставление CSV |
PSV | Сопоставление CSV |
SCSV | Сопоставление CSV |
SOHsv | Сопоставление CSV |
TXT | Сопоставление CSV |
НЕОБРАБОТАННЫЕ | Сопоставление CSV |
JSON | Сопоставление JSON |
AVRO; | Сопоставление AVRO |
APACHEAVRO | Сопоставление AVRO |
Parquet | Сопоставление Parquet |
ORC | Сопоставление ORC |
W3CLOGFILE | Сопоставление W3CLOGFILE |
Сопоставление удостоверений
Прием возможен без указания ingestionMapping
или ingestionMappingReference
свойств. Данные сопоставляются с помощью сопоставления данных удостоверений, производных от схемы таблицы. Схема таблицы остается той же. format
необходимо указать свойство. См . форматы приема.
Тип формата | Формат | Логика сопоставления |
---|---|---|
Табличные форматы данных с определенным порядком столбцов, например форматы с разделителями или однострочные форматы. | CSV, TSV, TSVe, PSV, SCSV, Txt, SOHsv, Raw | Все столбцы таблицы сопоставляются в соответствующем порядке с столбцами данных, чтобы они отображались в источнике данных. Тип данных столбца взят из схемы таблицы. |
Форматы с именованными столбцами или записями с именованными полями. | JSON, Parquet, Avro, ApacheAvro, Orc, W3CLOGFILE | Все столбцы таблицы сопоставляются со столбцами данных или полями записей с одинаковым именем (учитывает регистр). Тип данных столбца взят из схемы таблицы. |
Предупреждение
Любое несоответствие между схемой таблицы и структурой данных, например типами данных столбцов или полей, именами столбцов или полей или их числом, может привести к пустому или неправильному приему данных.
Преобразования сопоставлений
Некоторые сопоставления формата данных (Parquet, JSON и AVRO) поддерживают простые и полезные преобразования времени приема. Если сценарий требует более сложной обработки во время приема, используйте политику обновления, которая позволяет определить упрощенную обработку с помощью выражения KQL.
Преобразование зависимостей пути | Description | Условия |
---|---|---|
PropertyBagArrayToDictionary | Преобразует массив свойств JSON, например {events:[{"n1":"v1"},{"n2":"v2"}]} в словарь и сериализует его в допустимый документ JSON, например {"n1":"v1","n2":"v2"} . |
Доступно для JSON типов , AVRO Parquet и ORC сопоставлений. |
SourceLocation | Имя артефакта хранилища, предоставляющего данные, строку типа (например, поле BaseUri большого двоичного объекта). | Доступно для CSV типов , , AVRO JSON Parquet , ORC и W3CLOGFILE сопоставлений. |
SourceLineNumber | Смещение относительно артефакта хранилища, тип long (начиная с "1" и добавок для каждой новой записи). | Доступно для CSV типов , , AVRO JSON Parquet , ORC и W3CLOGFILE сопоставлений. |
DateTimeFromUnixSeconds; | Преобразует число, представляющее unix-время (секунды с 1970-01-01) в строку даты и времени UTC. | Доступно для CSV типов , JSON и AVRO Parquet ORC сопоставлений. |
DateTimeFromUnixMilliseconds; | Преобразует число, представляющее unix-time (миллисекунда с 1970-01-01) в строку даты и времени UTC. | Доступно для CSV типов , JSON и AVRO Parquet ORC сопоставлений. |
DateTimeFromUnixMicroseconds; | Преобразует число, представляющее unix-time (микросекунд с 1970-01-01) в строку datetime в формате UTC. | Доступно для CSV типов , JSON и AVRO Parquet ORC сопоставлений. |
DateTimeFromUnixNanoseconds. | Преобразует число, представляющее unix-time (nanoseconds с 1970-01-01) в строку datetime в формате UTC. | Доступно для CSV типов , JSON и AVRO Parquet ORC сопоставлений. |
DropMappedFields | Сопоставляет объект в документе JSON с столбцом и удаляет все вложенные поля, на которые уже ссылается другие сопоставления столбцов. | Доступно для JSON типов , AVRO Parquet и ORC сопоставлений. |
BytesAsBase64 | Обрабатывает данные как массив байтов и преобразует его в строку в кодировке Base64. | Доступно для AVRO типа сопоставления. Для ApacheAvro формата тип схемы сопоставленного поля данных должен быть bytes или fixed тип Avro. Для Avro формата поле должно быть массивом, содержащим значения байтов из диапазона [0–255]. null получает прием, если данные не представляют допустимый массив байтов. |
Примеры преобразования сопоставления
DropMappedFields
преобразование:
Учитывая следующее содержимое JSON:
{
"Time": "2012-01-15T10:45",
"Props": {
"EventName": "CustomEvent",
"Revenue": 0.456
}
}
Следующее сопоставление данных сопоставляет весь Props
объект с динамическим столбцом Props
, исключая уже сопоставленные столбцы (Props.EventName
уже сопоставлены с столбцами EventName
, поэтому они исключены).
[
{ "Column": "Time", "Properties": { "Path": "$.Time" } },
{ "Column": "EventName", "Properties": { "Path": "$.Props.EventName" } },
{ "Column": "Props", "Properties": { "Path": "$.Props", "Transform":"DropMappedFields" } },
]
Данные приема выглядят следующим образом:
Время | EventName | Свойства |
---|---|---|
2012-01-15T10:45 |
CustomEvent |
{"Revenue": 0.456} |
BytesAsBase64
преобразование
Учитывая следующее содержимое файла AVRO:
{
"Time": "2012-01-15T10:45",
"Props": {
"id": [227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52]
}
}
Следующее сопоставление данных сопоставляет столбец идентификатора дважды и без преобразования.
[
{ "Column": "ID", "Properties": { "Path": "$.props.id" } },
{ "Column": "Base64EncodedId", "Properties": { "Path": "$.props.id", "Transform":"BytesAsBase64" } },
]
Данные приема выглядят следующим образом:
Идентификатор | Base64EncodedId |
---|---|
[227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52] |
44MiXBxbQUiGigmFMy1oNA== |