알리바바 클라우드에서 MaxCompute(배치/레이크하우스), Hologres(실시간 인터랙티브), DataWorks(개발, 오케스트레이션, 거버넌스) 조합으로 Databricks “Lakehouse 플랫폼”에 가까운 사용 방식을 만들 수 있다.
핵심은 “저장(OSS)-배치(Maxcompute)-실시간 서빙(Hologres)-워크플로/커버넌스(Dataworks)의 흐름이다.
| Databricks에서 하는 일 | 알리바바 클라우드 서비스(대표) | 설명 |
|---|---|---|
| 레이크/테이블 관리(데이터 레이크하우스의 기반) | OSS + MaxCompute | MaxCompute는 내부 스토리지뿐 아니라 OSS 같은 외부 스토리지 데이터를 외부 테이블로 직접 읽는 구조를 지원합니다. |
| 배치 ETL/대규모 SQL 처리 | MaxCompute | 대규모 DW/배치 처리를 담당(주로 SQL 중심, 필요 시 Spark 계열 연계). |
| 실시간/저지연 SQL, 서빙(“SQL Warehouse”) | Hologres | PostgreSQL 호환 + JDBC/ODBC로 BI/앱 연결, 고동시성·저지연 인터랙티브 분석/서빙에 초점. |
| 워크플로/잡 스케줄링/개발 워크스페이스 | DataWorks (Data Studio/Operation Center 등) | 수집→개발→스케줄링→운영/모니터링을 한곳에서. Hologres도 DataWorks와 통합됩니다. |
| 통합 카탈로그/라인리지/거버넌스 | DataWorks (거버넌스 모듈) | 메타데이터/데이터 수명주기/표준화/거버넌스 관점의 “컨트롤 플레인” 역할. |
권장 아키텍처
- 원천 데이터 적재 : OSS(데이터 레이크 영역)로 로그/이벤트/파일 등 저장
- 배치 정제/모델링 : MaxCompute에서 정제, 집계, 데이터마트 생성(외부 테이블로 OSS 읽기 포함)
- 실시간/서빙 계층 : Hologres에 최신 집계/차원/서빙 테이블을 유지(대시보드, API, 앱 쿼리)
- 오케스트레이션/운영 : DataWorks에서 파이프라인(배치 + 실시간)을 스케줄링/모니터링/권한, 표준 적용
- 서로 연결(핵심 포인트) : 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에서 보통 이렇게 구성합니다.
- 동기화 노드(OSS/DB → MaxCompute ODS 적재)
- MaxCompute SQL 노드(ODS → DWD 정제)
- MaxCompute SQL 노드(DWD → DWS/ADS 집계)
- (선택) 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” 노드로 여러 테이블의 포린테이블을 한 번에 만들 수 있습니다.
절차(요약)
- DataStudio → Scheduled Workflow
- Create Node → Hologres → Schema Synchronization from MaxCompute
- Destination(Hologres) / DB / Schema 선택 → 실행
- 생성된 foreign table로 Hologres에서 조회
이 방식은 “Lakehouse에서 같은 데이터로 배치+서빙을 돌린다”는 감각에 가장 가깝습니다.
방법 B) “서빙 성능 최우선”: MaxCompute 결과를 Hologres 내부 테이블로 적재
- DataStudio에서 “Data Synchronization from MaxCompute” 노드로 MaxCompute 데이터를 Hologres 내부 테이블로 Import(복제)하는 기능이 있습니다.
- 문서상으로도 “foreign table로 조회하는 것보다 import가 성능이 더 좋다”는 취지로 안내합니다.
절차(요약)
- DataStudio → Scheduled Workflow
- Create Node → Hologres → Data Synchronization from MaxCompute
- Source(MaxCompute 테이블) / Destination(Hologres 데이터소스·DB) 설정
- 실행 + (필요 시) 스케줄 설정
또는 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 방식)