Topik ini menjelaskan cara menggunakan Flink untuk membuat katalog Paimon di Data Lake Formation (DLF), membaca data MySQL Change Data Capture (CDC), dan menuliskannya ke DLF. Anda kemudian dapat menggunakan proyek eksternal MaxCompute untuk melakukan kueri federasi dan analisis pada data lake serta menulis hasilnya kembali ke DLF. Topik ini berlaku untuk versi baru DLF, yang berbeda dari versi lama DLF. Untuk informasi selengkapnya tentang versi baru DLF, lihat Data Lake Formation.
Prasyarat
Layanan OSS telah diaktifkan.
Layanan DLF telah diaktifkan.
Layanan Flink telah diaktifkan.
Proyek MaxCompute telah dibuat dan skema switch untuk metadata tingkat proyek telah diaktifkan.
Prosedur
Langkah 1: Siapkan data sumber
Jika Anda sudah memiliki data uji MySQL, langkah ini dapat dilewati.
Langkah ini mensimulasikan pembaruan data secara real-time dari sistem bisnis. Data ditulis ke data lake dalam format Paimon menggunakan Flink.
Login ke Konsol ApsaraDB RDS for MySQL.
Di panel navigasi sebelah kiri, klik Instances.
Pada halaman daftar instans, klik Instance ID/Name instans target untuk membuka halaman detail instans.
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 membiarkan parameter ini kosong 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 pengelolaan di masa mendatang. Catatan dapat terdiri dari maksimal 256 karakter.
Create a test database for the external project 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 SQL Console yang muncul di sebelah kanan, jalankan pernyataan berikut untuk membuat tabel uji dan memasukkan data uji.
Jika database target tidak ditemukan setelah Anda memperluas instans, penyebabnya mungkin salah satu dari berikut:
Akun login tidak memiliki izin akses ke database target: Anda dapat membuka halaman Accounts instans RDS untuk mengubah izin akun atau mengganti akun database login.
Metadata belum disinkronkan: Arahkan kursor mouse ke instans tersebut. Klik ikon
di samping 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 di 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 di zona tunggal. Jika zona tempat data disimpan menjadi tidak tersedia, data tersebut menjadi tidak dapat diakses. Kami merekomendasikan penggunaan penyimpanan redundan zona.
Penyimpanan redundan zona: Ini adalah mekanisme redundansi multi-zona dalam wilayah yang sama. Jika satu zona menjadi 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.
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 Katalog 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 ApsaraDB RDS for MySQL.
Di panel navigasi sebelah kiri, klik Instances.
Pada halaman daftar instans, klik Instance ID/Name instans target untuk membuka halaman detail instans.
Di panel navigasi sebelah kiri, klik Whitelist and Security Group.
Pada tab Whitelist Settings, klik Modify.
Di kotak dialog Edit Whitelist, tambahkan segmen jaringan 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 .
Di Catalog List di sebelah kanan, klik Create Catalog . Di kotak dialog Create Catalog , pilih MySQL, klik Next , lalu konfigurasikan parameter berikut:
Parameter
Wajib
Deskripsi
catalog name
Wajib
Nama kustom untuk katalog MySQL. Misalnya,
mysql-catalog-dlf25.hostname
Wajib
Alamat IP atau hostname database MySQL.
Anda dapat login ke Konsol RDS MySQL. Pada halaman detail instans database, klik Database Connection untuk melihat Internal Endpoint, Public Endpoint, dan Internal Port database.
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
Wajib
Nama database default. Misalnya,
dlf25_paimon.username
Wajib
Username yang digunakan untuk menghubungkan ke server database MySQL. Anda dapat login ke Konsol RDS for MySQL. Pada halaman detail instans, klik Account Management untuk melihat username.
password
Wajib
Password yang digunakan untuk menghubungkan ke server database MySQL. Anda dapat login ke Konsol RDS for MySQL. Pada halaman detail instans, klik Account Management untuk melihat password.
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). Pilih , klik katalog data untuk membuka database, lalu lihat 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.
Misalnya,
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 OK 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 parameter dan klik Confirm untuk membuat proyek.
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
Select Existing: Pilih nama sumber data eksternal yang telah dibuat dari daftar drop-down.
Create External Data Source: Nama sumber data eksternal baru akan digunakan.
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
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
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
empuntuk mengambil informasi lengkap karyawan yang memiliki 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 );Tulis hasil analisis dari Langkah 7 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.
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 akan ditampilkan.