All Products
Search
Document Center

:Paimon外部表

Last Updated:Jun 21, 2026

MaxCompute mendukung pembuatan tabel eksternal Paimon untuk memetakan dan mengakses data yang disimpan dalam direktori tabel Paimon di OSS. Artikel ini menjelaskan cara membuat dan mengakses tabel eksternal Paimon melalui MaxCompute.

Latar Belakang

Apache Paimon adalah format penyimpanan lakehouse yang mendukung pemrosesan stream dan batch secara terintegrasi, dengan kemampuan menulis ber-throughput tinggi dan kueri berlatensi rendah. Realtime Compute for Apache Flink serta mesin komputasi umum pada E-MapReduce (seperti Spark, Hive, atau Trino) telah terintegrasi secara lengkap dengan Paimon. Dengan Apache Paimon, Anda dapat dengan cepat membangun layanan penyimpanan data lake Anda sendiri di atas OSS, lalu menghubungkannya ke MaxCompute untuk analisis data lake. Untuk informasi lebih lanjut mengenai Apache Paimon, lihat Apache Paimon.

Prasyarat

  • Akun yang digunakan saat ini telah memiliki izin CreateTable untuk membuat tabel MaxCompute. Untuk informasi selengkapnya mengenai izin tabel, lihat MaxCompute permissions.

  • Proyek MaxCompute telah dibuat. Untuk langkah-langkahnya, lihat Create a MaxCompute project.

  • Bucket dan direktori file terkait telah dibuat. Untuk langkah-langkahnya, lihat Membuat Bucket.

    Catatan

    Karena MaxCompute hanya tersedia di beberapa wilayah, konektivitas lintas wilayah mungkin bermasalah. Oleh karena itu, disarankan agar bucket berada di wilayah yang sama dengan Proyek MaxCompute.

  • Jika Anda telah membeli Flink versi terkelola penuh, untuk detail operasionalnya, lihat Mengaktifkan Realtime Compute for Apache Flink.

Hal yang Perlu Diperhatikan

  • Saat ini, MaxCompute hanya mendukung operasi baca pada tabel eksternal Paimon dan belum mendukung operasi tulis maupun pembaruan struktur tabel Paimon secara otomatis.

  • Paimon saat ini belum mendukung Proyek MaxCompute yang telah mengaktifkan Schema operations.

  • Tabel eksternal Paimon tidak mendukung atribut cluster.

  • Tabel eksternal Paimon saat ini belum mendukung fitur seperti kueri data versi historis.

Sintaks Perintah Pembuatan Tabel Eksternal Paimon

Sintaks pembuatan tabel eksternal Paimon di MaxCompute didefinisikan sebagai berikut:

CREATE EXTERNAL TABLE  [IF NOT EXISTS] <mc_oss_extable_name>
(
<col_name> <data_type>,
...
)
[PARTITIONED BY (<col_name> <data_type>, ...)]
STORED BY 'org.apache.paimon.hive.PaimonStorageHandler'
WITH SERDEPROPERTIES (
    'odps.properties.rolearn'='acs:ram::xxxxxxxxxxxxx:role/aliyunodpsdefaultrole'
)
LOCATION '<oss_location>'
USING 'paimon_maxcompute_connector.jar';

Jika tabel eksternal Paimon yang Anda buat merupakan tabel partisi, Anda perlu menjalankan perintah tambahan untuk mengimpor metadata partisi. Untuk detail perintahnya, lihat ORC external tables.

  • Cara pertama (disarankan): Secara otomatis mengurai struktur direktori OSS, mengenali partisi, dan menambahkan informasi partisi ke tabel eksternal OSS.

    MSCK REPAIR TABLE <mc_oss_extable_name> ADD PARTITIONS;
  • Cara kedua: Menjalankan perintah berikut secara manual untuk menambahkan informasi partisi ke tabel eksternal OSS.

    ALTER TABLE <mc_oss_extable_name> ADD PARTITION (<col_name>= <col_value>);

Penjelasan parameter sebagai berikut:

Nama Parameter

Wajib/Pilihan

Deskripsi

mc_oss_extable_name

Wajib

Nama tabel eksternal Paimon yang akan dibuat.

Nama tabel tidak peka huruf besar/kecil. Saat mengakses tabel eksternal, Anda tidak perlu membedakan huruf besar dan kecil, dan konversi paksa huruf besar/kecil tidak didukung.

col_name

Wajib

Nama kolom pada tabel eksternal Paimon.

Saat membaca data Paimon, struktur tabel eksternal Paimon yang dibuat harus identik dengan struktur file data Paimon. Jika tidak, pembacaan data Paimon akan gagal.

data_type

Wajib

Tipe data kolom pada tabel eksternal Paimon.

Saat membaca data Paimon, tipe data setiap kolom pada tabel eksternal Paimon yang dibuat harus identik dengan tipe data kolom pada file data Paimon. Jika tidak, pembacaan data Paimon akan gagal.

odps.properties.rolearn

Wajib

Menentukan ARN dari Role RAM (yang memiliki izin akses ke OSS).

Anda dapat memperoleh informasi ini melalui Detail Role di Konsol RAM.

oss_location

Wajib

Jalur OSS tempat file data disimpan. Formatnya adalah oss://<oss_endpoint>/<Nama Bucket>/<Nama Direktori OSS>/. Secara default, MaxCompute akan membaca semua file data di jalur tersebut.

  • oss_endpoint: Domain akses OSS. Anda harus menggunakan domain internal yang disediakan oleh OSS, jika tidak, biaya lalu lintas OSS akan dikenakan. Contoh: oss://oss-cn-beijing-internal.aliyuncs.com/xxx. Untuk informasi lebih lanjut mengenai domain internal OSS, lihat Regions and Endpoints.

    Catatan

    Disarankan agar wilayah OSS tempat file data disimpan sama dengan wilayah Proyek MaxCompute. Karena MaxCompute hanya tersedia di beberapa wilayah, konektivitas lintas wilayah mungkin bermasalah.

  • Nama Bucket: Nama bucket penyimpanan OSS. Untuk informasi cara melihat nama bucket, lihat List buckets.

  • Nama Direktori: Nama direktori OSS. Anda tidak perlu menentukan nama file setelah direktori. Contoh:

    oss://oss-cn-shanghai-internal.aliyuncs.com/oss-mc-test/Demo1/

Petunjuk Penggunaan

Langkah 1: Siapkan Data di Flink

Buat Catalog Paimon dan tabel Paimon, lalu masukkan data ke dalam tabel tersebut. Langkah-langkah contohnya sebagai berikut. Jika Anda sudah memiliki tabel dan data Paimon di Flink, Anda dapat melewati langkah ini.

  1. Masuk ke Konsol Realtime Compute, lalu buat Catalog Paimon. Untuk langkah-langkahnya, lihat Create a catalog.

  2. Buat tabel Paimon. Untuk langkah-langkahnya, lihat Manage tables.

    1. Pada halaman 元数据管理, pilih default di bawah Paimon Catalog yang telah dibuat, lalu klik 创建表.

    2. Di kotak dialog 添加表, pilih konektor Apache Paimon, masukkan pernyataan berikut, lalu klik 确定. Artikel ini menggunakan tabel test_tbl sebagai contoh.

      CREATE TABLE `catalogname`.`default`.test_tbl (
          dt STRING,
          id BIGINT,
          data STRING,
          PRIMARY KEY (dt, id) NOT ENFORCED
      ) PARTITIONED BY (dt);
    3. Pada halaman SQL 开发, buat job SQL yang berisi pernyataan berikut, lalu deploy dan jalankan job tersebut. Untuk informasi selengkapnya mengenai cara membuat dan menjalankan job SQL, lihat Job development overview.

      INSERT INTO `catalogname`.`default`.test_tbl VALUES ('2023-04-21', 1, 'AAA'), ('2023-04-21', 2, 'BBB'), ('2023-04-22', 1, 'CCC'), ('2023-04-22', 2, 'DDD');
      Catatan
      • Pastikan versi engine job SQL Anda adalah vvr-8.0.1-flink-1.17 atau yang lebih baru.

      • Jika job SQL Anda merupakan job bounded (misalnya menjalankan pernyataan INSERT INTO ... VALUES ...), Anda perlu mengedit Execution Parameters pada halaman 作业运维, lalu menambahkan konfigurasi berikut di bagian Other Configurations: execution.checkpointing.checkpoints-after-tasks-finish.enabled: true. Untuk informasi selengkapnya mengenai cara mengonfigurasi parameter runtime job, lihat Configure job deployment.

Langkah 2: Unggah Plugin Paimon ke Proyek MaxCompute

Anda dapat memilih salah satu cara berikut untuk mengunggah plugin Paimon ke Proyek MaxCompute yang telah dibuat.

Menggunakan Klien MaxCompute

Gunakan klien (odpscmd) untuk mengakses Proyek MaxCompute yang telah dibuat, lalu jalankan kode berikut untuk mengunggah paimon_maxcompute_connector.jar ke dalam Proyek MaxCompute.

ADD JAR <path_to_paimon_maxcompute_connector.jar>;

Menggunakan DataWorks

  1. Masuk ke Konsol DataWorks, pilih 工作空间 di panel navigasi kiri, lalu klik 快速进入 > 数据开发 di kolom 操作 workspace target.

  2. Pada halaman Data Development, klik tombol 新建, lalu pilih 新建资源 > JAR.

  3. Pada dialog 新建资源, konfigurasikan parameter resource, unggah paimon_maxcompute_connector.jar, lalu klik 新建. Untuk informasi selengkapnya mengenai pembuatan resource, lihat Step 1: Create or upload a resource.

    Pilih JAR untuk Tipe Resource, lalu centang Unggah sebagai Resource ODPS.

  4. Setelah resource berhasil dibuat, Anda perlu mengklik ikon image.png di toolbar pada halaman edit resource untuk mengirimkan resource ke server pengembangan penjadwalan.

Langkah 3: Buat Tabel Eksternal Paimon melalui MaxCompute

Hubungkan ke MaxCompute dengan odpscmd atau alat lain yang dapat menjalankan SQL MaxCompute, lalu buat tabel eksternal Paimon MaxCompute. Artikel ini menggunakan oss_extable_paimon_1pt sebagai contoh.

CREATE EXTERNAL TABLE oss_extable_paimon_1pt
(
    id BIGINT,
    data STRING
)
PARTITIONED BY (dt STRING )
STORED BY 'org.apache.paimon.hive.PaimonStorageHandler'
WITH SERDEPROPERTIES (
    'odps.properties.rolearn'='acs:ram::124*********:role/aliyunodpsdefaultrole'
)
LOCATION 'oss://oss-cn-beijing-internal.aliyuncs.com/paimon_flink/test_db_y.db/test_tbl/'
USING 'paimon_maxcompute_connector.jar'
;

Langkah 4: Baca Tabel Eksternal Paimon melalui MaxCompute

  1. Gunakan klien lokal (odpscmd) atau alat lain yang dapat menjalankan SQL MaxCompute, lalu jalankan perintah berikut.

    SET odps.sql.common.table.planner.ext.hive.bridge = true;
    SET odps.sql.hive.compatible = true;
  2. Jalankan perintah berikut untuk mengkueri tabel eksternal Paimon MaxCompute oss_extable_paimon_1pt.

    SELECT * FROM oss_extable_paimon_1pt;

    Contoh hasil yang dikembalikan sebagai berikut.

    +------------+------------+------------+
    | id         | data       | dt         |
    +------------+------------+------------+
    | 1          | AAA        | 2023-04-21 |
    | 2          | BBB        | 2023-04-21 |
    +------------+------------+------------+
    Catatan

    Jika hasil yang dikembalikan tidak menampilkan informasi partisi, Anda dapat menjalankan perintah berikut untuk menambahkan informasi partisi:

    MSCK REPAIR TABLE oss_extable_paimon_1pt ADD PARTITIONS;

Dokumen Terkait

Anda juga dapat membuat tabel eksternal Paimon MaxCompute di Flink dengan cara menentukan Catalog kustom, lalu menulis data dan mengonsumsi data Paimon melalui MaxCompute. Untuk informasi selengkapnya, lihat 基于Flink创建MaxCompute Paimon外部表.