All Products
Search
Document Center

OpenLake:(Pratinjau undangan) Gunakan proyek eksternal untuk membaca dan menulis data Paimon di data lake berbasis DLF

Last Updated:Apr 01, 2026

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

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.

  1. Login ke Konsol ApsaraDB RDS for MySQL.

  2. Di panel navigasi sebelah kiri, klik Instances.

  3. Pada halaman daftar instans, klik Instance ID/Name instans target untuk membuka halaman detail instans.

  4. Di panel navigasi sebelah 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 tanda hubung (-), tanda hubung (-) dalam nama folder database yang dibuat akan diganti dengan @002d.

    dlf25_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 memerlukan otorisasi.

    Default

    Description

    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.

  6. 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 image 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);
  7. Kueri data di tabel uji.

    SELECT * FROM emp;

    Hasil berikut dikembalikan:

    image

Langkah 2: Siapkan metadatabase DLF

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

  2. Di panel navigasi sebelah kiri, pilih Catalog List.

  3. Pada halaman Catalogs, klik Create Catalog.

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

  1. Buat katalog Paimon

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

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

    3. 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_oss yang dibuat di 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. Di kolom Actions untuk ruang kerja target, klik Details.

        Di panel Workspace Details , salin CIDR Block vSwitch.

      2. 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.

      3. Di panel navigasi sebelah kiri, klik Whitelist and Security Group.

        Pada tab Whitelist Settings, klik Modify.

      4. Di kotak dialog Edit Whitelist, tambahkan segmen jaringan yang 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 sebelah kiri, pilih Catalogs .

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

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

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

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

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

  5. 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`;
    1. (Opsional) Di pojok kanan atas, klik Validate untuk memvalidasi sintaks pernyataan SQL Flink pekerjaan tersebut.

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

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

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

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

  9. Kueri data Paimon

    Di panel navigasi sebelah kiri, pilih Development > Scripts.

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

    SELECT * FROM `db_dlf25_oss`.`default`.`emp`;

    Hasil berikut dikembalikan:

    image

  10. Login ke Konsol Data Lake Formation (DLF). Pilih Catalog List > Catalogs, klik katalog data untuk membuka database, lalu lihat detail tabel yang telah disinkronkan.

image

Langkah 5: Buat sumber data eksternal Paimon_DLF di MaxCompute

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

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

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

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

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

    2. Di panel navigasi sebelah kiri, pilih Identities > Roles.

    3. 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.

    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 di kolom Actions.

Langkah 6: Buat proyek eksternal Paimon_DLF di MaxCompute

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

  2. Di panel navigasi sebelah kiri, pilih Manage Configurations > Projects.

  3. Pada tab External Project, klik Create Project.

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

  1. Gunakan tool koneksi untuk login ke proyek eksternal.

  2. 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
    
    
    OK
  3. Daftar tabel dalam skema proyek eksternal.

    USE schema default;
    SHOW tables;
    
    -- Hasil berikut dikembalikan.
    ID = 20250919****am4qb
    acs:ram::<uid>:root  emp
    
    
    OK
  4. Baca 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         | 
    +------------+------------+------------+------------+------------+------------+------------+------------+
  5. Kueri tabel emp untuk 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

  1. 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
    );
  2. 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;
  3. 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         | 
    +------------+------------+------------+------------+------------+------------+------------+------------+
  4. Login ke Konsol Data Lake Formation (DLF). Di panel navigasi sebelah kiri, pilih Catalog List. Tabel emp_detail yang baru dibuat akan ditampilkan.