Как получить доступ к базе данных Azure, содержащей данные из запроса Azure Log Analytics

У меня есть рабочий запрос для анализа данных моего приложения. в настоящее время он анализирует данные за последние две недели с ago(14d).

Теперь я хочу использовать значение, содержащее дату выпуска текущей версии приложения. Поскольку я не нашел способа добавить новую таблицу базы данных в уже существующую базу данных, содержащую данные журнала в Azure Analytics, я создал новую базу данных в Azure и ввел туда свои данные.

Теперь я просто не знаю, могу ли я вообще получить доступ к этой базе данных из интерфейса веб-запросов аналитики журналов Azure или мне нужно использовать для этого какой-то другой инструмент ?.

я надеюсь, что кто-нибудь может мне в этом помочь. Как всегда с лазурным, есть много чего прочитать об этом, но ничего конкретного по моей проблеме (или, по крайней мере, я еще не нашел).

И да, я знаю, как вставить данные в запрос с помощью let, но поскольку я хочу использовать одни и те же данные в разных запросах, я предпочитаю внешнее расположение, к которому можно получить доступ из всех запросов.

Спасибо заранее. Maverick


person Maverick1st    schedule 21.08.2020    source источник


Ответы (2)


Вы не можете напрямую получить доступ к базе данных. Лучше использовать файл csv / json в хранилище BLOB-объектов. В следующем примере я загрузил txt-файл с такими данными csv:

2a6c024f-9093-434c-b3b1-000821a15b1a,"Customer 1"
28a658a8-5466-45ea-862c-003b20507dd4,"Customer 2"
c46fb949-d807-4eea-8de4-005dd4beb39a,"Customer 3"
e05b67ee-ff83-4805-b004-0064449f196c,"Customer 4"

Затем я могу ссылаться на эти данные из аналитики журнала / аналитики приложений в запросе, подобном этому, используя externaldata оператор:

let customers = externaldata(id:string, companyName:string)  [
    h@"https://xxx.blob.core.windows.net/myblob.txt?sv=2019-10-10&st=2020-09-29T11%3A39%3A22Z&se=2050-09-30T11%3A39%3A00Z&sr=b&sp=r&sig=xxx"  
]  with(format="csv");
requests
| extend CompanyId = tostring(customDimensions.CustomerId)
| join kind=leftouter
(
    customers
)
on $left.CompanyId == $right.id

URL-адрес https://xxx.blob.core.windows.net/myblob.txt?sv=2019-10-10&st=2020-09-29T11%3A39%3A22Z&se=2050-09-30T11%3A39%3A00Z&sr=b&sp=r&sig=xxx создается путем создания URL-адреса, включающего токен SAS, с помощью Microsoft Обозреватель службы хранилища Azure, выберите большой двоичный объект и щелкните правой кнопкой мыши ›Получить подпись общего доступа. Во всплывающем окне создайте SAS, а затем скопируйте uri.

person Peter Bons    schedule 13.10.2020
comment
tyvm за ответ. Я попробую, как только у меня будет время. Несмотря на то, что сейчас я договорился со своим начальником о другом решении, это определенно пригодится мне для некоторых других аналитических инструментов. - person Maverick1st; 15.10.2020

Я знаю, что Log Analytics использует Azure Data Explorer на сервере, а в Azure Data Explorer есть функция для использования внешних таблиц в запросах, но я не уверен, поддерживает ли Log Analytics внешние таблицы.

Внешние таблицы в обозревателе данных Azure https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/schema-entities/externaltables#:%7E:text=An%20external%20table%20is%20aи%20managed%20outside%20the%20cluster.

person Hassan Raza    schedule 22.08.2020
comment
Я предполагаю, что основная проблема здесь заключается в том, чтобы сообщить аналитике журнала Azure, что строка подключения позволяет подключиться к этой внешней таблице базы данных. Пока не нашел решения по этому поводу. - person Maverick1st; 24.08.2020
comment
log Analytics может принимать данные из BLOB хранилища Azure, поэтому, по крайней мере, теоретически вы можете добавить свои внешние данные в BLOB хранилища Azure и загрузить их в Log Analytics, а затем написать свой запрос. Опять же, это все теоретически. Сам я никогда не пробовал. Я добавил свои журналы W3C и HTTP из учетной записи хранилища BLOB-объектов Azure в Log Analytics. - person Hassan Raza; 24.08.2020
comment
Это звучит неплохо, даже несмотря на то, что капля может быть немного слишком большой для того, что мне нужно. Не могли бы вы в качестве ответа привести мне пример того, как вы это сделали? если это сработает для меня, и это звучит так, я выберу его как правильный ответ. - person Maverick1st; 25.08.2020
comment
я использовал следующий пример: docs.microsoft .com / ru-ru / azure / azure-monitor / platform / - person Hassan Raza; 26.08.2020