Topik ini menjelaskan cara menggunakan Flink untuk membuat Catalog DLF Paimon, membaca data bisnis dari MySQL Change Data Capture (CDC), dan menulis data tersebut ke DLF. Anda kemudian dapat menggunakan proyek eksternal MaxCompute untuk melakukan kueri terfederasi dan analisis pada data lake, serta menulis hasilnya kembali ke DLF. Topik ini menggunakan versi baru DLF, yang berbeda dari DLF 1.0. Untuk informasi selengkapnya tentang versi baru DLF, lihat Data Lake Formation.
Prasyarat
Anda telah mengaktifkan layanan OSS.
Anda telah mengaktifkan layanan DLF.
Anda telah mengaktifkan layanan Flink.
Anda telah membuat proyek MaxCompute dan mengaktifkan switch skema untuk metadata tingkat proyek.
Anda telah membuat instans RDS for MySQL.
Prosedur
Langkah 1: Siapkan data sumber
Jika Anda sudah memiliki data uji MySQL, lewati langkah ini.
Langkah ini mensimulasikan pembaruan data real-time dari sistem bisnis. Flink menulis data ke data lake dalam format Paimon.
Login ke Konsol RDS.
Di panel navigasi sebelah kiri, klik Instances. Lalu, pilih wilayah di pojok kiri atas.
Pada halaman Instances, klik Instance ID/Name instans target untuk membuka halaman detailnya.
Di panel navigasi sebelah kiri, klik Databases.
Klik Create Database. Konfigurasikan parameter berikut:
Parameter
Wajib
Deskripsi
Contoh
Database Name
Wajib
Nama harus terdiri dari 2 hingga 64 karakter.
Nama harus dimulai dengan huruf dan diakhiri dengan huruf atau angka.
Nama dapat berisi huruf kecil, angka, garis bawah (_), dan tanda hubung (-).
Nama database harus unik dalam instans tersebut.
Jika nama database mengandung tanda hubung (
-), tanda hubung (-) dalam nama folder database yang dibuat akan diganti dengan@002d.
dlf25_paimonSupported Character Set
Wajib
Pilih set karakter sesuai kebutuhan.
utf8Authorized By
Opsional
Pilih akun yang perlu mengakses database ini. Anda dapat mengosongkan parameter ini dan menyambungkan akun setelah database dibuat.
Hanya akun standar yang ditampilkan di sini. Akun istimewa memiliki semua izin pada semua database dan tidak memerlukan otorisasi.
DefaultDescription
Opsional
Masukkan catatan tentang database untuk keperluan manajemen di masa mendatang. Catatan dapat terdiri dari maksimal 256 karakter.
Buat database uji untuk proyek eksternal DLF 2.5.Klik Log On to Database. Di panel navigasi sebelah kiri, pilih Database Instances. Klik ganda database yang telah Anda buat. Pada halaman SQLConsole, jalankan pernyataan berikut untuk membuat tabel uji dan menulis data uji.
Jika instans ada tetapi database target tidak ditampilkan setelah Anda memperluas instans, alasannya mungkin salah satu dari berikut:
Akun login tidak memiliki akses ke database target: Anda dapat membuka halaman Accounts instans RDS untuk mengubah izin akun atau mengganti akun database login.
Metadata belum disinkronkan, sehingga direktori tidak ditampilkan: Arahkan kursor mouse ke instans yang berisi database target. Klik tombol
di sebelah kanan nama instans untuk menyegarkan daftar 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);Kueri data dalam tabel uji.
SELECT * FROM emp;Hasil berikut dikembalikan:

Langkah 2: Siapkan metadatabase DLF
Login ke Konsol Data Lake Formation (DLF) dan pilih wilayah di pojok kiri atas.
Di panel navigasi sebelah kiri, pilih Catalog List.
Pada halaman Catalogs, klik Create Catalog.
Pada halaman Data Lake Formation (DLF) , masukkan parameter berikut lalu klik Create Catalog:
Parameter
Wajib
Deskripsi
Catalog Name
Wajib
Nama katalog kustom. Nama harus dimulai dengan huruf dan terdiri dari 1 hingga 256 karakter. Nama dapat berisi huruf, angka, dan garis bawah (_). Contohnya,
db_dlf25_oss.Description
Opsional
Deskripsi kustom.
Storage Type
Wajib
Standard.
Storage Redundancy Type
Wajib
Penyimpanan redundan lokal: Data disimpan dalam satu zona. Jika zona tempat data disimpan tidak tersedia, data menjadi tidak dapat diakses. Kami menyarankan Anda menggunakan penyimpanan redundan zona.
Penyimpanan redundan zona: Ini adalah mekanisme redundansi multi-zona dalam wilayah yang sama. Jika satu zona tidak tersedia, data Anda tetap tersedia. Setelah katalog dibuat, Anda tidak dapat mengubah jenis redundansi penyimpanannya dari redundan zona ke redundan lokal. Penyimpanan redundan zona memberikan ketersediaan data yang lebih tinggi daripada penyimpanan redundan lokal tetapi lebih mahal. Kami merekomendasikan penyimpanan redundan zona untuk data yang memerlukan ketersediaan tinggi.
Automatic Storage Tiering
Wajib
Setelah Anda mengaktifkan fitur ini, sistem secara otomatis melakukan tiering penyimpanan data panas dan dingin untuk semua tabel dalam katalog berdasarkan aturan siklus hidup yang dikonfigurasi. Tentukan parameter berikut sesuai kebutuhan:
Infrequent Access, Archive, dan Cold Archive memiliki periode retensi minimum masing-masing 30 hari, 60 hari, dan 180 hari. Jika Anda menghapus data sebelum periode retensi minimum berakhir, Anda tetap dikenai biaya untuk periode retensi minimum tersebut.
Saat Anda menggunakan aturan siklus hidup untuk mengubah kelas penyimpanan, biaya untuk jumlah permintaan yang sesuai akan dikenakan. Konfigurasikan pengaturan ini dengan hati-hati.
Cold Archive adalah kelas penyimpanan redundan lokal. Datanya disimpan secara redundan dalam zona tertentu. Jika zona tersebut tidak tersedia, data menjadi tidak dapat diakses. Jika bisnis Anda memerlukan ketersediaan yang lebih tinggi, kami sangat menyarankan Anda menggunakan kelas penyimpanan redundan zona (Standard, Infrequent Access, atau Archive) untuk menyimpan dan menggunakan data Anda.
Setelah data dikonversi ke Cold Archive, Anda harus memulihkannya sebelum dapat mengaksesnya. Dalam kuota pemulihan, latensi pemulihan adalah 2 hingga 5 jam. Anda tidak dapat mengakses data hingga pemulihan selesai. Lanjutkan dengan hati-hati.
Langkah 3: Buat katalog Paimon dan MySQL menggunakan Flink
Buat katalog Paimon
Login ke Konsol Flink, dan pilih wilayah di pojok kiri atas.
Klik nama ruang kerja target. Di panel navigasi sebelah kiri, pilih Catalogs .
Pada halaman Catalog List , klik Create Catalog di sebelah kanan. Di kotak dialog Create Catalog , pilih Apache Paimon, klik Next , lalu konfigurasikan parameter berikut:
Parameter
Wajib
Deskripsi
metastore
Wajib
Jenis metastore. Dalam contoh ini, pilih
dlf.catalog name
Wajib
Pilih Catalog DLF versi yang ingin Anda asosiasikan. Pilih DLF V2.5. Dalam contoh ini, yaitu
db_dlf25_ossyang dibuat di DLF.
Buat katalog MySQL
Login ke Konsol Flink, dan pilih wilayah di pojok kiri atas.
Tambahkan alamat IP ke daftar putih.
Di kolom Actions untuk ruang kerja target, klik Details.
Di panel Workspace Details , salin CIDR Block vSwitch.
Login ke Konsol RDS.
Di panel navigasi sebelah kiri, klik Instances. Lalu, pilih wilayah di pojok kiri atas.
Pada halaman Instances, klik Instance ID/Name instans target untuk membuka halaman detailnya.
Di panel navigasi sebelah kiri, klik Whitelist and SecGroup.
Pada tab Whitelist Settings, klik Modify.
Di kotak dialog Edit Whitelist, tambahkan blok CIDR yang disalin ke bidang IP Addresses, lalu klik OK.
Login ke Konsol Flink, dan pilih wilayah di pojok kiri atas.
Klik nama ruang kerja target. Di panel navigasi sebelah kiri, pilih Catalogs .
Pada halaman Catalog List, klik Create Catalog. Di kotak dialog Create Catalog, pilih MySQL, klik Next, lalu konfigurasikan parameter berikut:
Parameter
Required
Description
catalog name
Required
Nama kustom untuk katalog MySQL. Contohnya,
mysql-catalog-dlf25.hostname
Required
Alamat IP atau hostname dari database MySQL.
Anda dapat login ke RDS for MySQL console. Pada halaman detail instans database, klik Database Connection untuk melihat Internal Endpoint, Public Endpoint, dan Internal Port database tersebut.
Saat mengakses lintas VPC atau melalui Internet, Anda perlu menyiapkan konektivitas jaringan. Untuk informasi selengkapnya, lihat Network Connectivity.
port
Default
Port yang digunakan untuk menghubungkan ke server. Nilai default-nya adalah 3306.
default database
Required
Nama database default. Contohnya,
dlf25_paimon.username
Required
Username yang digunakan untuk menghubungkan ke server database MySQL. Anda dapat login ke RDS for MySQL console. Pada halaman detail instans, klik Account Management untuk melihat username tersebut.
password
Required
Password yang digunakan untuk menghubungkan ke server database MySQL. Anda dapat login ke RDS for MySQL console. Pada halaman detail instans, klik Account Management untuk melihat password tersebut.
Langkah 4: Baca data MySQL dan tulis ke tabel Paimon di DLF menggunakan Flink
Login ke Konsol Flink, dan pilih wilayah di pojok kiri atas.
Klik nama ruang kerja target, lalu di panel navigasi sebelah kiri, pilih .
Pada tab Drafts, klik
untuk membuat folder baru.Klik kanan folder tersebut dan pilih New Blank Stream Draft. Di kotak dialog New Draft, masukkan Name dan pilih Engine Version.
Dalam file tersebut, tulis dan jalankan pernyataan SQL berikut. Pastikan untuk mengubah nama dalam kode sesuai dengan lingkungan aktual Anda.
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) Di pojok kanan atas, klik Validate untuk memvalidasi sintaks pernyataan SQL Flink pekerjaan tersebut.
Klik Deploy di pojok kanan atas. Di kotak dialog Deploy draft, tentukan Comment, Label, dan Deployment Target, lalu klik Confirm.
Klik nama ruang kerja target. Di panel navigasi sebelah kiri, pilih .
Pada halaman Deployments, klik nama pekerjaan target untuk membuka halaman Configuration-nya.
Di pojok kanan atas halaman detail deployment pekerjaan target, klik Start, pilih Initial Mode, lalu klik Start.
Kueri data Paimon
Di panel navigasi sebelah kiri, pilih .
Pada tab New Script, Anda dapat mengklik
untuk membuat skrip kueri baru.SELECT * FROM `db_dlf25_oss`.`default`.`emp`;Hasil berikut dikembalikan:

Login ke Konsol Data Lake Formation (DLF). Di panel navigasi, pilih . Klik katalog data untuk membuka database dan melihat detail tabel yang telah disinkronkan.

Langkah 5: Buat sumber data eksternal Paimon_DLF di MaxCompute
Login ke Konsol MaxCompute, dan pilih wilayah di pojok kiri atas.
Di panel navigasi sebelah kiri, pilih .
Pada halaman External Data Source, klik Create External Data Source.
Di kotak dialog Create External Data Source, konfigurasikan parameter. Tabel berikut menjelaskan parameter tersebut.
Parameter
Wajib
Deskripsi
External Data Source Type
Wajib
Pilih DLF+OSS.
External Data Source Name
Wajib
Nama kustom. Konvensi penamaan sebagai berikut:
Nama harus dimulai dengan huruf dan hanya boleh berisi huruf kecil, garis bawah (_), dan angka.
Nama tidak boleh melebihi 128 karakter.
Contohnya,
mysql_paimon_dlf25.Description
Opsional
Masukkan deskripsi sesuai kebutuhan.
Region
Wajib
Nilai default-nya adalah wilayah saat ini.
DLF Endpoint
Wajib
Nilai default-nya adalah DLF Endpoint wilayah saat ini.
OSS Endpoint
Wajib
Nilai default-nya adalah OSS Endpoint wilayah saat ini.
RoleARN
Wajib
Nama Sumber Daya Alibaba Cloud (ARN) dari peran RAM. Peran ini harus memiliki izin untuk mengakses DLF dan OSS.
Login ke Konsol Resource Access Management (RAM).
Di panel navigasi sebelah kiri, pilih .
Di bagian Basic Information, Anda dapat menemukan ARN.
Contoh:
acs:ram::124****:role/aliyunodpsdefaultrole.Foreign Server Supplemental Properties
Opsional
Atribut khusus untuk sumber data eksternal. Setelah Anda menentukannya, tugas yang menggunakan sumber data eksternal ini dapat mengakses sistem sumber sesuai dengan perilaku yang ditentukan.
CatatanUntuk informasi tentang parameter yang didukung, lihat dokumentasi resmi. Lebih banyak parameter akan didukung seiring perkembangan produk.
Klik Confirm untuk membuat sumber data eksternal.
Pada halaman External Data Source, temukan sumber data target dan klik Details di kolom Actions.
Langkah 6: Buat proyek eksternal Paimon_DLF di MaxCompute
Login ke Konsol MaxCompute, dan pilih wilayah di pojok kiri atas.
Di panel navigasi sebelah kiri, pilih .
Pada tab External Project, klik Create Project.
Di kotak dialog Create Project, konfigurasikan informasi proyek sesuai petunjuk lalu klik OK.
Parameter
Wajib
Deskripsi
Project Type
Wajib
Nilai default-nya adalah External Project.
Region
Wajib
Nilai default-nya adalah wilayah saat ini. Anda tidak dapat mengubahnya di sini.
Project Name (Globally Unique)
Wajib
Nama harus dimulai dengan huruf, berisi huruf, angka, dan garis bawah (_), serta terdiri dari 3 hingga 28 karakter.
MaxCompute Foreign Server Type
Opsional
Nilai default-nya adalah Paimon_DLF.
MaxCompute Foreign Server
Opsional
Use Existing: Daftar sumber data eksternal yang telah dibuat akan muncul.
Create Foreign Server: Buat dan gunakan sumber data eksternal baru.
MaxCompute Foreign Server Name
Wajib
Use Existing: Pilih nama sumber data eksternal yang telah dibuat dari daftar drop-down.
New external data source: Gunakan nama sumber data eksternal baru.
Authentication And Authorization
Wajib
Identitas pelaksana tugas. Jika peran terkait layanan belum ada, Anda harus membuatnya terlebih dahulu sebelum dapat menggunakan mode ini.
Service-linked Role
Wajib
Dibuat secara default.
Endpoint
Wajib
Dibuat 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
Gunakan tool koneksi untuk login ke proyek eksternal.
Daftar skema dalam proyek eksternal.
-- Aktifkan sintaks skema pada tingkat session. SET odps.namespace.schema=true; SHOW schemas; -- Hasil berikut dikembalikan. ID = 20250919****am4qb default system OKDaftar tabel dalam skema proyek eksternal.
USE schema default; SHOW tables; -- Hasil berikut dikembalikan. ID = 20250919****am4qb acs:ram::<uid>:root emp OKBaca data dari tabel Paimon di DLF.
SELECT * FROM emp; -- Hasil berikut dikembalikan. +------------+------------+------------+------------+------------+------------+------------+------------+ | empno | ename | job | mgr | hiredate | sal | comm | deptno | +------------+------------+------------+------------+------------+------------+------------+------------+ | 7521 | WARD | SALESMAN | 7698 | 2021-02-22 | 1250 | 500 | 30 | | 7844 | TURNER | SALESMAN | 7698 | 2021-09-08 | 1500 | 0 | 30 | | 7876 | ADAMS | CLERK | 7788 | 2022-01-12 | 1100 | NULL | 20 | | 7900 | JAMES | CLERK | 7698 | 2021-12-03 | 950 | NULL | 30 | | 7934 | MILLER | CLERK | 7782 | 2022-01-23 | 1300 | NULL | 10 | | 8005 | JOHN | MANAGER | 7839 | 2023-07-12 | 4000 | NULL | 10 | | 7369 | SMITH | CLERK | 7902 | 2020-12-17 | 800 | NULL | 20 | | 7566 | JONES | MANAGER | 7839 | 2021-04-02 | 2975 | NULL | 20 | | 7654 | MARTIN | SALESMAN | 7698 | 2021-09-28 | 1250 | 1400 | 30 | | 7698 | BLAKE | MANAGER | 7839 | 2021-05-01 | 2850 | NULL | 30 | | 7839 | KING | PRESIDENT | NULL | 2021-11-17 | 5000 | NULL | 10 | | 8002 | DANIEL | ENGINEER | 7788 | 2023-04-01 | 3400 | NULL | 20 | | 8006 | LISA | DESIGNER | 7698 | 2023-08-13 | 2200 | NULL | 30 | | 7499 | ALLEN | SALESMAN | 7698 | 2021-02-20 | 1600 | 300 | 30 | | 7782 | CLARK | MANAGER | 7839 | 2021-06-09 | 2450 | NULL | 10 | | 7788 | SCOTT | ANALYST | 7566 | 2021-12-09 | 3000 | NULL | 20 | | 7902 | FORD | ANALYST | 7566 | 2021-12-03 | 3000 | NULL | 20 | | 8001 | DUKE | ENGINEER | 7788 | 2023-03-15 | 3500 | NULL | 20 | | 8003 | SANDRA | CONSULTANT | 7698 | 2023-05-10 | 2700 | NULL | 30 | | 8004 | KAREN | CLERK | 7902 | 2023-06-11 | 1200 | NULL | 20 | +------------+------------+------------+------------+------------+------------+------------+------------+Kueri tabel emp untuk mengambil informasi lengkap karyawan dengan gaji tertinggi dan terendah di setiap departemen.
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; -- Hasil berikut dikembalikan. +-------+--------+-----------+------+------------+------+------+--------+------------+------------+ | empno | ename | job | mgr | hiredate | sal | comm | deptno | rn_desc | rn_asc | +-------+--------+-----------+------+------------+------+------+--------+------------+------------+ | 7839 | KING | PRESIDENT | NULL | 2021-11-17 | 5000 | NULL | 10 | 1 | 4 | | 7934 | MILLER | CLERK | 7782 | 2022-01-23 | 1300 | NULL | 10 | 4 | 1 | | 8001 | DUKE | ENGINEER | 7788 | 2023-03-15 | 3500 | NULL | 20 | 1 | 8 | | 7369 | SMITH | CLERK | 7902 | 2020-12-17 | 800 | NULL | 20 | 8 | 1 | | 7698 | BLAKE | MANAGER | 7839 | 2021-05-01 | 2850 | NULL | 30 | 1 | 8 | | 7900 | JAMES | CLERK | 7698 | 2021-12-03 | 950 | NULL | 30 | 8 | 1 | +-------+--------+-----------+------+------------+------+------+--------+------------+------------+
Langkah 8: Tulis hasil analisis kembali ke DLF
Dalam proyek eksternal dari langkah sebelumnya, buat tabel untuk menyimpan hasil analisis SQL.
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 );Anda dapat menulis hasil analisis dari Langkah 5 ke tabel baru.
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;Kueri tabel baru tersebut.
SELECT * FROM emp_detail; -- Hasil berikut dikembalikan. +------------+------------+------------+------------+------------+------------+------------+------------+ | empno | ename | job | mgr | hiredate | sal | comm | deptno | +------------+------------+------------+------------+------------+------------+------------+------------+ | 7839 | KING | PRESIDENT | NULL | 2021-11-17 | 5000 | NULL | 10 | | 7934 | MILLER | CLERK | 7782 | 2022-01-23 | 1300 | NULL | 10 | | 8001 | DUKE | ENGINEER | 7788 | 2023-03-15 | 3500 | NULL | 20 | | 7369 | SMITH | CLERK | 7902 | 2020-12-17 | 800 | NULL | 20 | | 7698 | BLAKE | MANAGER | 7839 | 2021-05-01 | 2850 | NULL | 30 | | 7900 | JAMES | CLERK | 7698 | 2021-12-03 | 950 | NULL | 30 | +------------+------------+------------+------------+------------+------------+------------+------------+Login ke Konsol Data Lake Formation (DLF). Di panel navigasi sebelah kiri, pilih Catalog List. Tabel
emp_detailyang baru dibuat muncul dalam daftar.