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.
CatatanKarena 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
|
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.
-
Masuk ke Konsol Realtime Compute, lalu buat Catalog Paimon. Untuk langkah-langkahnya, lihat Create a catalog.
-
Buat tabel Paimon. Untuk langkah-langkahnya, lihat Manage tables.
-
Pada halaman 元数据管理, pilih default di bawah Paimon Catalog yang telah dibuat, lalu klik 创建表.
-
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); -
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
-
Masuk ke Konsol DataWorks, pilih 工作空间 di panel navigasi kiri, lalu klik 快速进入 > 数据开发 di kolom 操作 workspace target.
-
Pada halaman Data Development, klik tombol 新建, lalu pilih 新建资源 > JAR.
-
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.
-
Setelah resource berhasil dibuat, Anda perlu mengklik ikon
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
-
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; -
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 | +------------+------------+------------+CatatanJika 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外部表.