Azure Event Hubs의 실시간 데이터를 Stream Analytics로 처리하고 Power BI로 시각화하는 전체 파이프라인 구축 과정을 정리함.
데이터를 수신할 Power BI의 작업 영역을 생성하고 고유 ID를 확보해야 함.
태양광 발전량 예측) 입력 후 [적용] 클릭.생성된 작업 영역의 URL에서 GUID 값을 추출하여 별도로 저장해야 함. (Stream Analytics 설정 시 필요)
URL 형식:
https://app.powerbi.com/groups/[Workspace_GUID]/list...
groups/ 뒤에 있는 GUID 문자열(예: 83aa256e-xxxx-xxxx-xxxx-xxxxxxxxxxxx)을 복사하여 메모장에 저장.[본인의_리소스_그룹]) 선택.Stream Analytics Job 검색 및 선택.[SA_Job_Name][Input_Alias] (※ 쿼리에서 사용됨)[Output_Alias] (※ 쿼리에서 사용됨)[Dataset_Name][Table_Name]데이터를 형변환하고 가공하여 Power BI로 전송하는 SQL 쿼리를 작성함.
왼쪽 메뉴 [쿼리] 선택 후 아래 코드 입력. (별칭 부분은 본인이 설정한 값으로 변경 필수)
/* 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
데이터 파이프라인이 가동 중이므로, 실제 데이터를 전송할 스케줄러를 실행함.
[Function_Name]) 찾기.Stream Analytics가 데이터를 전송하면 Power BI에 자동으로 데이터 세트가 생성됨.
[Dataset_Name] (3-2단계에서 설정한 이름) 검색 및 선택.