Power BI 동적 매개 변수와 함께 Azure Data Explorer의 고급 사용
4414 단어 powerbiazureazuredataexplorerpbi
Power BI에서 사용할 수 없는 Azure Data Explorer 기능
Power BI에서 사용할 수 없는 백분위수 계산 및 정규식 처리와 같은 일부 기능이 있습니다. 즉, 보고서에서 사용하려면 KQL을 사용해야 합니다. 그러나 쿼리 초기에 필터를 "주입"하지 않으면 클러스터가 필요하지 않은 데이터를 계산하는 데 많은 시간과 리소스를 낭비하게 됩니다.
StormEvents 샘플을 계속 살펴보겠습니다. EventType에 의해 발생한 총 피해의 50번째, 95번째 및 99번째 백분위수를 알고 싶다고 가정해 보겠습니다. Azure Data Explorer에서 이러한 쿼리를 작성한다면 다음과 같은 결과가 나올 것입니다.
StormEvents
| extend TotalDamage = DamageCrops + DamageProperty
| summarize percentiles(TotalDamage, 50, 95, 99) by EventType
그리고 특정 State에 대한 데이터에 관심이 있는 경우 가능한 한 테이블 이름에 가깝게 필터를 추가합니다. 계산 노력을 줄이기 위해 조기에 필터링하려고 합니다.
StormEvents
| where State == 'ALABAMA'
| extend TotalDamage = DamageCrops + DamageProperty
| summarize percentiles(TotalDamage, 50, 95, 99) by EventType
백분위수는 Power BI에서 지원되지 않으므로 내 기본 쿼리는 위의 첫 번째 KQL 쿼리와 유사하며 마지막에 모든 필터링이 추가됩니다. 그러나 첫 번째 쿼리는 상태 열을 반환하지 않으므로 이를 기준으로 필터링할 수 없습니다.
// THIS DOES NOT WORK
StormEvents
| extend TotalDamage = DamageCrops + DamageProperty
| summarize percentiles(TotalDamage, 50, 95, 99) by EventType
| where State == 'ALABAMA'
이것은 동적 M 매개변수가 완벽하게 맞는 곳입니다. 원하는 쿼리를 생성하기 위해 이전 게시물에서 사용한 것과 동일한 쿼리 구성 메커니즘을 사용하여 동적 매개 변수를 사용하여 쿼리를 생성할 수 있습니다.
let
StateFilter = if (SelectedStates is null or Text.Length(SelectedStates) = 0) then "" else " | where State == '" & SelectedStates & "' ",
Query = Text.Combine({
"StormEvents ",
StateFilter,
"| extend TotalDamage = DamageCrops + DamageProperty | summarize (P50, P95, P99)=percentiles(TotalDamage, 50, 95, 99) by EventType"
}),
Source = AzureDataExplorer.Contents("https://help.kusto.windows.net", "Samples", Query, [MaxRows=null, MaxSize=null, NoTruncate=null, AdditionalSetStatements=null])
in
Source
그러면 다음과 같은 쿼리가 생성됩니다.
StormEvents | where State == 'ALASKA' | extend TotalDamage = DamageCrops + DamageProperty | summarize (P50, P95, P99)=percentiles(TotalDamage, 50, 95, 99) by EventType
// The part below is generated by PowerBI for the visualization
| summarize ["a0"]=sum(["P99"]), ["a1"]=sum(["P50"]) by ["EventType"]
| limit 1000001
그리고 아래 애니메이션에서 최종 결과를 볼 수 있습니다.
동적 M 매개 변수를 사용하여 Azure Data Explorer 함수 호출
Dynamic M 매개 변수가 빛나는 또 다른 시나리오는 Azure Data Explorer Functions를 사용하는 경우입니다. ADX 함수를 사용하면 복잡한 쿼리를 작성하고 간단한 방식으로 재사용할 수 있습니다. 함수는 매개변수를 허용할 수 있으므로 동적 M 매개변수를 전달하여 데이터세트를 크게 단순화할 수 있습니다.
내 클러스터에 다음 ADX 함수를 생성했다고 가정해 보겠습니다.
.create-or-alter function StormsReportedBySource(source:string) {
StormEvents
| where Source == source
}
이제 다음과 같이 내 SelectedSources 매개 변수와 함께 Power BI에서 이 ADX 함수를 사용할 수 있습니다.
let
Source = AzureDataExplorer.Contents("help", "Samples", null, [MaxRows=null, MaxSize=null, NoTruncate=null, AdditionalSetStatements=null]),
StormsReportedBySource = Source{[Name="StormsReportedBySource"]}[Data],
Data = StormsReportedBySource(SelectedSources)
in
Data
그러면 시각화에서 사용할 수 있는 데이터 세트가 생성됩니다.
Dynamic M 매개 변수와 함께 Azure Data Explorer 함수 사용
보시다시피 – Azure 데이터 탐색기 쿼리에 존재하는 많은 복잡성을 숨길 수 있는 매우 간단한 Power BI 데이터 세트 쿼리를 만듭니다. 이를 통해 모든 고급 기능을 사용하여 Azure 데이터 탐색기에서 힘든 쿼리를 수행하고 쿼리가 최대한 효율적이도록 올바른 필터를 전달하도록 할 수 있습니다.
Reference
이 문제에 관하여(Power BI 동적 매개 변수와 함께 Azure Data Explorer의 고급 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/saguiitay/advanced-usages-of-azure-data-explorer-with-power-bi-dynamic-parameters-4417텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)