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

#azure #analytics #azure-data-explorer #azure-analytics

#azure #аналитика #azure-data-explorer #azure-аналитика

Вопрос:

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

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

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

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

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

Заранее спасибо. Maverick

Ответ №1:

Вы не можете получить доступ к базе данных напрямую. Вам лучше использовать файл csv / json в хранилище больших двоичных объектов. В следующем примере я загрузил текстовый файл с данными 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"
  

Затем я могу ссылаться на эти данные из log analytics / application insights в запросе, подобном этому, используя оператор externaldata:

 let customers = externaldata(id:string, companyName:string)  [
    h@"https://xxx.blob.core.windows.net/myblob.txt?sv=2019-10-10amp;st=2020-09-29T11:39:22Zamp;se=2050-09-30T11:39:00Zamp;sr=bamp;sp=ramp;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-10amp;st=2020-09-29T11:39:22Zamp;se=2050-09-30T11:39:00Zamp;sr=bamp;sp=ramp;sig=xxx создается путем создания URL, включающего токен SAS, с помощью проводника хранилища Microsoft Azure, выбора большого двоичного объекта и последующего щелчка правой кнопкой мыши -> Получить подпись общего доступа. Во всплывающем окне создайте SAS, а затем скопируйте uri.

Комментарии:

1. tyvm за ваш ответ. я попробую это, как только у меня будет время. несмотря на то, что сейчас я договорился со своим боссом о другом решении, это определенно пригодится мне для некоторых других аналитических задач.

Ответ №2:

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

Внешние таблицы в Azure Data Explorer https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/schema-entities/externaltables#:~:text=An external table is a,and managed outside the cluster .

Комментарии:

1. я предполагаю, что основная проблема здесь заключается в том, чтобы сообщить Azure log analytics строку подключения для возможности подключения к этой внешней таблице базы данных. Пока не нашел никакого решения по этому вопросу.

2. log analytics может принимать данные из большого двоичного объекта Azure Storage, поэтому, по крайней мере, теоретически вы можете добавить свои внешние данные в большой двоичный объект Azure Storage и включить их в Log Analytics, а затем написать свой запрос. Опять же, это все в теории, я никогда не пробовал это сам. Я загрузил свои журналы W3C и HTTP из учетной записи хранилища больших двоичных объектов Azure в Log Analytics.

3. Это звучит как правильный путь, хотя большой двоичный объект может быть немного больше того, что мне нужно. Не могли бы вы привести мне пример того, как вы это сделали в качестве ответа? если это сработает для меня, и это звучит так, я выберу это как правильный ответ.

4. я использовал следующий пример: learn.microsoft.com/en-us/azure/azure-monitor/platform /…