All Products
Search
Document Center

MaxCompute:Baca data Paimon dari data lake menggunakan DLF 1.0 dan OSS

Last Updated:Mar 25, 2026

Topik ini menjelaskan cara menggunakan Flink untuk membuat katalog Data Lake Formation (DLF) Paimon, membaca data change data capture (CDC) MySQL, menulis data ke Object Storage Service (OSS), serta menyinkronkan metadata ke DLF. Anda kemudian dapat menggunakan skema eksternal MaxCompute untuk melakukan query terfederasi pada data di data lake tersebut.

Wilayah

  • Wilayah yang didukung

    Nama Wilayah

    ID Wilayah

    China (Hangzhou)

    cn-hangzhou

    China (Shanghai)

    cn-shanghai

    China (Beijing)

    cn-beijing

    China (Zhangjiakou)

    cn-zhangjiakou

    China (Shenzhen)

    cn-shenzhen

    China (Hong Kong)

    cn-hongkong

    Singapore

    ap-southeast-1

    Germany (Frankfurt)

    eu-central-1

  • Layanan MaxCompute, OSS, DLF, dan Flink harus diterapkan di wilayah yang sama.

Prosedur

Prasyarat

  1. Anda telah mengaktifkan layanan OSS.

  2. Anda telah mengaktifkan layanan DLF.

  3. Anda telah mengaktifkan layanan Flink.

  4. Anda telah membuat proyek MaxCompute dan mengaktifkan dukungan skema untuk metadata tingkat proyek.

  5. Anda telah membuat instans ApsaraDB RDS for MySQL.

Langkah 1: Berikan izin MaxCompute untuk mengakses DLF dan OSS

Akun tidak dapat mengakses layanan DLF dan OSS dari proyek MaxCompute tanpa otorisasi. Anda dapat memberikan izin yang diperlukan dengan salah satu dari dua cara berikut:

  • Otorisasi satu klik: Jika Anda menggunakan akun yang sama untuk membuat proyek MaxCompute dan menerapkan DLF, Anda dapat mengklik Authorize DLF untuk otorisasi satu klik.

  • Otorisasi kustom: Anda dapat menggunakan otorisasi kustom untuk DLF. Metode ini berlaku bahkan jika Anda menggunakan akun berbeda untuk membuat proyek MaxCompute dan menerapkan DLF.

Langkah 2: Siapkan data uji MySQL

Jika Anda sudah memiliki data uji MySQL, Anda dapat melewati langkah ini.

  1. Login ke Konsol RDS.

  2. Pada panel navigasi di sebelah kiri, klik Instances. Lalu, pilih wilayah di pojok kiri atas.

  3. Pada halaman Instances, klik Instance ID/Name instans target untuk membuka halaman detailnya.

  4. Pada panel navigasi kiri, klik Databases.

  5. 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 -, maka - dalam nama folder database yang dibuat akan dikonversi menjadi @002d.

    mysql_paimon

    Supported Character Set

    Wajib

    Pilih set karakter sesuai kebutuhan.

    utf8

    Authorized 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 perlu otorisasi.

    Default

    Description

    Opsional

    Deskripsi database untuk memudahkan manajemen. Panjang deskripsi maksimal 256 karakter.

    Create a Flink test database.

  6. Klik Log On to Database. Pada panel navigasi 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 tersebut, penyebabnya 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 login database.

    • Metadata belum disinkronkan, sehingga direktori tidak ditampilkan: Arahkan kursor mouse ke instans yang berisi database target. Klik tombol image di sebelah kanan nama instans untuk merefresh daftar database.

    -- Create a table
    CREATE TABLE sales (
        id INT NOT NULL AUTO_INCREMENT,
        year INT NOT NULL,
        amount DECIMAL(10,2) NOT NULL,
        product_name VARCHAR(100) NOT NULL,
        customer_name VARCHAR(100) NOT NULL,
        order_date DATE NOT NULL,
        region VARCHAR(50) NOT NULL,
        status VARCHAR(20) NOT NULL,
        PRIMARY KEY (id,year)
    ) PARTITION BY RANGE (year) (
        PARTITION p2020 VALUES LESS THAN (2021),
        PARTITION p2021 VALUES LESS THAN (2022),
        PARTITION p2022 VALUES LESS THAN (2023),
        PARTITION p2023 VALUES LESS THAN (2024)
    );
    
    -- Write data
    INSERT INTO sales (year, amount, product_name, customer_name, order_date, region, status) VALUES
    (2020, 100.00, 'Product A', 'Customer 1', '2020-01-01', 'Region 1', 'Completed'),
    (2020, 200.00, 'Product B', 'Customer 2', '2020-02-01', 'Region 2', 'Pending'),
    (2021, 150.00, 'Product C', 'Customer 3', '2021-03-01', 'Region 3', 'Completed'),
    (2021, 300.00, 'Product D', 'Customer 4', '2021-04-01', 'Region 4', 'Pending'),
    (2022, 250.00, 'Product E', 'Customer 5', '2022-05-01', 'Region 5', 'Completed'),
    (2022, 400.00, 'Product F', 'Customer 6', '2022-06-01', 'Region 6', 'Pending'),
    (2023, 350.00, 'Product G', 'Customer 7', '2023-07-01', 'Region 7', 'Completed'),
    (2023, 500.00, 'Product H', 'Customer 8', '2023-08-01', 'Region 8', 'Pending'),
    (2020, 450.00, 'Product I', 'Customer 9', '2020-09-01', 'Region 1', 'Completed'),
    (2021, 600.00, 'Product J', 'Customer 10', '2021-10-01', 'Region 2', 'Pending');
  7. Kueri data di tabel uji.

    SELECT * FROM sales;

    Hasil berikut dikembalikan:

    image

Langkah 3: Siapkan metadatabase DLF

  1. Login ke Konsol OSS dan buat bucket. Dalam contoh ini, bucket diberi nama mc-lakehouse-dlf-oss. Untuk informasi selengkapnya, lihat Create buckets.

  2. Buat folder bernama flink_paimon di dalam bucket tersebut.

  3. Login ke Konsol Data Lake Formation (DLF) dan pilih wilayah di pojok kiri atas.

  4. Pada panel navigasi kiri, pilih Metadata > Metadata.

  5. Pada halaman Metadata, klik tab Database.

  6. Di bawah default Catalog List, klik Create Database. Konfigurasikan parameter berikut:

    Parameter

    Wajib

    Deskripsi

    Catalog

    Wajib

    Dalam contoh ini, katalog data adalah default.

    Database Name:

    Wajib

    Nama database kustom. Nama harus terdiri dari 1 hingga 128 karakter, dimulai dengan huruf, dan hanya boleh berisi huruf, angka, serta garis bawah (_). Contoh: db_dlf_oss.

    Database Description:

    Opsional

    Deskripsi kustom.

    Select Path:

    Wajib

    Lokasi penyimpanan database. Contoh: oss://mc-lakehouse-dlf-oss/flink_paimon/.

Langkah 4: Buat katalog Paimon dan MySQL menggunakan Flink

  1. Buat katalog Paimon:

    1. Login ke Konsol Flink dan pilih wilayah di pojok kiri atas.

    2. Klik nama ruang kerja target, lalu pada panel navigasi kiri, pilih Catalogs .

    3. Pada halaman Catalog List , klik Create Catalog di sebelah kanan. Pada 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 versi katalog DLF yang ingin Anda asosiasikan. Dalam contoh ini, pilih v1.0.

      warehouse

      Wajib

      Direktori gudang data yang ditentukan di OSS. Dalam contoh ini, direktori tersebut adalah oss://mc-lakehouse-dlf-oss/flink_paimon/.

      fs.oss.endpoint

      Wajib

      Titik akhir layanan OSS. Misalnya, titik akhir untuk wilayah China (Hangzhou) adalah oss-cn-hangzhou-internal.aliyuncs.com.

      fs.oss.accessKeyId

      Wajib

      ID AccessKey yang digunakan untuk mengakses layanan OSS.

      fs.oss.accessKeySecret

      Wajib

      Rahasia AccessKey yang digunakan untuk mengakses layanan OSS.

      dlf.catalog.accessKeyId

      Wajib

      ID AccessKey yang digunakan untuk mengakses layanan DLF.

      dlf.catalog.accessKeySecret

      Wajib

      Rahasia AccessKey yang digunakan untuk mengakses layanan DLF.

  2. Buat katalog MySQL:

    1. Login ke Konsol Flink dan pilih wilayah di pojok kiri atas.

    2. Tambahkan alamat IP ke daftar putih.

      1. Pada kolom Actions untuk ruang kerja target, klik Details.

        Pada panel Workspace Details , salin CIDR Block dari vSwitch.

      2. Login ke Konsol RDS.

        Di panel navigasi kiri, klik Instances, lalu pilih wilayah di pojok kiri atas.

        Pada halaman Instances, klik Instance ID/Name instans target untuk membuka halaman detailnya.

      3. Pada panel navigasi kiri, klik Whitelist and SecGroup.

        Pada tab Whitelist Settings, klik Modify.

      4. Pada dialog Edit Whitelist, tambahkan blok CIDR yang telah disalin ke bidang IP Addresses, lalu klik OK.

    3. Login ke Konsol Flink dan pilih wilayah di pojok kiri atas.

      Klik nama ruang kerja target. Di panel navigasi kiri, pilih Catalogs .

    4. Pada Catalog List di sebelah kanan, klik Create Catalog . Pada dialog Create Catalog , pilih MySQL, klik Next , lalu konfigurasikan parameter berikut:

      Parameter

      Wajib

      Deskripsi

      catalog name

      Wajib

      Nama kustom untuk katalog MySQL. Contoh: mysql-catalog.

      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.

      • Jika Anda mengakses database lintas VPC atau melalui jaringan publik, Anda harus membuat koneksi 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. Contoh: mysql_paimon.

      username

      Wajib

      Username yang digunakan untuk menghubungkan ke server database MySQL. Anda dapat login ke Konsol ApsaraDB RDS for MySQL. Pada halaman detail instans database, klik Accounts untuk melihat username.

      password

      Wajib

      Password yang digunakan untuk menghubungkan ke server database MySQL. Anda dapat login ke Konsol ApsaraDB RDS for MySQL. Pada halaman detail instans database, klik Accounts untuk melihat password.

Langkah 5: Gunakan Flink untuk membaca data dari MySQL, menulis data ke Paimon, dan menyinkronkan metadata ke DLF

  1. Login ke Konsol Flink dan pilih wilayah di pojok kiri atas.

  2. Klik nama ruang kerja target, lalu pada panel navigasi kiri, pilih Development > ETL.

  3. Pada tab Drafts, klik image untuk membuat folder baru.

  4. Klik kanan folder tersebut, lalu pilih New Blank Stream Draft. Pada dialog New Draft, masukkan Name dan pilih Engine Version.

  5. Pada file tersebut, masukkan pernyataan SQL CREATE TABLE AS (CTAS) berikut. Pastikan untuk mengubah nama dalam kode sesuai dengan konfigurasi aktual Anda.

    CREATE TABLE IF NOT EXISTS `<dlf_meta_db_name>`.`<OSS_bucket_name>`.`sales` 
    AS TABLE `<mysql_catalog_name>`.`<RDS_mysql_name>`.`sales`;
    
    -- You can copy the following code if you use the names from this topic. 
    CREATE TABLE IF NOT EXISTS `db_dlf_oss`.`flink_paimon`.`sales` 
    AS TABLE `mysql-catalog`.`mysql_paimon`.`sales`;
    1. (Opsional) Di pojok kanan atas, klik Validate untuk memvalidasi sintaks pernyataan SQL Flink job.

    2. Klik Deploy di pojok kanan atas. Pada dialog Deploy draft, tentukan Comment, Label, dan Deployment Target, lalu klik Confirm.

  6. Klik nama ruang kerja target. Pada panel navigasi kiri, pilih O&M > Deployments.

  7. Pada halaman Deployments, klik nama job target untuk membuka halaman Configuration-nya.

  8. Di pojok kanan atas halaman detail deployment job target, klik Start, pilih Initial Mode, lalu klik Start.

  9. Kueri data Paimon.

    Pada panel navigasi kiri, pilih Development > Scripts.

    Pada tab New Script, Anda dapat mengklik image untuk membuat skrip kueri baru.

    Jalankan kode berikut:

    SELECT * FROM `<paimon_catalog_name>`.`flink_paimon`.`sales`;

    Hasil berikut dikembalikan:

    image

  10. Buka Konsol OSS dan periksa direktori mc-lakehouse-dlf-oss/flink_paimon/. Folder sales/ telah dibuat. File yang dihasilkan ditunjukkan pada gambar berikut:

    image

  11. Login ke Konsol Data Lake Formation (DLF) dan pilih wilayah di pojok kiri atas.

    Pada panel navigasi kiri, pilih Metadata > Metadata.

    Klik nama database flink_paimon. Anda dapat melihat tabel yang dihasilkan, seperti yang ditunjukkan pada gambar berikut:

    image

Langkah 6: Buat sumber data eksternal DLF+OSS di MaxCompute

  1. Login ke Konsol MaxCompute dan pilih wilayah di pojok kiri atas.

  2. Pada panel navigasi kiri, pilih Manage Configurations > External Data Source.

  3. Pada halaman External Data Source, klik Create External Data Source.

  4. Pada 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.

    • Panjang nama tidak boleh melebihi 128 karakter.

    Contoh: mysql_paimon_dlf.

    Description

    Opsional

    Masukkan deskripsi sesuai kebutuhan.

    Region

    Wajib

    Wilayah saat ini digunakan secara default.

    DLF Endpoint

    Wajib

    Titik akhir DLF wilayah saat ini digunakan secara default.

    OSS Endpoint

    Wajib

    Titik akhir OSS wilayah saat ini digunakan secara default.

    RoleARN

    Wajib

    Nama Sumber Daya Alibaba Cloud (ARN) dari peran RAM. Peran ini harus memiliki izin untuk mengakses layanan DLF dan OSS.

    1. Login ke Konsol Resource Access Management (RAM).

    2. Pada panel navigasi kiri, pilih Identities > Roles.

    3. Pada bagian Basic Information, Anda dapat menemukan ARN.

    Contoh: acs:ram::124****:role/aliyunodpsdefaultrole.

    Foreign Server Supplemental Properties

    Opsional

    Properti tambahan untuk sumber data eksternal. Setelah Anda menentukan properti ini, tugas yang menggunakan sumber data eksternal ini dapat mengakses sistem sumber berdasarkan perilaku yang telah ditentukan.

    Catatan

    Untuk informasi tentang parameter yang didukung, lihat dokumentasi resmi. Lebih banyak parameter akan didukung seiring perkembangan produk.

  5. Klik OK untuk membuat sumber data eksternal.

  6. Pada halaman External Data Source, temukan sumber data target dan klik Details pada kolom Actions.

Langkah 7: Buat skema eksternal

Hubungkan ke MaxCompute dan masukkan perintah berikut:

SET odps.namespace.schema=true;

CREATE EXTERNAL SCHEMA IF NOT EXISTS <external_schema>
WITH <external_data_source>
ON '<dlf_data_catalogue>.dlf_database';

Tabel berikut menjelaskan parameter tersebut.

  • external_schema: nama skema eksternal. Contohnya, es_mc_dlf_oss_paimon.

  • external_data_source: nama sumber data eksternal yang telah Anda buat. Proyek tempat skema eksternal berada harus berada di wilayah yang sama dengan sumber data eksternal tersebut. Contohnya, mysql_paimon_dlf.

  • dlf_data_catalogue: ID katalog data DLF. Untuk informasi selengkapnya, lihat Create a data catalog. Contohnya, db_dlf_oss.

  • dlf_database: nama database dalam katalog data DLF yang ditentukan. Untuk informasi selengkapnya, lihat Databases, tables, and functions. Contohnya, flink_paimon.

Langkah 8: Gunakan SQL untuk mengakses data OSS

  1. Login ke klien MaxCompute dan kueri tabel dalam skema eksternal.

SET odps.namespace.schema=true;
use schema es_mc_dlf_oss_paimon;
SHOW tables IN es_mc_dlf_oss_paimon;

-- The following result is returned:
ALIYUN$xxx:sales

OK
  1. Kueri data dalam tabel skema eksternal.

SET odps.namespace.schema=true;
SELECT * FROM <maxcompute_project_name>.es_mc_dlf_oss_paimon.sales;

-- The following result is returned:
+------------+------------+------------+--------------+---------------+------------+------------+------------+
| id         | year       | amount     | product_name | customer_name | order_date | region     | status     | 
+------------+------------+------------+--------------+---------------+------------+------------+------------+
| 1          | 2020       | 100        | Product A    | Customer 1    | 2020-01-01 | Region 1   | Completed  | 
| 2          | 2020       | 200        | Product B    | Customer 2    | 2020-02-01 | Region 2   | Pending    | 
| 3          | 2021       | 150        | Product C    | Customer 3    | 2021-03-01 | Region 3   | Completed  | 
| 4          | 2021       | 300        | Product D    | Customer 4    | 2021-04-01 | Region 4   | Pending    | 
| 5          | 2022       | 250        | Product E    | Customer 5    | 2022-05-01 | Region 5   | Completed  | 
| 6          | 2022       | 400        | Product F    | Customer 6    | 2022-06-01 | Region 6   | Pending    | 
| 7          | 2023       | 350        | Product G    | Customer 7    | 2023-07-01 | Region 7   | Completed  | 
| 8          | 2023       | 500        | Product H    | Customer 8    | 2023-08-01 | Region 8   | Pending    | 
| 9          | 2020       | 450        | Product I    | Customer 9    | 2020-09-01 | Region 1   | Completed  | 
| 10         | 2021       | 600        | Product J    | Customer 10   | 2021-10-01 | Region 2   | Pending    | 
+------------+------------+------------+--------------+---------------+------------+------------+------------+