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