[Azure] Stream Analytics & Power BI 실시간 대시보드 구축 가이드

감자·2026년 2월 9일

microsoft_dataschool

목록 보기
21/28

Azure Event Hubs의 실시간 데이터를 Stream Analytics로 처리하고 Power BI로 시각화하는 전체 파이프라인 구축 과정을 정리함.


1. Power BI 작업 영역 설정

데이터를 수신할 Power BI의 작업 영역을 생성하고 고유 ID를 확보해야 함.

1-1. 작업 영역 생성

  1. Power BI 접속: 웹 브라우저에서 Power BI 서비스에 로그인.
  2. 메뉴 이동: 왼쪽 사이드바 [작업 영역(Workspaces)] 선택.
  3. 생성: 하단 [새 작업 영역(Create a workspace)] 클릭.
  4. 설정: 이름(예: 태양광 발전량 예측) 입력 후 [적용] 클릭.

1-2. 작업 영역 ID 확보 (중요)

생성된 작업 영역의 URL에서 GUID 값을 추출하여 별도로 저장해야 함. (Stream Analytics 설정 시 필요)

URL 형식: https://app.powerbi.com/groups/[Workspace_GUID]/list...

  • groups/ 뒤에 있는 GUID 문자열(예: 83aa256e-xxxx-xxxx-xxxx-xxxxxxxxxxxx)을 복사하여 메모장에 저장.

2. Stream Analytics Job 생성

2-1. 리소스 생성

  1. Azure Portal 접속.
  2. 리소스 그룹 선택: 기존에 생성한 리소스 그룹(예: [본인의_리소스_그룹]) 선택.
  3. 리소스 추가: [+ 만들기] 클릭 Stream Analytics Job 검색 및 선택.
  4. 인스턴스 설정:
  • 이름: 예) [SA_Job_Name]
  • 설정 확인: 위치 등 기본값 확인 후 [만들기] 클릭.
  1. 배포 완료 후 [리소스로 이동].

3. 토폴로지 구성 (Input & Output)

3-1. 입력(Input): Event Hubs 연결

  1. 왼쪽 메뉴 [작업 토폴로지] [입력] 클릭.
  2. [+ 입력 추가] [Event Hubs] 선택.
  3. 세부 설정:
  • 입력 별칭: 예) [Input_Alias] (※ 쿼리에서 사용됨)
  • 네임스페이스: 실습 시 생성했던 Event Hubs 네임스페이스 선택.
  1. [저장] 클릭 (연결 테스트 성공 확인).

3-2. 출력(Output): Power BI 연결

  1. 왼쪽 메뉴 [작업 토폴로지] [출력] 클릭.
  2. [+ 출력 추가] [Power BI] 선택.
  3. [권한 부여] 클릭 후 Power BI 계정 로그인.
  4. 세부 설정:
  • 출력 별칭: 예) [Output_Alias] (※ 쿼리에서 사용됨)
  • 작업 영역: [Power BI 설정을 수동으로 제공] 선택.
  • 작업 영역 ID: 1-2단계에서 복사한 [Workspace_GUID] 붙여넣기.
  • 데이터 세트 이름: 예) [Dataset_Name]
  • 테이블 이름: 예) [Table_Name]
  1. [저장] 클릭.

4. 쿼리(Query) 작성 및 실행

데이터를 형변환하고 가공하여 Power BI로 전송하는 SQL 쿼리를 작성함.

4-1. 쿼리 로직 작성

왼쪽 메뉴 [쿼리] 선택 후 아래 코드 입력. (별칭 부분은 본인이 설정한 값으로 변경 필수)

/* 1단계: 데이터 형변환 및 전처리 */
With [solarpredictdata] as (
    select 
        try_cast(pcap as float) "설비용량",
        try_cast(qgen as float) "발전량",
        try_cast(srad as float) "일사량",
        try_cast(temp as float) "기온",
        try_cast(wspd as float) "풍속",
        city "도시",
        county "시군구",
        lat "위도",
        lon "경도",
        regCd "행정코드",
        -- 날짜 포맷팅 (YYYYMMDD -> YYYY-MM-DD)
        substring(fcstDate, 1, 4) + '-' + substring(fcstDate, 5, 2) + '-' + substring(fcstDate, 7, 2) "날짜",
        substring(fcstTime, 1, 2) "시간"
    from [Input_Alias]  -- 3-1에서 설정한 입력 별칭
)

/* 2단계: 가공 데이터 출력 (이용률 계산 등) */
select 
    round(try_cast(([solarpredictdata].[발전량] / [solarpredictdata].[설비용량]) * 100 as bigint), -1) "이용률",
    ([solarpredictdata].[발전량] / [solarpredictdata].[설비용량]) * 100 "실제이용률",
    *,
    case
        when try_cast([solarpredictdata].[시간] as bigint) < 12 then '오전'
        else '오후'
    end "오전오후구분"
into [Output_Alias]  -- 3-2에서 설정한 출력 별칭
from solarpredictdata

4-2. 쿼리 저장 및 작업 시작

  1. [쿼리 저장] 클릭 [쿼리 테스트]로 결과 미리보기 확인.
  2. 개요 탭 이동 [작업 시작] [시작] 클릭.
  3. 상태가 Running으로 변하는지 확인.

5. 데이터 생성 (Azure Function)

데이터 파이프라인이 가동 중이므로, 실제 데이터를 전송할 스케줄러를 실행함.

  1. VS Code 실행 Azure 확장 아이콘 클릭.
  2. Resources 탭에서 배포한 Function (예: [Function_Name]) 찾기.
  3. 우클릭 [Execute Function Now...] 클릭.
  4. Teams 알림 채널 등을 통해 실행 여부 확인.

6. Power BI Desktop 연결

Stream Analytics가 데이터를 전송하면 Power BI에 자동으로 데이터 세트가 생성됨.

  1. Power BI Desktop 실행.
  2. 상단 리본 메뉴 [데이터 가져오기] [Power BI 의미 체계(Semantic models)] 클릭.
  3. 목록에서 [Dataset_Name] (3-2단계에서 설정한 이름) 검색 및 선택.
  4. [연결] 클릭.
  5. 우측 데이터 패널에 필드들이 정상적으로 로드되었는지 확인 후 시각화 작업 시작.
profile
제 별명이 감자입니다

0개의 댓글