OMS Log Analytics 8 МБ PowerBI Query Limit обходные пути?
Поэтому я запрашиваю данные напрямую из аналитики OMS Log с помощью PowerBI Desktop и считаю, что для данных, возвращаемых запросом, существует жесткое ограничение в 8 МБ. У меня проблема в том, что мне нужно запросить около 30 000 строк, но достигнуть ограничения в 8 МБ около 18 000 строк. Можно ли разбить запрос, например, запрос1 будет возвращать строки 1 - 18 000, запрос 2 будет возвращать 18 001 - 28 000 и т. Д., Затем я могу объединить запросы в PowerBI, чтобы получить представление обо всех данных?
Проблема в моем опыте в этой области, в частности DAX довольно ограничен, поэтому я не знаю, как это указать в расширенном редакторе. Любая помощь здесь будет высоко ценится.
Спасибо!
0 ответов
Та же проблема. Решил это.
Моя потребность: у меня есть таблица в Azure LogAnalytics (LA), которая накапливает около 35 000 строк в день. Мне нужно было перенести все строки из Лос-Анджелеса в PowerBi для анализа.
Моя проблема: я создал нужный KQL-запрос в веб-интерфейсе LA Logs Web UX. Затем я выбрал функцию "Экспорт -> Экспорт в запрос PowerBI M". Вставил его в ПУСТОЙ запрос в PowerBi. Автор. И я заметил несколько странных поступков:
1) - Как вы сказали, я получал около 35 тысяч строк данных, каждый запрос немного урезал бы первую дату в моем диапазоне KQL.
2) - Кроме того, я обнаружил, что каждый день запрос произвольно обрезает некоторые строки - как будто он "угадывает", какие данные мне не нужны, чтобы соответствовать лимиту.
3) - Независимо от того, какой пункт KQL |where TimeGenerated >= ago(xd) я написал, я явно не собирался возвращать больше, чем ограничения, которые он удерживал.
Мое решение - и оно отлично работает. В PowerQuery я создал новую пустую таблицу в PowerQuery/M (не таблицу DAX!). В этой таблице я использовал DateTimeZone.UtcNow(), чтобы начать с сегодняшней даты, затем я добавил столбец с именем [Days Back] и добавил строки для -1,-2,-3...-7. Затем, добавив немного M, я добавил еще одно двоеточие, которое вычитает сегодня из дней назад, давая мне историю дат. .
Теперь у меня есть таблица, из которой я могу перебирать каждую дату в истории и передавать своему KQL-запросу parm1 для: | where TimeGeneratedDate == todatetime('"& Date.ToText(TimeGeneratedDateLoop) & "')
Как видите, после того, как я отредактировал свой основной запрос в Лос-Анджелесе, чтобы использовать TimeGeneratedDateLoop в качестве параметра, теперь я могу получать количество записей за каждый полный день без превышения лимита в Лос-Анджелесе. Обратите внимание, что в моем случае ни один день не нарушает ограничение в 8 МБ. Если у вас есть, то вы можете решить эту проблему, сделав 12-часовые поломки вместо полного рабочего дня.
Вот мой последний M-запрос для функции:
ПРИМЕЧАНИЕ. Я также удалил эту строку из предварительно сгенерированного запроса: "prefer"="ai.response-thinning=true"
<- Не знаю, помогло ли это, но установка значения false не сработала.
let
FxDailyQuery = (TimeGeneratedDateLoop as date) =>
let
AnalyticsQuery =
let
Source = Json.Document(Web.Contents(
"https://api.loganalytics.io/v1/workspaces/xxxxx-202d-xxxx-a351-xxxxxxxxxxxx/query",
[
Query = [#"query"
= "YourLogAnalyticsTbl
| extend TimeGeneratedDate = bin(TimeGenerated, 1d)
| where notempty(Col1)
| where notempty(Col2)
| where TimeGenerated >= ago(30d)
| where TimeGeneratedDate == todatetime('"& Date.ToText(TimeGeneratedDateLoop) & "')
", #"x-ms-app" = "OmsAnalyticsPBI"],
Timeout = #duration(0, 0, 4, 0)
]
)),
TypeMap = #table({"AnalyticsTypes", "Type"}, {
{"string", Text.Type},
{"int", Int32.Type},
{"long", Int64.Type},
{"real", Double.Type},
{"timespan", Duration.Type},
{"datetime", DateTimeZone.Type},
{"bool", Logical.Type},
{"guid", Text.Type},
{"dynamic", Text.Type}
}),
DataTable = Source[tables]{0},
Columns = Table.FromRecords(DataTable[columns]),
ColumnsWithType = Table.Join(Columns, {"type"}, TypeMap, {"AnalyticsTypes"}),
Rows = Table.FromRows(DataTable[rows], Columns[name]),
Table = Table.TransformColumnTypes(Rows, Table.ToList(
ColumnsWithType,
(c) => {c{0}, c{3}}
))
in
Table
in
AnalyticsQuery
in
FxDailyQuery