Alibaba Cloud DLF Rest Catalog 통합
클라우드 네이티브 데이터 레이크 아키텍처의 핵심 구성 요소인 Alibaba Cloud Data Lake Formation (DLF)는 사용자가 클라우드 네이티브 데이터 레이크 솔루션을 빠르게 구축할 수 있도록 지원합니다. DLF는 데이터 레이크의 통합 메타데이터 관리, 엔터프라이즈급 권한 제어, 다양한 컴퓨팅 엔진과의 원활한 통합을 제공하여 데이터 사일로를 해소하고 비즈니스 인사이트를 도출할 수 있도록 합니다.
-
메타데이터 및 스토리지 통합
빅데이터 컴퓨팅 엔진이 단일 데이터 레이크 메타데이터와 스토리지를 공유하므로 데이터 레이크 제품 간에 데이터가 원활하게 이동합니다.
-
권한 관리 통합
빅데이터 컴퓨팅 엔진이 단일 데이터 레이크 테이블 권한 설정을 공유하므로 한 번만 설정하면 모든 엔진에 적용됩니다.
-
스토리지 최적화
작은 파일 압축 병합, 만료된 스냅샷 정리, 파티션 재구성, 더 이상 사용하지 않는 파일 정리 등의 최적화 전략을 제공하여 스토리지 효율을 높입니다.
-
폭넓은 클라우드 생태계 지원
스트리밍 및 배치 컴퓨팅 엔진을 비롯한 Alibaba Cloud 제품과 긴밀하게 통합되어 즉시 사용할 수 있는 기능과 향상된 사용자 경험을 제공합니다.
DLF는 버전 2.5부터 Paimon Rest Catalog를 지원합니다. Doris는 버전 3.0.3/3.1.0부터 DLF 2.5+ Paimon Rest Catalog와의 통합을 지원하므로 DLF에 원활하게 연결하여 Paimon 테이블 데이터에 액세스하고 분석할 수 있습니다. 이 문서에서는 Apache Doris를 DLF 2.5+에 연결하고 Paimon 테이블 데이터에 액세스하는 방법을 설명합니다.
이 기능은 Doris 버전 3.0.3/3.1.0부터 지원됩니다.
사용 가이드
01 DLF 서비스 활성화
DLF 공식 문서를 참고하여 DLF 서비스를 활성화하고 해당 Catalog, 데이터베이스, 테이블을 생성하세요.
02 EMR Spark SQL을 사용하여 DLF에 액세스
-
연결
spark-sql --master yarn \
--conf spark.driver.memory=5g \
--conf spark.sql.defaultCatalog=paimon \
--conf spark.sql.catalog.paimon=org.apache.paimon.spark.SparkCatalog \
--conf spark.sql.catalog.paimon.metastore=rest \
--conf spark.sql.extensions=org.apache.paimon.spark.extensions.PaimonSparkSessionExtensions \
--conf spark.sql.catalog.paimon.uri=http://<region>-vpc.dlf.aliyuncs.com \
--conf spark.sql.catalog.paimon.warehouse=<your-catalog-name> \
--conf spark.sql.catalog.paimon.token.provider=dlf \
--conf spark.sql.catalog.paimon.dlf.token-loader=ecswarehouse와uri를 각각 알맞은 값과 주소로 바꾸세요. -
데이터 쓰기
USE <your-catalog-name>;
CREATE TABLE users_samples
(
user_id INT,
age_level STRING,
final_gender_code STRING,
clk BOOLEAN
);
INSERT INTO users_samples VALUES
(1, '25-34', 'M', true),
(2, '18-24', 'F', false);
INSERT INTO users_samples VALUES
(3, '25-34', 'M', true),
(4, '18-24', 'F', false);
INSERT INTO users_samples VALUES
(5, '25-34', 'M', true),
(6, '18-24', 'F', false);다음 오류가 발생하면
paimon-jindo-x.y.z.jar파일을/opt/apps/PAIMON/paimon-dlf-2.5/lib/spark3에서 제거한 다음 Spark 서비스를 다시 시작하고 재시도하세요.Ambiguous FileIO classes are:
org.apache.paimon.jindo.JindoLoader
org.apache.paimon.oss.OSSLoader
03 Doris를 사용하여 DLF에 연결
-
Paimon Catalog 생성
CREATE CATALOG paimon_dlf_test PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'rest',
'uri' = 'http://<region>-vpc.dlf.aliyuncs.com',
'warehouse' = '<your-catalog-name>',
'paimon.rest.token.provider' = 'dlf',
'paimon.rest.dlf.access-key-id' = '<ak>',
'paimon.rest.dlf.access-key-secret' = '<sk>'
);- Doris는 DLF가 반환하는 임시 자격 증명을 사용하여 OSS 객체 스토리지에 액세스하므로 별도의 OSS 자격 증명이 필요하지 않습니다.
- DLF는 동일한 VPC 내에서만 액세스할 수 있습니다. 올바른 URI 주소를 입력하세요.
-
데이터 쿼리
SELECT * FROM users_samples ORDER BY user_id;
+---------+-----------+-------------------+------+
| user_id | age_level | final_gender_code | clk |
+---------+-----------+-------------------+------+
| 1 | 25-34 | M | 1 |
| 2 | 18-24 | F | 0 |
| 3 | 25-34 | M | 1 |
| 4 | 18-24 | F | 0 |
| 5 | 25-34 | M | 1 |
| 6 | 18-24 | F | 0 |
+---------+-----------+-------------------+------+ -
시스템 테이블 쿼리
SELECT snapshot_id, commit_time, total_record_count FROM users_samples$snapshots;
+-------------+-------------------------+--------------------+
| snapshot_id | commit_time | total_record_count |
+-------------+-------------------------+--------------------+
| 1 | 2025-08-09 05:56:02.906 | 2 |
| 2 | 2025-08-13 03:41:32.732 | 4 |
| 3 | 2025-08-13 03:41:35.218 | 6 |
+-------------+-------------------------+--------------------+ -
증분 읽기
SELECT * FROM users_samples@incr('startSnapshotId'=1, 'endSnapshotId'=2) ORDER BY user_id;
+---------+-----------+-------------------+------+
| user_id | age_level | final_gender_code | clk |
+---------+-----------+-------------------+------+
| 3 | 25-34 | M | 1 |
| 4 | 18-24 | F | 0 |
+---------+-----------+-------------------+------+