Как получить данные из нескольких ресурсов с разной схемой

Мне нужно централизовать журналы из нескольких ресурсов с другой схемой

Например

Схема в source1: отметка времени, код ошибки, описание ошибки

Схема в source2: отметка времени, идентификатор события, описание события

Таблица создается как

.create table TraceLog (Timestamp:datetime, errorcode:string, errordescription:string, eventId:string, eventdescription:string)

Для приема данных из источника1 я просто использую

.ingest inline into Table TraceLog <| 2020-05-01, "error code", "test error description"

Для данных с soruce2, кроме

.ingest inline into Table TraceLog <| 2020-05-01, "", "", "test event ID", "test event description"

любой другой способ приема данных без указания столбца в source1?


person LES    schedule 17.05.2020    source источник


Ответы (1)


Самый простой вариант - использовать сопоставления приема для разных источников:

https://docs.microsoft.com/en-us/azure/data-explorer/kusto/management/mappings

Если данные требуют дополнительного преобразования (например, синтаксического анализа): вы можете использовать Политику обновления:

https://docs.microsoft.com/en-us/azure/data-explorer/kusto/management/updatepolicy

person Alexander Sloutsky    schedule 17.05.2020
comment
Спасибо за ответ, я попытался выполнить команду ниже, но не смог. Create table TraceLog ingestion csv mapping testmapping '[{column: TIMESTAMP, DataType: datetime, Properties: {Ordinal: 0}}, {column: EventID, DataType: string, Properties: { Ordinal: 1}}, {column: EventDescription, DataType: string, Properties: {Ordinal: 2}}] '.ingest в таблице TraceLog (2020-05-17,183, перезапустить службу) с помощью (format =' csv ', ingestionMappingName = тестовая карта) - person LES; 18.05.2020
comment
Спасибо, я должен загрузить CSV-файл в Azure blob вместо использования прямого значения - person LES; 18.05.2020