Databricks와 유사한 Lakehouse 아키텍처 구축

알리바바 클라우드에서 MaxCompute(배치/레이크하우스), Hologres(실시간 인터랙티브), DataWorks(개발, 오케스트레이션, 거버넌스) 조합으로 Databricks “Lakehouse 플랫폼”에 가까운 사용 방식을 만들 수 있다.

핵심은 “저장(OSS)-배치(Maxcompute)-실시간 서빙(Hologres)-워크플로/커버넌스(Dataworks)의 흐름이다.

Databricks에서 하는 일알리바바 클라우드 서비스(대표)설명
레이크/테이블 관리(데이터 레이크하우스의 기반)OSS + MaxComputeMaxCompute는 내부 스토리지뿐 아니라 OSS 같은 외부 스토리지 데이터를 외부 테이블로 직접 읽는 구조를 지원합니다.
배치 ETL/대규모 SQL 처리MaxCompute대규모 DW/배치 처리를 담당(주로 SQL 중심, 필요 시 Spark 계열 연계).
실시간/저지연 SQL, 서빙(“SQL Warehouse”)HologresPostgreSQL 호환 + JDBC/ODBC로 BI/앱 연결, 고동시성·저지연 인터랙티브 분석/서빙에 초점.
워크플로/잡 스케줄링/개발 워크스페이스DataWorks (Data Studio/Operation Center 등)수집→개발→스케줄링→운영/모니터링을 한곳에서. Hologres도 DataWorks와 통합됩니다.
통합 카탈로그/라인리지/거버넌스DataWorks (거버넌스 모듈)메타데이터/데이터 수명주기/표준화/거버넌스 관점의 “컨트롤 플레인” 역할.

권장 아키텍처

  1. 원천 데이터 적재 : OSS(데이터 레이크 영역)로 로그/이벤트/파일 등 저장
  2. 배치 정제/모델링 : MaxCompute에서 정제, 집계, 데이터마트 생성(외부 테이블로 OSS 읽기 포함)
  3. 실시간/서빙 계층 : Hologres에 최신 집계/차원/서빙 테이블을 유지(대시보드, API, 앱 쿼리)
  4. 오케스트레이션/운영 : DataWorks에서 파이프라인(배치 + 실시간)을 스케줄링/모니터링/권한, 표준 적용
  5. 서로 연결(핵심 포인트) : Maxcompute + Hologres 간 외부/포린 테이블 방식으로 직접 조회/연계해 불필요한 중복 적재를 줄일 수 있다.

실제 구성

1. 전체 그림

  • OSS: Raw(원천) 저장소
  • MaxCompute: 배치 ETL/모델링(브론즈/실버/골드 중 실버~골드 성격)
  • Hologres: 저지연/고동시성 서빙(대시보드·앱 조회, “SQL Warehouse” 성격)
  • DataWorks: 개발(노드) + 오케스트레이션(스케줄) + 운영/거버넌스(연결/권한/모니터링)

2. 리전/네트워크 기본 원칙

  • 모든 서비스 리전을 통일하세요. (DataWorks 워크스페이스 리전 = MaxCompute 프로젝트 리전 = Hologres 인스턴스 리전)
  • MaxCompute가 OSS 데이터를 외부 테이블로 읽을 때, OSS와 같은 리전이어야 합니다.
  • DataWorks에서 동기화/스케줄 실행에 쓰는 Resource Group(서버리스 리소스 그룹) 이 외부에 접근해야 하면 VPC/NAT/EIP 같은 네트워크 준비가 필요할 수 있습니다. (공용 인터넷에서 데이터 가져오는 경우 등)
  • Hologres를 DataWorks에 붙일 때 네트워크 연결 테스트(Test Network Connectivity) 를 통과해야 합니다.

3. MaxCompute 준비 (배치 레이어)

3-1. MaxCompute 활성화

  • 콘솔에서 MaxCompute 활성화(서비스 구독/활성).

3-2. 프로젝트 생성 (개발/운영 2개 권장)

  • DataWorks 표준(개발/운영 분리) 워크스페이스를 쓸 계획이면, MaxCompute 프로젝트를 2개(DEV/PROD) 연결하는 구성이 일반적입니다.
    • 예: myproj_dev, myproj_prod

3-3. 테이블 생성

  • 방법 A) MaxCompute SQL로 CREATE TABLE (DataWorks에서도 실행 가능)
  • 방법 B) DataWorks의 시각화 기능으로 테이블 생성/관리

처음엔 “브론즈/실버/골드” 느낌으로 스키마를 나누면 편해요.

예) ods_*(raw), dwd_*(정제), dws_*(집계), ads_*(서비스)

3-4. OSS(원천) → MaxCompute (외부 테이블 패턴: 레이크처럼 쓰기)

  • OSS에 원천 파일을 넣고, MaxCompute에서 OSS External Table로 매핑해 바로 조회할 수 있습니다.
CREATE EXTERNAL TABLE IF NOT EXISTS ods_click_log (
user_id STRING,
event_time TIMESTAMP,
event_name STRING
)
STORED AS '<file_format>'
LOCATION 'oss://<bucket>/<path>/';

4. DataWorks 준비 (개발/스케줄/운영)

워크스페이스 생성

  • DataWorks에서 Workspace 생성 → 컴퓨팅 리소스 바인딩 흐름으로 갑니다.

Serverless Resource Group 생성/연결

  • DataWorks에서 데이터 동기화(Integration)나 스케줄 실행을 하려면 서버리스 리소스 그룹을 만들어 워크스페이스에 연결하는 구성이 흔합니다.
  • 외부 인터넷에서 읽어와야 하면 NAT/EIP 등 네트워크 설정이 필요할 수 있습니다.

MaxCompute를 워크스페이스에 바인딩

  • 워크스페이스에 MaxCompute(DEV/PROD 프로젝트)를 컴퓨팅 리소스로 연결해야 Data Studio에서 SQL 노드 개발/스케줄이 됩니다.

파이프라인(워크플로) 만들기

  • Data Studio에서 보통 이렇게 구성합니다.
    1. 동기화 노드(OSS/DB → MaxCompute ODS 적재)
    2. MaxCompute SQL 노드(ODS → DWD 정제)
    3. MaxCompute SQL 노드(DWD → DWS/ADS 집계)
    4. (선택) Hologres로 서빙 반영(아래 5~6단계)

5. Hologres 준비 (서빙/인터랙티브 레이어)

4-1. Hologres 인스턴스 구매/생성

  • Hologres 콘솔에서 인스턴스 생성(문서: Purchase an instance).

4-2. DataWorks 워크스페이스에 Hologres 연결(Associate)

  • DataWorks에서 Computing Resource로 Hologres를 Associate하고,
  • 리소스 그룹으로 네트워크 연결 테스트를 통과해야 합니다.

MaxCompute ↔ Hologres를 묶는 방법 2가지

방법 A) “데이터 이동 최소화”: Hologres에서 MaxCompute를 외부 DB/포린테이블로 맵핑

  • Hologres는 MaxCompute 메타데이터에 매핑되는 external database/foreign table을 만들어 데이터를 옮기지 않고도 MaxCompute 데이터를 빠르게 조회하는 흐름을 지원합니다.
  • DataWorks(DataStudio)에서 “Schema Synchronization from MaxCompute” 노드로 여러 테이블의 포린테이블을 한 번에 만들 수 있습니다.

절차(요약)

  1. DataStudio → Scheduled Workflow
  2. Create Node → Hologres → Schema Synchronization from MaxCompute
  3. Destination(Hologres) / DB / Schema 선택 → 실행
  4. 생성된 foreign table로 Hologres에서 조회

이 방식은 “Lakehouse에서 같은 데이터로 배치+서빙을 돌린다”는 감각에 가장 가깝습니다.

방법 B) “서빙 성능 최우선”: MaxCompute 결과를 Hologres 내부 테이블로 적재

  • DataStudio에서 “Data Synchronization from MaxCompute” 노드로 MaxCompute 데이터를 Hologres 내부 테이블로 Import(복제)하는 기능이 있습니다.
  • 문서상으로도 “foreign table로 조회하는 것보다 import가 성능이 더 좋다”는 취지로 안내합니다.

절차(요약)

  1. DataStudio → Scheduled Workflow
  2. Create Node → Hologres → Data Synchronization from MaxCompute
  3. Source(MaxCompute 테이블) / Destination(Hologres 데이터소스·DB) 설정
  4. 실행 + (필요 시) 스케줄 설정

또는 DataWorks의 Data Catalog에서 테이블 우클릭 → “Data Synchronization to Hologres“로 진입하는 흐름도 있습니다.


정리

End-to-End 과정

  • OSS = 원천 파일 창고(레이크)
  • MaxCompute = 큰 ETL 공장(배치 변환)
  • Hologres = 빠른 조회 매장(대시보드/앱이 붙는 DB)
  • DataWorks = 공장 자동화/스케줄러(파이프라인 버튼/운영판)
OSS(원천) → MaxCompute(정제/집계) → Hologres(서빙/대시보드)

위 과정을 DataWorks가 스케줄/운영으로 묶어줌.

  • 방법 A(바로보기): “매장(Hologres)에 진열은 안 해두고, 창고(MaxCompute)에서 필요할 때마다 가져와 보여줌
  • 방법 B(복사하기): “매장(Hologres)에 베스트셀러를 복사해서 진열해두고, 손님(대시보드/앱)이 빠르게 집어감”

처음엔 무조건 A로 성공 경험 → 트래픽/대시보드가 커지면 B로 옮기는 식이 많이 씁니다.

  • MaxCompute에서 정제 테이블이 만들어진다
  • DataWorks에서 그 작업이 스케줄로 매일/매시간 돈다
  • Hologres에서 그 결과가 SQL로 조회된다(방법 A 또는 방법 B 방식)