다음을 통해 공유


Azure Data Explorer for Power BI에서 동적 M 쿼리 매개 변수 사용

Azure 데이터 탐색기는 로그 및 원격 분석 데이터에 사용 가능한 빠르고 확장성이 우수한 데이터 탐색 서비스입니다. Power BI는 데이터를 시각화하고 조직 전체에서 결과를 공유할 수 있는 비즈니스 분석 솔루션입니다. 동적 M 매개 변수를 사용하면 뷰어에서 필터 또는 슬라이서로 KQL 쿼리 매개 변수의 값을 설정할 수 있는 기능을 제공하는 Power BI 보고서를 만들 수 있습니다.

이 문서에서는 새 Power BI 프로젝트로 시작하고 샘플 데이터를 사용하여 KQL 함수에 연결된 동적 M 쿼리의 데이터를 필터링하는 슬라이서를 사용하는 보고서를 만듭니다.

사전 요구 사항

이 문서를 완료하려면 다음이 필요합니다.

KQL 함수에 직접 쿼리 연결 추가

먼저 Power BI용 커넥터를 설정합니다.

  1. Power BI Desktop의 탭에서 데이터 가져오기, 자세히를 차례로 선택합니다.

    추가 가져오기 옵션을 보여 주는 데이터 가져오기 메뉴의 스크린샷.

  2. Azure Data Explorer를 검색한 다음, Azure Data Explorer, 연결을 차례로 선택합니다.

    커넥터 선택을 보여 주는 검색 화면 스크린샷.

  3. 커넥터 화면에서 다음 정보로 양식을 작성합니다.

    클러스터, 데이터베이스 및 테이블 옵션을 보여 주는 연결 화면 스크린샷.

    설정 필드 설명
    클러스터 https://help.kusto.windows.net 도움말 클러스터의 URL입니다. 다른 클러스터의 경우 이 URL은 https://<ClusterName>.<Region>.kusto.windows.net 형식입니다.
    데이터베이스 비워 둠 연결 중인 클러스터에서 호스트되는 데이터베이스입니다. 이후 단계에서 이 데이터베이스를 선택하게 됩니다.
    테이블 이름 비워 둠 데이터베이스의 테이블 중 하나 또는 StormEvents | take 1000 이후 단계에서 이 데이터베이스를 선택하게 됩니다.
    고급 옵션 비워 둠 쿼리에 대한 옵션(예: 결과 세트 크기)입니다.
    데이터 연결 모드 DirectQuery Power BI가 데이터를 가져올지 또는 동적 M 쿼리에 직접 연결될지를 결정합니다.

    참고

    가져오기 모드에서 데이터는 Power BI로 이동합니다. DirectQuery 모드에서 데이터는 클러스터에서 직접 쿼리됩니다.

    다음과 같은 경우 가져오기 모드를 사용합니다.

    • 데이터 세트가 작습니다.
    • 근 실시간 데이터가 필요하지 않은 경우
    • 데이터가 이미 집계되었거나 Kusto에서 집계를 수행하는 경우

    다음과 같은 경우 DirectQuery 모드를 사용합니다.

    • 데이터 세트가 매우 큽니다.
    • 근 실시간 데이터가 필요한 경우

    고급 옵션

    설정 샘플 값 필드 설명
    쿼리 결과 레코드 수 제한 300000 결과에 반환할 최대 레코드 수
    쿼리 결과 데이터 크기 제한 4194304 결과에 반환할 최대 데이터 크기(바이트)
    결과 집합 잘림 사용 안 함 true notruncation 요청 옵션을 사용하여 결과 잘림 사용/사용 안 함
    추가 set 문 set query_datascope=hotcache 쿼리 기간에 대한 요청 속성을 설정합니다. 요청 속성은 쿼리가 실행되고 결과를 반환하는 방법을 제어합니다.
  4. 도움말 클러스터에 아직 연결되지 않은 경우 로그인합니다. 조직 계정을 사용하여 로그인한 다음 연결을 선택합니다.

    로그인 옵션을 보여 주는 인증 화면 스크린샷.

  5. 탐색기 화면에서 다음을 수행합니다.

    1. 샘플 데이터베이스를 확장합니다.
    2. EventsByStates 함수를 선택합니다.
    3. EventTypeParam에서 강풍을 입력한 다음, 적용을 선택하여 데이터를 미리 봅니다.
    4. 데이터 변환을 선택합니다.

    기능 선택을 보여 주는 탐색 화면의 스크린샷.

    이 함수는 Power Query 편집기에서 동적 M 쿼리로 열리며 여기에서 동적 M 쿼리와 함께 사용할 매개 변수를 만드는 과정을 진행합니다.

    참고

    EventsByStates 함수는 Dynamic M 쿼리 매개 변수의 기능을 테스트하는 데 사용할 수 있는 읽기 전용 샘플 함수입니다. 다중을 지원하고 매개 변수에 대한 모든 값을 선택하는 최종 버전을 정의합니다. 자체 클러스터에서 단일 선택 기능을 테스트하고 기능을 점진적으로 테스트하려는 경우 다음과 같은 함수의 단일 선택 정의로 시작할 수 있습니다.

    .create-or-alter function EventsByStates (EventTypeParam:string)
    {
      StormEvents
      | where EventType == EventTypeParam
      | summarize Events=count() by EventType, State
    }
    
  6. Power Query 편집기에서 다음을 수행합니다.

    1. 매개 변수 관리>새 매개 변수를 선택합니다.

    2. 다음 정보로 세부 정보를 입력한 다음, 확인을 선택합니다.

      설정 제안 값 Description
      Name Type_Param 매개 변수의 이름입니다. 만들 수 있는 다른 매개 변수를 쉽게 인식하고 구별할 수 있도록 _Param과 같은 접미사를 추가하는 것이 좋습니다.
      Type 텍스트 매개 변수의 형식입니다. 매개 변수의 형식은 KQL 함수에 선언된 형식과 일치해야 합니다. Power BI의 텍스트는 KQL의 문자열과 동일합니다.
      현재 값 강풍 매개 변수의 값입니다. 이 필드에 대한 기본값을 제공해야 합니다.

    새 매개변수 생성을 보여 주는 매개변수 관리 화면의 스크린샷.

  7. 탐색 화면으로 돌아가서 M 함수의 매개 변수 값을 새 매개 변수로 바꿉니다.

    M 함수 매개변수의 대체를 보여 주는 탐색 화면의 스크린샷.

  8. 필요에 따라 단계를 반복하여 더 많은 매개 변수를 만들고 동적 M 쿼리에서 대체합니다.

  9. 보고서 슬라이서에 대한 값이 있는 테이블을 만듭니다.

    참고

    테이블에는 필터링 기준으로 사용할 이벤트 유형이 나열됩니다. 테이블을 가져오거나 새 테이블을 만들고 수동으로 데이터를 입력할 수 있습니다.

    1. 탭에서 최근 원본을 선택한 다음, 도움말 클러스터를 선택합니다.

      도움말 클러스터의 선택을 보여 주는 홈 화면의 스크린샷.

    2. 탐색기 화면에서 샘플 데이터베이스를 확장하고 StormEvents 테이블을 선택한 다음, 확인을 선택합니다.

      테이블 선택을 보여 주는 탐색 화면의 스크린샷.

    3. 연결 설정 대화 상자에서 가져오기를 선택한 다음, 확인을 선택합니다.

      가져오기 옵션 선택을 보여 주는 연결 설정 대화 상자의 스크린샷.

    4. EventType 열을 마우스 오른쪽 단추로 클릭한 다음, 다른 열 제거를 선택합니다.

    5. EventType 열을 다시 마우스 오른쪽 단추로 클릭한 다음, 중복 제거를 선택합니다.

    6. 선택적으로 다른 열을 추가하여 슬라이서 값의 정렬 순서를 정의합니다.

    7. 테이블 이름을 SlicerValues로 바꿉니다.

      슬라이서 값 테이블을 보여 주는 테이블 스크린샷.

  10. 홈 탭에서 닫기 및 적용을 선택합니다.

    참고 항목

    보안 위험에 대한 경고 대화 상자가 나타납니다. 계속하려면 확인 을 클릭합니다. 대화 상자가 나타나는 이유는 Power BI가 두 번째 데이터 원본을 추가하기 때문입니다. 자세한 내용은 Power BI Desktop 개인 정보 수준을 참조하세요. 그러나 이 예에서 데이터 원본이 사용되는 방식은 완벽하게 안전합니다.

  11. SlicerValues 테이블의 EventType 열을 매개 변수에 바인딩합니다.

    1. 왼쪽에서 모델 보기를 선택합니다.
    2. SlicerValues 테이블에서 EventType 열을 선택합니다.
    3. 속성 창에서 고급을 확장합니다.
    4. 매개 변수에 바인딩에서 Type_Param을 선택합니다. 그러면 EventType 열이 매개 변수에 바인딩됩니다.

    참고

    보안 위험에 대한 경고 대화 상자가 나타납니다. 계속하려면 계속을 클릭합니다. 대화 상자가 나타나는 이유는 Power BI가 한 원본에서 다른 원본으로 데이터를 보내기 때문입니다. 자세한 내용은 Power BI Desktop 개인 정보 수준을 참조하세요. 그러나 이 예에서 매개 변수가 사용되는 방식은 완벽하게 안전합니다.

    EventType 열과 매개변수의 바인딩을 보여 주는 모델 보기의 스크린샷.

보고서의 데이터 시각화

Power BI Desktop에 데이터가 있으므로 해당 데이터를 기준으로 보고서를 만들 수 있습니다. 상태별 이벤트 요약을 표시하는 테이블과 이벤트 유형별로 테이블을 필터링하는 슬라이서가 있는 간단한 보고서를 만듭니다.

  1. 왼쪽에 있는 보고서 보기를 선택합니다.

  2. 보고서에 테이블을 추가합니다.

    1. 시각화 창에서 테이블을 선택합니다. 빈 테이블이 보고서 캔버스에 추가됩니다.
    2. 필드 창에서 EventsByStates를 확장하고 상태이벤트를 선택합니다. 이제 상태별 이벤트 요약을 보여주는 테이블이 있습니다.
  3. 보고서에 슬라이서를 추가합니다.

    1. 시각화 창에서 슬라이서를 선택합니다. 빈 슬라이서가 보고서 캔버스에 추가됩니다.
    2. 필드 창에서 SlicerValues를 확장하고 EventType을 선택합니다. 이제 이벤트 유형을 보여주는 슬라이서가 있습니다.

    테이블 및 관련 슬라이서를 보여 주는 보고서 보기의 스크린샷.

    이제 보고서를 볼 수 있습니다. 슬라이서에서 이벤트 유형 값을 선택할 때 M 쿼리를 기반으로 하는 테이블은 M 쿼리의 매개 변수에 바인딩된 이벤트 유형으로 필터링됩니다.

  4. 보고서를 저장합니다.

여러 매개 변수 값 허용

슬라이서의 여러 매개 변수 값을 필터링하려는 경우 다음과 같이 EventType 열의 속성을 조정하고 KQL 함수를 수정하여 이 작업을 수행할 수 있습니다.

  1. SlicerValues 테이블에서 EventType 열의 속성을 조정합니다.

    1. 왼쪽에서 모델 보기를 선택합니다.
    2. SlicerValues 테이블에서 EventType 열을 선택합니다.
    3. 속성 창에서 고급을 확장하고 다중 선택 설정을 켭니다.

    다중 선택 설정을 보여 주는 모델 보기의 스크린샷.

  2. KQL 함수를 수정하여 매개 변수 유형을 동적으로 설정하고 where 조건을 변경하여 매개 변수 값 목록을 확인합니다.

    .create-or-alter function EventsByStates (EventTypeParam:dynamic)
    {
      StormEvents
      | where EventType in (EventTypeParam)
      | summarize Events=count() by EventType, State
    }
    

이제 보고서로 돌아가 슬라이서에서 여러 이벤트 유형을 선택할 수 있습니다.

모든 매개 변수 값 허용

슬라이서의 모든 매개 변수 값을 필터링하려는 경우 다음과 같이 EventType 열의 속성을 조정하고 KQL 함수를 수정하고, 슬라이서 제어를 업데이트하여 이 작업을 수행할 수 있습니다.

  1. SlicerValues 테이블에서 EventType 열의 속성을 조정합니다.

    1. 왼쪽에서 모델 보기를 선택합니다.
    2. SlicerValues 테이블에서 EventType 열을 선택합니다.
    3. 속성 창에서 고급을 확장하고 모두 선택 설정을 켭니다.
    4. 필요에 따라 모두 값 선택 설정을 변경합니다. 그러나 이 예제에서 SelectAll의 기본값을 사용해야 합니다.

    모두 선택 설정을 보여 주는 모델 보기의 스크린샷.

  2. 모두 선택 옵션을 표시하도록 슬라이서 컨트롤을 업데이트합니다.

    1. 왼쪽에 있는 보고서 보기를 선택합니다.
    2. EventType 슬라이서를 선택합니다.
    3. 시각화 창에서 형식을 선택하고 선택 컨트롤을 확장한 다음, "모두 선택" 옵션 표시 설정을 켭니다. 이벤트 유형 슬라이서는 목록 맨 위에 모두 선택 옵션을 표시합니다.
  3. KQL 함수를 수정하고 매개 변수 유형을 동적으로 설정하고 where 조건을 변경하여 SelectAll 값 또는 매개 변수 값 목록을 확인합니다.

    .create-or-alter function EventsByStates (EventTypeParam:dynamic)
    {
      StormEvents
      | where ("__SelectAll__" in (EventTypeParam)) or (EventType in (EventTypeParam))
      | summarize Events=count() by EventType, State
    }
    

이제 보고서로 돌아가 슬라이서에서 모든 이벤트 유형을 선택할 수 있습니다.

모두 선택 옵션이 있는 슬라이서를 보여 주는 보고서 보기의 스크린샷.

고려 사항 및 제한 사항

동적 M 쿼리 매개 변수를 사용할 때 고려해야 할 몇 가지 고려 사항 및 제한 사항이 있습니다.

  • 한 매개 변수를 여러 필드에 바인딩할 수 없으며 그 반대의 경우도 마찬가지입니다.
  • 다음 매개 변수 형식은 지원되지 않습니다.
    • 모두
    • Duration
    • True/False
    • 이진
  • 다음 필터는 지원되지 않습니다.
    • 상대 시간 슬라이서 또는 필터
    • 상대 날짜
    • 계층 슬라이서
    • 다중 필드 포함 필터
    • 필터 제외/필터 아님
    • 교차 강조 표시
    • 드릴다운 필터
    • 크로스 드릴 필터
    • 상위 N 필터

리소스 정리

이 문서에서 만든 보고서가 더 이상 필요하지 않은 경우 Power BI Desktop(.pbix) 파일을 삭제합니다.