MaxCompute memungkinkan Anda membuat tabel eksternal Apache Paimon dan menetapkan pemetaan antara tabel eksternal dengan direktori tabel Apache Paimon yang disimpan di Object Storage Service (OSS). Anda dapat menggunakan tabel eksternal ini untuk mengakses data dalam tabel Apache Paimon yang tersimpan di OSS. Topik ini menjelaskan cara membuat tabel eksternal Apache Paimon dan mengaksesnya menggunakan MaxCompute.
Informasi latar belakang
Apache Paimon adalah format penyimpanan lake untuk pemrosesan streaming dan batch terintegrasi. Format ini mendukung penulisan berkapasitas tinggi dan kueri latensi rendah. Mesin komputasi umum seperti Spark, Hive, dan Trino dari Alibaba Cloud Realtime Compute for Apache Flink dan E-MapReduce terintegrasi secara mulus dengan Apache Paimon. Apache Paimon membantu Anda membangun layanan penyimpanan data lake sendiri di OSS dan menghubungkannya ke MaxCompute untuk menerapkan analitik data lake. Untuk informasi lebih lanjut tentang Apache Paimon, lihat Apache Paimon.
Prasyarat
Akun Alibaba Cloud yang digunakan untuk operasi memiliki izin CreateTable untuk membuat tabel MaxCompute. Untuk informasi lebih lanjut tentang izin tabel, lihat Izin MaxCompute.
Proyek MaxCompute telah dibuat. Untuk informasi lebih lanjut, lihat Buat Proyek MaxCompute.
Bucket OSS dan direktori terkait telah dibuat. Untuk informasi lebih lanjut, lihat Buat Bucket.
CatatanMaxCompute hanya tersedia di wilayah tertentu. Untuk mencegah masalah konektivitas lintas wilayah, disarankan menggunakan bucket di wilayah yang sama dengan proyek MaxCompute Anda.
Fully managed Flink telah diaktifkan. Untuk informasi lebih lanjut, lihat Aktifkan Realtime Compute for Apache Flink.
Catatan penggunaan
MaxCompute hanya dapat membaca data dari tabel eksternal Apache Paimon tetapi tidak dapat menulis data atau menyinkronkan perubahan skema tabel secara otomatis.
Apache Paimon tidak mendukung proyek MaxCompute dengan fitur skema yang diaktifkan.
Tabel eksternal Apache Paimon tidak mendukung atribut pengelompokan.
Tabel eksternal Apache Paimon tidak mendukung fitur-fitur seperti kueri dan pelacakan balik data versi historis.
Sintaksis
Kode sampel berikut menunjukkan sintaksis untuk membuat tabel eksternal Apache Paimon di MaxCompute.
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 adalah tabel partisi, Anda harus melakukan operasi tambahan untuk mengimpor data partisi. Untuk informasi lebih lanjut, lihat Tabel Eksternal ORC.
Metode 1 (Disarankan): Secara otomatis mem-parsing struktur direktori OSS untuk mengidentifikasi partisi dan menambahkan informasi partisi ke tabel eksternal OSS.
msck repair TABLE <mc_oss_extable_name> ADD partitions;Metode 2: Secara manual jalankan perintah berikut untuk menambahkan informasi partisi ke tabel eksternal OSS.
ALTER TABLE <mc_oss_extable_name> ADD PARTITION (<col_name>= <col_value>);
Tabel berikut menjelaskan parameter dalam kode sebelumnya.
Parameter | Diperlukan | Deskripsi |
mc_oss_extable_name | Ya | Nama tabel eksternal Apache Paimon yang ingin Anda buat. Nama tabel tidak peka huruf besar/kecil. Saat Anda menanyakan tabel eksternal, nama tabel tidak peka huruf besar/kecil, dan konversi paksa huruf besar dan kecil tidak didukung. |
col_name | Ya | Nama kolom dalam tabel eksternal Apache Paimon. Untuk membaca data dari tabel Apache Paimon, Anda harus memastikan bahwa skema tabel eksternal Apache Paimon yang dibuat sama dengan skema tabel Apache Paimon. Jika tidak, pembacaan data gagal. |
data_type | Ya | Tipe data kolom tabel eksternal Apache Paimon. Untuk membaca data dari tabel Apache Paimon, Anda harus memastikan bahwa tipe data kolom tabel eksternal Apache Paimon yang dibuat sama dengan tipe data kolom tabel Apache Paimon. Jika tidak, pembacaan data gagal. |
odps.properties.rolearn | Ya | Nama Sumber Daya Cloud (ARN) dari peran RAM yang diberi izin untuk mengakses OSS. Anda bisa mendapatkan ARN dari halaman detail peran di Konsol Resource Access Management (RAM). |
oss_location | Ya | Direktori OSS tempat file data disimpan. Direktori OSS berada dalam format
|
Prosedur
Langkah 1: Siapkan data di Realtime Compute for Apache Flink
Buat katalog Apache Paimon dan tabel Apache Paimon, serta sisipkan data ke dalam tabel. Langkah ini dapat dilewati jika tabel Apache Paimon dan data sudah tersedia di Realtime Compute for Apache Flink.
Masuk ke konsol Realtime Compute for Apache Flink dan buat katalog Apache Paimon. Untuk informasi lebih lanjut, lihat Buat Katalog Apache Paimon.
Buat tabel Apache Paimon. Untuk informasi lebih lanjut, lihat Kelola Katalog Apache Paimon.
Di panel navigasi sisi kiri konsol fully managed Flink, klik Catalogs. Di panel Katalog, temukan katalog Apache Paimon yang Anda buat dan klik database default. Di halaman yang muncul, klik Create Table, seperti yang ditunjukkan pada gambar berikut.

Di tab Built-in dari kotak dialog Create Table, klik Apache Paimon dan klik Berikutnya. Di langkah Buat Tabel, masukkan pernyataan pembuatan tabel berikut dan klik Confirm. Dalam contoh ini, tabel bernama test_tbl dibuat.
CREATE TABLE `catalogname`.`default`.test_tbl ( dt STRING, id BIGINT, data STRING, PRIMARY KEY (dt, id) NOT ENFORCED ) PARTITIONED BY (dt);Di halaman SQL Editor, buat draf SQL yang berisi pernyataan berikut, terapkan draf tersebut, dan jalankan penerapan untuk draf tersebut. Untuk informasi lebih lanjut tentang cara mengembangkan dan menjalankan draf SQL, lihat Kembangkan Draf SQL.
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');CatatanPastikan versi mesin draf SQL adalah vvr-8.0.1-flink-1.17 atau yang lebih baru.
Jika penerapan SQL adalah penerapan streaming terbatas, Anda harus pergi ke halaman Deployments, klik Edit di pojok kanan atas bagian Parameters di tab Konfigurasi, dan tambahkan
execution.checkpointing.checkpoints-after-tasks-finish.enabled: trueke bidang Other Configuration. Sebagai contoh, jika pernyataanINSERT INTO ... VALUES ...termasuk dalam penerapan SQL, penerapan tersebut adalah penerapan streaming terbatas. Untuk informasi lebih lanjut tentang cara mengonfigurasi parameter runtime penerapan, lihat Konfigurasikan Penerapan.
Langkah 2: Unggah plugin Apache Paimon ke proyek MaxCompute Anda
Anda dapat menggunakan salah satu metode berikut untuk mengunggah plugin Apache Paimon ke proyek MaxCompute.
Gunakan klien MaxCompute
Akses proyek MaxCompute di klien MaxCompute dan jalankan kode berikut untuk mengunggah paket paimon_maxcompute_connector.jar ke proyek MaxCompute:
ADD JAR <path_to_paimon_maxcompute_connector.jar>;Gunakan konsol DataWorks
Masuk ke konsol DataWorks. Di panel navigasi sisi kiri, klik Workspace. Di halaman Workspace, temukan workspace yang diinginkan dan pilih Shortcuts > Data Development di kolom Actions.
Di halaman DataStudio, klik Create dan pilih Create Resource > JAR.
Di kotak dialog Create Resource, konfigurasikan parameter, unggah paket
paimon_maxcompute_connector.jar, dan kemudian klik Create. Untuk informasi lebih lanjut tentang cara membuat sumber daya, lihat Langkah 1: Buat Sumber Daya atau Unggah Sumber Daya yang Ada.
Setelah sumber daya dibuat, klik ikon
di bilah alat di tab konfigurasi sumber daya untuk mengirimkan sumber daya ke lingkungan pengembangan.
Langkah 3: Buat tabel eksternal Apache Paimon di klien MaxCompute (odpscmd) atau dengan menggunakan alat yang dapat menjalankan pernyataan SQL MaxCompute
Buat tabel eksternal Apache Paimon di klien MaxCompute (odpscmd) atau dengan menggunakan alat yang dapat menjalankan pernyataan SQL MaxCompute. Dalam contoh ini, tabel eksternal bernama oss_extable_paimon_1pt dibuat.
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 data dari tabel eksternal Apache Paimon di klien MaxCompute (odpscmd) atau dengan menggunakan alat yang dapat menjalankan pernyataan SQL MaxCompute
Jalankan perintah berikut di klien MaxCompute (odpscmd) atau alat lain yang dapat menjalankan SQL MaxCompute:
SET odps.sql.common.table.planner.ext.hive.bridge = true; SET odps.sql.hive.compatible = true;Jalankan perintah berikut untuk menanyakan data dari tabel
oss_extable_paimon_1pt:SELECT * FROM oss_extable_paimon_1pt;Hasil berikut dikembalikan:
+------------+------------+------------+ | id | data | dt | +------------+------------+------------+ | 1 | AAA | 2023-04-21 | | 2 | BBB | 2023-04-21 | +------------+------------+------------+CatatanJika informasi partisi tidak ditampilkan dalam keluaran perintah, Anda dapat menjalankan perintah berikut untuk menambahkan informasi partisi:
msck repair table oss_extable_paimon_1pt add partitions;
Referensi
Anda juga dapat membuat tabel eksternal Apache Paimon MaxCompute menggunakan katalog kustom di Flink. Setelah data ditulis ke tabel, Anda dapat menggunakan MaxCompute untuk menanyakan dan mengonsumsi data di tabel tersebut. Untuk informasi lebih lanjut, lihat Buat Tabel Eksternal Apache Paimon Menggunakan Realtime Compute for Apache Flink.