Artikel ini menjelaskan cara membuat Catalog Paimon DLF berbasis Flink, membaca data bisnis MySQL CDC, menuliskannya ke DLF, lalu menggunakan proyek eksternal MaxCompute untuk melakukan analisis federasi data lake, serta menuliskan hasilnya kembali ke DLF. Artikel ini menggunakan DLF versi baru, yang berbeda dari DLF 1.0 versi lama. Informasi lebih lanjut mengenai DLF versi baru tersedia di Data Lake Formation.
Prasyarat
-
Layanan OSS telah diaktifkan.
-
Layanan DLF telah diaktifkan.
-
Layanan Flink telah diaktifkan.
-
Proyek MaxCompute telah dibuat dan switch Schema dukungan metadata tingkat proyek telah diaktifkan.
Layanan Flink dan instans RDS MySQL adalah contoh produk cloud yang digunakan dalam praktik end-to-end ini. Jika data Paimon sudah tersedia di DLF, Anda tidak perlu membuatnya.
Langkah-langkah Operasional
Jika data uji sudah tersedia di DLF, Anda dapat melewati Langkah 1–4 dan langsung memulai dari Langkah 5.
Langkah 1: Persiapan Data Sumber
-
Langkah ini mensimulasikan data pembaruan real-time dari sistem bisnis dan menuliskannya ke lake dalam format Paimon melalui Flink.
-
Masuk ke Konsol RDS.
-
Pada bilah navigasi kiri, pilih Instances, lalu pilih wilayah di pojok kiri atas.
-
Pada halaman Instances, klik Instance ID/Name instans target untuk membuka halaman Instance Details.
-
Pada bilah navigasi kiri, klik Databases.
-
Klik Create Database. Konfigurasikan parameter berikut:
Parameter
Wajib Isi
Keterangan
Contoh
Database Name
Wajib
-
Panjang 2–64 karakter.
-
Dimulai dengan huruf dan diakhiri dengan huruf atau angka.
-
Terdiri dari huruf kecil, angka, garis bawah (_), atau tanda hubung (-).
-
Nama database harus unik dalam satu instans.
-
Jika nama database mengandung
-, folder database yang dibuat akan mengganti-menjadi@002d.
dlf25_paimonSupported Character Set
Wajib
Pilih character set sesuai kebutuhan.
utf8Authorized By
Opsional
-
Pilih akun yang perlu mengakses database ini. Parameter ini boleh dikosongkan dan akun dapat ditautkan setelah database dibuat.
-
Hanya akun biasa yang ditampilkan di sini. Akun dengan hak akses tinggi memiliki semua izin ke semua database sehingga tidak perlu diberi otorisasi.
DefaultDescription
Opsional
Gunakan untuk mencatat informasi terkait database guna memudahkan manajemen selanjutnya. Maksimal 256 karakter.
Membuat database uji DLF2.5 untuk proyek eksternal. -
-
Klik Log On to Database. Pada bilah navigasi kiri, pilih Instance dan klik ganda database yang telah dibuat. Pada halaman SQL Console di sebelah kanan, jalankan pernyataan berikut untuk membuat tabel uji dan memasukkan data uji.
Jika instans sudah ada tetapi database target tidak muncul setelah Anda membukanya, kemungkinan penyebabnya adalah:
Akun login tidak memiliki izin akses ke database target: Anda dapat membuka halaman Accounts pada halaman detail instans RDS untuk secara manual mengubah izin akun atau mengganti akun database login.
Direktori tidak ditampilkan karena metadata belum disinkronkan: Arahkan kursor ke instans, lalu klik ikon
di sebelah kanan nama instans untuk menyegarkan daftar dan menampilkan database.
CREATE TABLE emp ( empno INT PRIMARY KEY, ename VARCHAR(20), job VARCHAR(20), mgr INT, hiredate DATE, sal DECIMAL(10,2), comm DECIMAL(10,2), deptno INT ); INSERT INTO emp VALUES (7369,'SMITH','CLERK',7902,'2020-12-17', 800.00,NULL,20), (7499,'ALLEN','SALESMAN',7698,'2021-02-20',1600.00,300.00,30), (7521,'WARD','SALESMAN',7698,'2021-02-22',1250.00,500.00,30), (7566,'JONES','MANAGER',7839,'2021-04-02',2975.00,NULL,20), (7654,'MARTIN','SALESMAN',7698,'2021-09-28',1250.00,1400.00,30), (7698,'BLAKE','MANAGER',7839,'2021-05-01',2850.00,NULL,30), (7782,'CLARK','MANAGER',7839,'2021-06-09',2450.00,NULL,10), (7788,'SCOTT','ANALYST',7566,'2021-12-09',3000.00,NULL,20), (7839,'KING','PRESIDENT',NULL,'2021-11-17',5000.00,NULL,10), (7844,'TURNER','SALESMAN',7698,'2021-09-08',1500.00,0.00,30), (7876,'ADAMS','CLERK',7788,'2022-01-12',1100.00,NULL,20), (7900,'JAMES','CLERK',7698,'2021-12-03', 950.00,NULL,30), (7902,'FORD','ANALYST',7566,'2021-12-03',3000.00,NULL,20), (7934,'MILLER','CLERK',7782,'2022-01-23',1300.00,NULL,10), (8001,'DUKE','ENGINEER',7788,'2023-03-15',3500.00,NULL,20), (8002,'DANIEL','ENGINEER',7788,'2023-04-01',3400.00,NULL,20), (8003,'SANDRA','CONSULTANT',7698,'2023-05-10',2700.00,NULL,30), (8004,'KAREN','CLERK',7902,'2023-06-11',1200.00,NULL,20), (8005,'JOHN','MANAGER',7839,'2023-07-12',4000.00,NULL,10), (8006,'LISA','DESIGNER',7698,'2023-08-13',2200.00,NULL,30); -
Query data tabel uji.
SELECT * FROM emp;Hasil yang dikembalikan:
Total 20 record dikembalikan, mencakup 8 field:
empno(nomor karyawan),ename(nama),job(jabatan),mgr(nomor atasan),hiredate(tanggal masuk),sal(gaji),comm(komisi), dandeptno(nomor departemen). Karyawan mencakup SMITH, ALLEN, WARD, JONES, MARTIN, BLAKE, CLARK, SCOTT, KING, TURNER, ADAMS, JAMES, FORD, MILLER, DUKE, DANIEL, SANDRA, KAREN, JOHN, dan LISA, dengan jabatan seperti CLERK, SALESMAN, MANAGER, ANALYST, PRESIDENT, ENGINEER, CONSULTANT, dan DESIGNER. Nomor departemen adalah 10, 20, dan 30. Nilaicommbeberapa karyawan bernilai NULL.
Langkah 2: Persiapan Metadata Database DLF
-
Login ke Konsol Data Lake Formation (DLF), lalu pilih wilayah di pojok kiri atas.
-
Pada bilah navigasi kiri, pilih Catalog List.
-
Pada halaman Catalogs di sebelah kanan, klik Create Catalog.
-
Masuk ke halaman Data Lake Formation (DLF), isi parameter berikut, lalu klik Create Catalog:
Parameter
Wajib Isi
Keterangan
Catalog Name
Wajib
Nama Catalog bersifat kustom, dimulai dengan huruf, panjang 1–256 karakter, hanya boleh berisi a–z, A–Z, 0–9, dan _. Contoh:
db_dlf25_oss.Description
Opsional
Deskripsi kustom.
Storage Type
Wajib
Penyimpanan standar.
Storage Redundancy Type
Wajib
-
Redundansi lokal: data disimpan dalam satu AZ (Availability Zone). Jika AZ tersebut tidak tersedia, data tidak dapat diakses. Disarankan menggunakan redundansi antar-AZ.
-
Redundansi antar-AZ: mekanisme redundansi multi-AZ dalam satu Region. Jika satu AZ tidak tersedia, data tetap dapat diakses. Setelah Catalog dibuat, redundansi antar-AZ tidak dapat diubah menjadi redundansi lokal. Redundansi antar-AZ menawarkan ketersediaan data yang lebih baik dibanding redundansi lokal, namun harganya lebih tinggi. Gunakan redundansi antar-AZ jika Anda memerlukan keandalan data yang lebih tinggi.
-
Langkah 3: Membuat Catalog Paimon dan MySQL Berbasis Flink
-
Buat Katalog Paimon
-
Login ke Konsol Flink, lalu pilih wilayah di pojok kiri atas.
-
Klik nama ruang kerja target, lalu pada panel navigasi kiri, pilih 数据管理.
-
Pada halaman Catalog列表 , klik 创建Catalog . Pada dialog 创建 Catalog yang muncul, pilih Apache Paimon, klik 下一步 , lalu konfigurasikan parameter berikut:
Parameter
Wajib Isi
Keterangan
metastore
Wajib
Jenis penyimpanan metadata. Pada contoh ini, pilih
dlf.catalog name
Wajib
Pilih Catalog DLF versi V2.5 yang ingin dikaitkan. Di DLF, pilih
db_dlf25_oss
-
-
Membuat katalog MySQL
-
Login ke Konsol Flink, lalu pilih wilayah di pojok kiri atas.
-
Tambahkan daftar putih
-
Klik 操作 kolom 详情 workspace target.
Pada panel 工作空间详情 yang muncul, salin informasi 网段.
-
Masuk ke Konsol RDS.
Pada bilah navigasi kiri, pilih Instances, lalu pilih wilayah di pojok kiri atas.
Pada halaman Instances, klik Instance ID/Name instans target untuk membuka halaman Instance Details.
-
Pada bilah navigasi kiri, klik Whitelist and SecGroup.
Pada tab Whitelist Settings, klik Modify.
-
Pada dialog Edit Whitelist yang muncul, tambahkan alamat IP yang disalin ke field IP Addresses, lalu klik OK.
-
-
Login ke Konsol Flink, lalu pilih wilayah di pojok kiri atas.
Klik nama workspace target, lalu pada bilah navigasi kiri, pilih 数据管理.
-
Pada halaman Catalog列表 , klik 创建Catalog . Pada dialog 创建 Catalog yang muncul, pilih MySQL, klik 下一步 , lalu konfigurasikan parameter berikut:
Parameter
Wajib Isi
Keterangan
catalog name
Wajib
Nama kustom untuk Catalog MySQL. Contoh:
mysql-catalog-dlf25.hostname
Wajib
-
Alamat IP atau hostname database MySQL.
-
Anda dapat login ke Konsol RDS MySQL, buka halaman detail instans database, lalu klik Database Connection untuk melihat Internal Endpoint, Public Endpoint, dan Internal Port:.
-
Untuk akses cross-VPC atau publik, pastikan konektivitas jaringan telah dikonfigurasi. Detailnya tersedia di Network connectivity.
port
Default
Port untuk koneksi ke server, default-nya 3306.
default database
Wajib
Nama database default. Contoh:
dlf25_paimon.username
Wajib
Username untuk koneksi ke server database MySQL. Anda dapat login ke Konsol RDS MySQL, buka halaman detail instans database, lalu klik Accounts untuk melihatnya.
password
Wajib
Password untuk koneksi ke server database MySQL. Anda dapat login ke Konsol RDS MySQL, buka halaman detail instans database, lalu klik Accounts untuk melihatnya.
-
-
Langkah 4: Membaca Data MySQL dan Menulis ke Tabel Paimon DLF Berbasis Flink
-
Login ke Konsol Flink, lalu pilih wilayah di pojok kiri atas.
-
Klik nama workspace target, lalu pada bilah navigasi kiri, pilih .
-
Pada tab 作业草稿, klik
untuk membuat folder baru. -
Klik kanan folder, pilih 新建流作业, lalu pada dialog 新建作业草稿 yang muncul, isi 文件名称 dan pilih 引擎版本.
-
Masukkan dan jalankan pernyataan SQL berikut dalam file. Sesuaikan nama dalam kode sesuai penamaan aktual.
CREATE TABLE IF NOT EXISTS `db_dlf25_oss`.`default`.`emp` WITH ( 'bucket' = '4', 'changelog-producer' = 'input' ) AS TABLE `mysql-catalog-dlf25`.`dlf25_paimon`.`emp`;-
(Opsional) Klik 深度检查 di pojok kanan atas untuk memastikan tidak ada kesalahan sintaks pada pernyataan Flink SQL.
-
Klik 部署 di sudut kanan atas. Pada kotak dialog 部署新版本 yang muncul, isi informasi seperti 备注, 作业标签, dan 部署目标, lalu klik 确定.
-
-
Klik nama workspace target, lalu pada bilah navigasi kiri, pilih .
-
Pada halaman 作业运维, klik nama pekerjaan target untuk membuka halaman 部署详情.
-
Di pojok kanan atas halaman detail deployment pekerjaan target, klik 启动, pilih 无状态启动, lalu klik 启动.
-
Query Data Paimon
Di panel navigasi kiri, pilih .
Pada tab 查询脚本, klik
untuk membuat skrip query baru.SELECT * FROM `db_dlf25_oss`.`default`.`emp`;Hasil query menunjukkan tabel EMP mengembalikan total 22 record, mencakup field
empno,ename,job,mgr,hiredate,sal,comm, dandeptno, yang menunjukkan data telah berhasil ditulis dari MySQL ke tabel Paimon DLF melalui Flink. -
Login ke Konsol Data Lake Formation (DLF), pilih , klik direktori data, lalu masuk ke database untuk melihat detail tabel yang telah disinkronkan.
Daftar tabel menampilkan tabel emp yang telah disinkronkan, dengan Owner root (akun utama), tipe tabel Managed, format tabel Tabel PK Paimon, dan format file parquet.
Langkah 5: Membuat Sumber Data Eksternal Paimon_DLF di MaxCompute
-
Login ke Konsol MaxCompute dan pilih wilayah di pojok kiri atas.
-
Pada bilah navigasi kiri, pilih .
-
Pada halaman External Data Source, klik Create External Data Source.
-
Pada dialog Create External Data Source, konfigurasikan parameter. Tabel berikut menjelaskan parameter tersebut.
Parameter
Wajib
Keterangan
External Data Source Type
Ya
Pilih Paimon_DLF.
External Data Source Name
Ya
Nama untuk sumber data eksternal. Nama harus memenuhi persyaratan berikut:
Harus dimulai dengan huruf dan hanya boleh berisi huruf kecil, garis bawah (_), dan angka.
Panjang maksimal 128 karakter.
Contoh:
paimon_dlf.Description
Tidak
Opsional. Deskripsi sumber data eksternal.
Region
Ya
Default ke wilayah saat ini.
Authentication and Authorization
Ya
Nilai default adalah peran RAM Alibaba Cloud.
Service-linked Role
Ya
Dihasilkan secara otomatis.
Endpoint
Ya
Dihasilkan secara otomatis. Misalnya, endpoint untuk wilayah China (Hangzhou) adalah
cn-hangzhou-intranet.dlf.aliyuncs.com.Foreign Server Supplemental Properties
Tidak
Opsional. Menentukan atribut tambahan untuk sumber data. Atribut ini mendefinisikan cara tugas yang menggunakan sumber data ini mengakses sistem sumber.
CatatanLihat dokumentasi resmi untuk daftar lengkap parameter yang didukung. Parameter tambahan mungkin ditambahkan di pembaruan mendatang.
-
Klik OK untuk membuat sumber data eksternal.
-
Pada halaman External Data Source, temukan sumber data tersebut dan klik Details di kolom Actions untuk melihat detailnya.
Langkah 6: Membuat Proyek Eksternal Paimon_DLF di MaxCompute
-
Login ke Konsol MaxCompute dan pilih wilayah di pojok kiri atas.
-
Pada bilah navigasi kiri, pilih .
-
Pada tab External Project, klik Create Project.
-
Pada dialog Create Project, konfigurasikan pengaturan dan klik OK.
Parameter
Wajib Isi
Keterangan
Project Type
Wajib
Default ke proyek eksternal.
Region
Wajib
Default ke wilayah saat ini dan tidak dapat diubah.
Project Name (Globally Unique)
Wajib
Dimulai dengan huruf, hanya boleh berisi huruf, angka, dan garis bawah (_), panjang 3–28 karakter.
MaxCompute Foreign Server Type
Opsional
Default ke Paimon_DLF.
MaxCompute Foreign Server
Opsional
-
Use Existing: menampilkan sumber data eksternal yang telah dibuat.
-
Create Foreign Server: membuat dan menggunakan sumber data eksternal baru.
MaxCompute Foreign Server Name
Wajib
-
Pilih yang sudah ada: pilih nama sumber data eksternal yang telah dibuat dari daftar drop-down.
-
Buat sumber data eksternal baru: gunakan nama sumber data eksternal yang baru dibuat.
Authentication and Authorization
Wajib
Identitas pelaksana tugas. Jika peran terkait layanan belum dibuat, Anda harus membuatnya terlebih dahulu sebelum menggunakan mode ini.
Service-linked Role
Wajib
Dihasilkan secara default.
Endpoint
Wajib
Dihasilkan secara default.
Data Catalog
Wajib
Katalog data DLF.
Billing Method
Wajib
Subscription atau Pay-as-you-go.
Default Quota
Wajib
Pilih Kuota yang sudah ada.
Description
Opsional
Deskripsi proyek kustom.
-
Langkah 7: Analisis Data
-
Pilih tool koneksi untuk login ke proyek eksternal.
-
Daftar schema dalam proyek eksternal.
-- Aktifkan switch dukungan sintaks schema tingkat sesi. SET odps.namespace.schema=true; SHOW schemas; -- Hasil yang dikembalikan. ID = 20250919****am4qb default system OK -
Daftar tabel dalam schema proyek eksternal.
-- Aktifkan switch dukungan sintaks schema tingkat sesi. SET odps.namespace.schema=true; USE schema default; SHOW tables; -- Hasil yang dikembalikan. ID = 20250919****am4qb acs:ram::<uid>:root emp OK -
Baca tabel Paimon di DLF.
-- Aktifkan switch dukungan sintaks schema tingkat sesi. SET odps.namespace.schema=true; USE schema default; SELECT * FROM emp; -
Query "informasi lengkap karyawan dengan gaji tertinggi dan terendah di setiap departemen" dari tabel emp.
-- Aktifkan switch dukungan sintaks schema tingkat sesi. SET odps.namespace.schema=true; USE schema default; WITH ranked AS ( SELECT e.*, ROW_NUMBER() OVER (PARTITION BY deptno ORDER BY sal DESC) AS rn_desc, ROW_NUMBER() OVER (PARTITION BY deptno ORDER BY sal ASC) AS rn_asc FROM emp e ) SELECT * FROM ranked WHERE rn_desc = 1 OR rn_asc = 1 ORDER BY deptno, sal DESC;
Langkah 8: Menulis Hasil Analisis Kembali ke DLF
-
Buat tabel dalam proyek eksternal pada langkah sebelumnya untuk menerima hasil analisis SQL.
-- Aktifkan switch dukungan sintaks schema tingkat sesi. SET odps.namespace.schema=true; use schema default; CREATE TABLE emp_detail ( empno INT, ename VARCHAR(20), job VARCHAR(20), mgr INT, hiredate DATE, sal DECIMAL(10,2), comm DECIMAL(10,2), deptno INT ); -
Tulis hasil analisis Langkah 5 ke tabel baru.
-- Aktifkan switch dukungan sintaks schema tingkat sesi. SET odps.namespace.schema=true; use schema default; WITH ranked AS ( SELECT e.*, ROW_NUMBER() OVER (PARTITION BY deptno ORDER BY sal DESC) AS rn_desc, ROW_NUMBER() OVER (PARTITION BY deptno ORDER BY sal ASC) AS rn_asc FROM emp e ) insert into emp_detail SELECT empno,ename,job,mgr, hiredate,sal,comm,deptno FROM ranked WHERE rn_desc = 1 OR rn_asc = 1 ORDER BY deptno, sal DESC; -
Query tabel baru.
-- Aktifkan switch dukungan sintaks schema tingkat sesi. SET odps.namespace.schema=true; use schema default; SELECT * FROM emp_detail; -
Login ke Konsol Data Lake Formation (DLF), pada bilah navigasi kiri pilih Catalog List, lalu lihat tabel baru
emp_detail.