Сопоставления приема
Сопоставления приема используются во время приема для сопоставления входящих данных со столбцами в таблицах.
Обозреватель данных поддерживает различные типы сопоставлений, ориентированные на строки (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 типов , JSON и AVRO Parquet ORC W3CLOGFILE сопоставлений. |
SourceLineNumber | Смещение относительно артефакта хранилища, тип long (начиная с "1" и добавок для каждой новой записи). | Доступно для CSV типов , JSON и AVRO Parquet ORC W3CLOGFILE сопоставлений. |
DateTimeFromUnixSeconds; | Преобразует число, представляющее unix-время (секунды с 1970-01-01) в строку даты и времени UTC. | Доступно для JSON типов , AVRO Parquet и ORC сопоставлений. |
DateTimeFromUnixMilliseconds; | Преобразует число, представляющее unix-time (миллисекунда с 1970-01-01) в строку даты и времени UTC. | Доступно для JSON типов , AVRO Parquet и ORC сопоставлений. |
DateTimeFromUnixMicroseconds; | Преобразует число, представляющее unix-time (микросекунд с 1970-01-01) в строку datetime в формате UTC. | Доступно для JSON типов , AVRO Parquet и ORC сопоставлений. |
DateTimeFromUnixNanoseconds. | Преобразует число, представляющее unix-time (nanoseconds с 1970-01-01) в строку datetime в формате UTC. | Доступно для 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== |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по