Сопоставления приема
Сопоставления приема используются во время приема для сопоставления входящих данных со столбцами внутри таблиц.
Data Explorer поддерживает различные типы сопоставлений, как ориентированных на строки (CSV, JSON, AVRO и W3CLOGFILE), так и на основе столбцов (Parquet и ORC).
Сопоставления приема можно предварительно создать , на которые можно ссылаться из команды приема с помощью ingestionMappingReference
параметров. Хотя прием возможен без указания сопоставления. Дополнительные сведения см. в разделе Сопоставление удостоверений.
Каждый элемент в списке сопоставления создается из трех полей:
Свойство | Обязательно | Описание |
---|---|---|
Столбец | ✔️ | Имя целевого столбца в таблице. |
Datatype | Тип данных, с помощью которого создается сопоставленный столбец, если он еще не существует в таблице. | |
Свойства | Контейнер свойств, содержащий свойства, характерные для каждого сопоставления, как описано на странице каждого конкретного типа сопоставления. |
Важно!
Для приема в очереди:
- Если таблица, на которую ссылается сопоставление, не существует в базе данных, она создается автоматически, если для всех столбцов указаны допустимые типы данных.
- Если столбец, указанный в сопоставлении, не существует в таблице, он автоматически добавляется в таблицу в качестве последнего столбца при первом приеме данных для этого столбца при наличии допустимого типа данных для столбца. Чтобы добавить новые столбцы в сопоставление, используйте команду .alter ingestion mapping.
- Данные пакетируются с помощью свойств приема. Чем больше различных используемых свойств сопоставления приема, таких как различные значения ConstValue, тем более фрагментарным становится прием, что может привести к снижению производительности.
Поддерживаемые типы сопоставления
В следующей таблице определены типы сопоставлений, которые будут использоваться при приеме или запросе внешних данных определенного формата.
Формат данных | Тип сопоставления |
---|---|
CSV | Сопоставление CSV |
TSV | Сопоставление CSV |
TSVe | Сопоставление CSV |
PSV | Сопоставление CSV |
SCSV | Сопоставление CSV |
SOHsv | Сопоставление CSV |
TXT | Сопоставление CSV |
RAW | Сопоставление 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.
Преобразование с зависимостью от пути | Описание | Условия |
---|---|---|
PropertyBagArrayToDictionary | Преобразует массив свойств JSON, например {events:[{"n1":"v1"},{"n2":"v2"}]} , в словарь и сериализует его в допустимый документ JSON, например {"n1":"v1","n2":"v2"} . |
Доступно для JSON типов сопоставления , Parquet и AVRO ORC . |
SourceLocation | Имя артефакта хранилища, который предоставил данные, введите строку (например, поле BaseUri большого двоичного объекта). | Доступно для CSV типов сопоставления , JSON , Parquet , AVRO и ORC W3CLOGFILE . |
SourceLineNumber | Смещение относительно этого артефакта хранилища, тип long (начиная с "1" и увеличивается для каждой новой записи). | Доступно в типах JSON сопоставления , Parquet , AVRO и ORC W3CLOGFILE . |
DateTimeFromUnixSeconds; | Преобразует число, представляющее unix-время (секунды с 1970-01-01) в строку даты и времени в формате UTC. | Доступно для JSON типов сопоставления , Parquet и AVRO ORC . |
DateTimeFromUnixMilliseconds; | Преобразует число, представляющее unix-время (миллисекунды с 1970-01-01), в строку даты и времени в формате UTC. | Доступно для JSON типов сопоставления , Parquet и AVRO ORC . |
DateTimeFromUnixMicroseconds; | Преобразует число, представляющее unix-время (микросекунд с 1970-01-01), в строку даты и времени UTC. | Доступно для JSON типов сопоставления , Parquet AVRO и ORC . |
DateTimeFromUnixNanoseconds. | Преобразует число, представляющее unix-время (наносекунды с 1970-01-01) в строку даты и времени в формате UTC. | Доступно для JSON типов сопоставления , Parquet AVRO и ORC . |
DropMappedFields | Сопоставляет объект в документе JSON со столбцом и удаляет все вложенные поля, на которые уже ссылаются другие сопоставления столбцов. | Доступно для JSON типов сопоставления , Parquet AVRO и 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" } },
]
Данные, которые были в приеме, выглядят следующим образом:
Time | 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]
}
}
В следующем сопоставлении данных столбец id сопоставляется дважды с преобразованием и без нее.
[
{ "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 как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по