데이터ㆍ분석

“빅데이터를 위한 빅 테크 스택” 마이크로소프트 패브릭의 이해

Martin Heller | InfoWorld 2024.02.20
마이크로소프트 패브릭(Microsoft Fabric)은 데이터 분석을 위한 종단간 서비스형 소프트웨어(SaaS) 플랫폼이다. 원레이크(OneLake)라는 데이터 레이크를 기반으로 마이크로소프트 파워 BI(Power BI), 애저 시냅스(Azure Synapse), 애저 데이터 팩토리(Azure Data Factory)의 기존 구성요소와 새로운 구성요소를 모아 하나의 통합 환경으로 제공한다. 
 
ⓒ Getty Image Bank

마이크로소프트 패브릭이 지원하는 기능은 데이터 이동, 데이터 저장부터 데이터 엔지니어링, 데이터 통합, 데이터 과학, 실시간 분석, 비즈니스 인텔리전스, 그리고 데이터 보안과 거버넌스, 규정 준수까지 포괄한다. 대부분 구글 클라우드 데이터플렉스(Google Cloud Dataplex)와 대응되는 플랫폼이다. 2024년 2월 기준 패브릭은 프리뷰 단계다. 마이크로소프트 패브릭이 노리는 사용자 층은 관리자, 개발자, 데이터 엔지니어, 데이터 과학자, 데이터 분석가, 비즈니스 분석가, 관리자 등을 모두 포함한다. 모든 파워 BI 테넌트에 대해 기본적으로 활성화된다. 

자세히 살펴보면, 먼저 마이크로소프트 패브릭 데이터 엔지니어링(Microsoft Fabric Data Engineering)은 아파치 스파크와 데이터 팩토리(Data Factory)를 결합해 노트북과 스파크 작업을 예약 및 조율한다. 패브릭 데이터 팩토리(Fabric Data Factory)는 애저 데이터 팩토리(Azure Data Factory)의 방대한 가용성과 강력한 기능을 파워 쿼리(Power Query)와 결합하며, 200개 이상의 데이터 커넥터를 지원한다. 패브릭 데이터 사이언스(Fabric Data Science)는 애저 머신 러닝과 결합되며, 이를 통해 실험 추적 및 모델 레지스트리를 지원한다. 패브릭 리얼타임 애널리틱스(Fabric Real-Time Analytics)에는 이벤트 스트림, KQL(쿠스토 쿼리 언어) 데이터베이스, 쿼리를 실행하고 쿼리 결과를 보고 데이터에 대한 쿼리 결과를 맞춤 설정하는 KQL 쿼리세트가 포함된다. KQL에 입문하는 좋은 기회이기도 하다.
 
마이크로소프트 패브릭 홈페이지. 파워 BI, 파워 팩토리, 파워 액티베이터, 스냅스 데이터 엔지니어링, 시냅스 데이터 사이언스, 스냅스 데이터 웨어하우스, 시냅스 리얼타임 애널리틱스와 연결할 수 있다. ⓒ IDG
 

원레이크

원레이크(OneLake)는 기업 전체를 위한 통합 논리 데이터 레이크다. 모든 테넌트에는 단 하나의 데이터 레이크가 있으며, 원레이크는 모든 분석 데이터가 집결되는 단일 장소로 설계됐다. 마이크로소프트가 모든 파일을 원드라이브에서 사용하도록 하는 것과 성격이 비슷하다.

원레이크는 애저 데이터 레이크 스토리지(ADLS) Gen2를 기반으로 하며 모든 유형의 파일을 지원한다. 그러나 데이터 웨어하우스 및 데이터 레이크하우스와 같은 모든 패브릭 데이터 구성요소는 자동으로 아파치 파케이 기반의 델타(Delta) 형식으로 원레이크에 데이터를 저장한다. 이 형식은 애저 데이터브릭스에서 사용하는 스토리지 형식이기도 하다. 데이터가 생성된 곳이 스파크인지 SQL인지 관계없이 델타 형식으로 하나의 데이터 레이크에 저장된다. 

원레이크 데이터 레이크하우스를 만드는 방법은 간단하다. 데이터 엔지니어링(Data Engineering) 보기로 전환해서 새 레이크하우스를 만들어 이름을 지정하고 데이터 레이크의 파일 부분에 CSV 파일을 업로드하면 된다. 
 
마이크로소프트 패브릭의 데이터 엔지니어링 보기에서 파일과 테이블을 확인할 수 있다. 테이블은 델타 파케이 포맷이다. 파일을 선택하면 점 3개 메뉴에서 테이블로 불러오기 같은 필요한 작업을 할 수 있다. ⓒ IDG
 
여기서부터 레이크하우스에 테이블을 만들기까지의 과정은 (현재로서는) 생각보다 험난할 수 있다. 테이블에 로드하기(Load to Table) 팝업 메뉴 항목을 사용하면 되지 않을까 생각할 수 있지만, 필자는 처음 몇 번의 테스트에서 실패했다. 결국 마이크로소프트 지원팀에 문의한 결과 (이 기사를 쓰는 현재) 열 제목에 공백이 포함된 경우 테이블에 로드하기 기능이 작동하지 않는다는 사실을 확인했다. 다른 레이크하우스에서 아무 문제도 없이 처리되는 기능이라는 점에서 아쉽지만, 패브릭은 아직 프리뷰 단계다. 정식 출시되는 제품에서는 이 기능이 추가될 것이라고 확신한다. 어쨌든 필자는 정리한 CSV 파일을 사용해 문제를 해결했다. 또한 노트북에서 새 테이블에 대해 스파크 SQL 쿼리를 실행하는 것도 가능했다. 
 
패브릭 노트북은 파이썬과 SQL을 모두 지원한다. 여기서는 스파크 SQL을 사용해 원레이크 레이크하우스 테이블 내용을 표시했다. ⓒ IDG

레이크하우스 테이블을 대상으로 SQL 쿼리를 실행하기 위해 꼭 스파크만 사용해야 하는 것은 아니다. 레이크하우스를 배포할 때 자동으로 생성되는 SQL 엔드포인트를 통해 원레이크의 모든 델타 형식 테이블에 액세스할 수 있다. SQL 엔드포인트는 원레이크에서 같은 델타 테이블의 물리적 복사본을 참조하며 T-SQL 경험을 제공한다. 기본적으로 스파크 SQL이 아닌 애저 SQL을 사용한다. 

아래에서 다시 살펴보겠지만 원레이크는 레이크하우스 외에 시냅스 데이터 웨어하우스(Synapse Data Warehouse)도 호스팅할 수 있다. 스파크 사용자도 웨어하우스에서 데이터를 읽을 수 있지만 데이터 웨어하우스는 T-SQL 기술을 보유한 사용자에게 가장 적합하다. 원레이크에서 바로 가기를 만들면 레이크하우스와 데이터 웨어하우스가 데이터를 복제하지 않고 테이블에 액세스할 수 있다. 
 

파워 BI

파워 BI(Power BI)는 계속 확장돼 이제 원레이크 레이크하우스(델타) 테이블과 함께 작동한다. 항상 그렇듯 파워 BI는 기본적인 비즈니스 인텔리전스 데이터 분석과 보고서 생성을 지원하며 마이크로소프트 365와 통합된다. 
 
마이크로소프트 패브릭 내에서 파워 BI 보고서 생성하기. 패브릭에서 파워 BI를 사용할 수 있다는 것은 파워 BI의 핵심 장점이다. ⓒ IDG 
 

데이터 팩토리

마이크로소프트 패브릭의 데이터 팩토리(Data Factory)는 시민(일반 사용자용) 데이터 통합 기능과 전문가용 데이터 통합 기능을 모두 지원한다. 100여 개 관계형 및 비관계형 데이터베이스, 레이크하우스, 데이터 웨어하우스 및 일반 인터페이스에 연결할 수 있다. 약 300개의 변환을 사용해 대규모 데이터 변환이 가능한 데이터플로우로 데이터를 가져오고, 파워 쿼리 편집기를 사용하고, 파워 쿼리의 예제별 데이터를 추출할 수 있다. 필자는 노스윈드(Northwind) 데이터 집합에서 두 개의 테이블을 가져와 변환한 데이터플로우를 시험적으로 사용해봤다. 결과는 상당히 인상적이었지만 아쉽게도 최종 게시 단계에서 실패했다. 프리뷰 단계에서 감수해야 할 부분이다. 

데이터 파이프라인을 사용해 데이터 추출, 선호하는 데이터 저장소로 로드하기, 노트북 실행, SQL 스크립트 실행과 같은 작업을 하나로 모으는 데이터 오케스트레이션 워크플로우를 만들 수도 있다. 필자는 공휴일(Public Holidays)과 뉴욕 택시 탑승(NY Taxi), 두 개의 샘플 데이터 집합을 성공적으로 가져와 데이터 레이크에 저장했다. 주기적으로 파이프라인을 업데이트하는 기능은 테스트하지 않았다. 온프레미스 데이터를 원레이크에 로드해야 하는 경우 궁극적으로는 온프레미스 데이터 게이트웨이를 만들어서 이를 데이터플로우에 연결할 수 있지만, 임시 방편으로 온프레미스 데이터를 클라우드로 복사해 로드할 수도 있다. 
 

데이터 액티베이터

마이크로소프트에 따르면 데이터 액티베이터(Data Activator)는 변화하는 데이터에서 패턴 또는 조건이 감지될 때 자동으로 조처하는 마이크로소프트 패브릭의 노코드 환경이다. 예를 들어 파워 BI 보고서의 데이터와 이벤트스트림(Eventstreams) 항목에서 데이터가 특정 임곗값에 도달하거나 기타 패턴과 일치하는 지를 모니터링한 후 사용자에게 알리거나 파워 오토메이트 워크플로우를 실행하는 등 적절한 조치를 자동으로 한다. 구체적으로는 상점 매출 감소 시 상점 광고 집행하기, 식료품점의 고장난 냉장고에서 식품이 상하기 전에 옮기도록 매장 관리자에게 알리기, 대금이 연체될 때 채무자별 맞춤형 시간 및 가치 한도와 함께 회계 팀에 알리기 등이다. 
 

데이터 엔지니어링

앞서 오픈레이크 문단에서 언급한 내용 대부분이 데이터 엔지니어링(Data Engineering)에 속한다. 마이크로소프트 패브릭의 데이터 엔지니어링에는 레이크하우스, 아파치 스파크 작업 정의, 노트북(파이썬, R, 스칼라, SQL), 데이터 파이프라인(앞선 데이터 팩토리 부분 참조) 등이다.
 

데이터 사이언스

마이크로소프트 패브릭의 데이터 사이언스(Data Science)에는 머신 러닝 모델, 실험, 노트북이 포함된다. 5~6개 샘플 노트북이 있다. 필자는 파이썬, 페이스북의 프로펫(Prophet) 라이브러리, ML플로우(MLflow), 패브릭 오토로깅(Fabric Autologging) 기능을 사용하는 시계열 예측 모델 샘플을 실행해봤다. 시계열 예측 샘플은 뉴욕시 부동산 판매(NYC Property Sales) 데이터 집합을 사용한다. 이 데이터 집합을 다운로드한 다음 데이터 레이크하우스에 업로드하면 된다. 프로펫은 시계열 예측에 전통적인 계절성 모델을 사용하는데, 머신 러닝과 딥러닝 모델이 갈수록 복잡해지는 것과 비교해 신선하다. 피팅과 예측에 소요된 총 실행 시간은 147초로, 3분이 채 되지 않았다.
 
NYC 부동산 시장 데이터를 불러와 프로펫 시계열 모델로 분석한 결과 ⓒ IDG
 

데이터 웨어하우스

마이크로소프트 패브릭의 데이터 웨어하우스(Data Warehouse)는 데이터 레이크와 데이터 웨어하우스, 두 가지 영역을 융합하는 것을 목표로 한다. 이는 레이크하우스의 SQL 엔드포인트와 다르다. SQL 엔드포인트는 마이크로소프트 패브릭의 레이크하우스에서 생성 시 자동으로 만들어지는 읽기 전용 웨어하우스인 반면, 데이터 웨어하우스는 "전통적인" 데이터 웨어하우스다. 즉, 여느 기업용 데이터 웨어하우스와 마찬가지로 완전한 트랜잭션 T-SQL 기능을 지원한다. 

테이블과 데이터가 자동으로 만들어지는 SQL 엔드포인트와 달리 데이터 웨어하우스에서는 마이크로소프트 패브릭 포털 또는 T-SQL 명령을 사용해 데이터 웨어하우스에서 테이블을 만들고 데이터를 로드, 변환, 쿼리하는 작업을 전적으로 사용자가 제어한다. 필자는 새 웨어하우스를 만들어 마이크로소프트가 제공한 샘플 데이터를 로드했다. 이 샘플 데이터도 택시 승차 데이터 집합이었지만(연도는 다름) 이번에는 웨어하우스 테이블에 반영됐다. 마이크로소프트는 몇 가지 샘플 SQL 스크립트도 제공한다. 
 
패브릭 데이터 웨어하우스의 테이블 데이터 미리보기. 상단을 보면 파워 BI 데이터셋을 자동으로 만드는 메시지를 확인할 수 있다. ⓒ IDG
 
패브릭 데이터 웨어하우스 모델 보기 ⓒ IDG
 
패브릭 데이터 웨어하우스 쿼리 보기. 마이크로소프트는 SQL 샘플 스크립트를 제공한다. ⓒ IDG
 

리얼타임 애널리틱스

마이크로소프트 패브릭의 리얼타임 애널리틱스(Real-Time Analytics)는 애저 데이터 익스플로러(Azure Data Explorer)와 밀접하게 관련된다. 그래서인지 현재 리얼타임 애널리틱스 문서 링크는 애저 데이터 익스플로러 문서로 연결된다. 확인한 결과 정식 패브릭 문서가 업데이트되고 있다고 한다. 

리얼타임 애널리틱스와 애저 데이터 익스플로러는 쿠스토 쿼리 언어(KQL) 데이터베이스 및 쿼리를 사용한다. 쿠스토를 사용한 데이터 쿼리는 SQL 서버와 같은 트랜잭션 RDBMS에 비해 훨씬 더 빠르며, 특히 데이터 크기가 수십억 개의 행에 이를 만큼 커지면 차이가 더욱 두드러진다. 쿠스토라는 이름은 프랑스의 해저 탐험가인 자크 쿠스토에서 따왔다. 필자는 KQL과 리얼타임 애널리틱스를 알아보기 위해 마이크로소프트 샘플인 기상 분석을 사용했다. 이 샘플에는 여러 KQL 쿼리가 있는 스크립트가 포함돼 있다. 
 
패브릭 리얼타임 애널리틱스 샘플 갤러리에는 60MB짜리 날씨 분석 예제부터 1GB짜리 뉴욕 택시 데이터까지 몇 가지 예제가 올라와 있다. ⓒ IDG

다음 KQL 쿼리는 지리공간 함수를 사용하고 산점도를 그린다는 점에서 흥미롭다. 
 
//We can perform Geospatial analytics with powerful inbuilt functions in KQL
//Plot storm events that happened along the south coast
let southCoast = dynamic({"type":"LineString","coordinates":[[-97.18505859374999,25.997549919572112],[-97.58056640625,26.96124577052697],[-97.119140625,27.955591004642553],[-94.04296874999999,29.726222319395504],[-92.98828125,29.82158272057499],[-89.18701171875,29.11377539511439],[-89.384765625,30.315987718557867],[-87.5830078125,30.221101852485987],[-86.484375,30.4297295750316],[-85.1220703125,29.6880527498568],[-84.00146484374999,30.14512718337613],[-82.6611328125,28.806173508854776],[-82.81494140625,28.033197847676377],[-82.177734375,26.52956523826758],[-80.9912109375,25.20494115356912]]});
StormEvents
| project BeginLon, BeginLat, EventType
| where geo_distance_point_to_line(BeginLon, BeginLat, southCoast) < 5000
| render scatterchart with (kind=map)
//Observation: Because these areas are near the coast, most of the events are Marine Thunderstorm Winds
 
데이터 크기가 60MB인데도 1/3초만에 실행됐다. ⓒ IDG
 

넓고 깊은 분석

마이크로소프트 패브릭 프리뷰를 살펴보는 과정에서 수많은 버그를 발견하긴 했지만 넓은 범위와 심층적인 분석 기능을 제공한다는 점도 충분히 파악할 수 있었다. 완전히 자리를 잡고 다듬어지면 구글 클라우드 데이터플렉스와 충분히 경쟁이 가능할 것이다. 

마이크로소프트 패브릭이 모든 사람에게 적합할지는 아직 확실치 않지만, 패브릭 인터페이스의 왼쪽 하단에 있는 뷰 전환 기능을 사용해 현재 관심 영역만 간편하게 살펴볼 수 있는 기능은 확실히 유용하다. 어도비 포토샵이 사진가, 편집 전문가, 예술가 등 다양한 사용자층에 필요한 기능을 제공하는 것과 비슷한 방향이다. 그러나 포토샵은 강력한 기능 못지 않게 배우기 어렵기로도 유명하다. 패브릭도 이와 비슷한 길을 걷게 될지 지켜볼 일이다. 
editor@itworld.co.kr
Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.