MaxCompute memungkinkan Anda membuat tabel eksternal Apache Paimon dan menetapkan pemetaan antara tabel eksternal tersebut dengan direktori tabel Apache Paimon yang disimpan di Object Storage Service (OSS). Dengan demikian, Anda dapat menggunakan tabel eksternal Apache Paimon di MaxCompute untuk mengakses data dalam tabel Apache Paimon yang tersimpan di OSS. Topik ini menjelaskan cara membuat tabel eksternal Apache Paimon menggunakan Realtime Compute for Apache Flink serta cara melakukan kueri data melalui tabel eksternal tersebut di MaxCompute.
Informasi latar belakang
Apache Paimon adalah format penyimpanan data lake terpadu untuk aliran (streaming) dan batch yang menyediakan penulisan ber-throughput tinggi dan kueri ber-latensi rendah. Mesin komputasi umum seperti Spark, Hive, dan Trino di Realtime Compute for Apache Flink dan E-MapReduce terintegrasi secara mulus dengan Paimon. Dengan Apache Paimon, Anda dapat dengan cepat membangun data lake di Object Storage Service (OSS) dan menghubungkannya ke MaxCompute untuk analitik data lake. Untuk informasi selengkapnya tentang Apache Paimon, lihat dokumentasi Apache Paimon.
Prasyarat
Akun Alibaba Cloud yang Anda gunakan untuk melakukan operasi memiliki izin CreateTable guna membuat tabel MaxCompute. Untuk informasi selengkapnya mengenai izin tabel, lihat Izin MaxCompute.
Proyek MaxCompute telah dibuat. Untuk informasi lebih lanjut, lihat Create a project.
Object Storage Service (OSS) telah diaktifkan. Bucket dan direktori file telah dibuat. Untuk informasi lebih lanjut, lihat Create a bucket.
CatatanMaxCompute hanya dideploy di wilayah tertentu. Untuk mencegah masalah konektivitas data lintas wilayah, kami menyarankan agar Anda menggunakan bucket yang berada di wilayah yang sama dengan proyek MaxCompute Anda.
Flink yang dikelola sepenuhnya telah diaktifkan. Untuk informasi lebih lanjut, lihat Create a workspace.
Tindakan Pencegahan
MaxCompute hanya dapat membaca data dari tabel eksternal Apache Paimon, tetapi tidak dapat menulis data ke tabel eksternal tersebut atau menyinkronkan perubahan skema tabel secara otomatis.
Apache Paimon tidak mendukung proyek MaxCompute yang telah mengaktifkan fitur skema.
Tabel eksternal Apache Paimon tidak mendukung atribut clustering.
Tabel eksternal Apache Paimon tidak mendukung fitur seperti kueri dan backtracking data versi historis.
Langkah 1: Unggah plugin Apache Paimon ke proyek MaxCompute Anda
Gunakan salah satu metode berikut untuk mengunggah Paimon plugin ke proyek MaxCompute Anda.
Gunakan klien MaxCompute (odpscmd)
Akses proyek MaxCompute Anda menggunakan klien MaxCompute (odpscmd) dan jalankan perintah berikut untuk mengunggah file paimon_maxcompute_connector.jar ke proyek tersebut.
ADD JAR <path_to_paimon_maxcompute_connector.jar>;
Gunakan Konsol DataWorks
-
Masuk ke Konsol DataWorks. Di panel navigasi sebelah kiri, klik Workspace. Di kolom Actions pada workspace target Anda, pilih Quick Access > DataStudio.
-
Pada halaman Data Development, klik Create dan pilih New Resource > JAR.
-
Pada kotak dialog New resource, konfigurasikan parameter untuk mengunggah file
paimon_maxcompute_connector.jar, lalu klik Create. Untuk informasi lebih lanjut tentang pembuatan resource, lihat Step 1: Create or upload a resource.Atur parameter berikut: untuk Engine Type, pilih MaxCompute; untuk Engine Instance, pilih glz_mc China (Beijing); untuk Schema, pilih default; untuk Resource Type, pilih JAR; dan centang Upload as ODPS Resource.
Setelah resource dibuat, klik ikon
pada bilah alat di tab konfigurasi resource untuk melakukan commit resource ke lingkungan pengembangan.
Langkah 2: Buat tabel eksternal Apache Paimon menggunakan Realtime Compute for Apache Flink
Praktik terbaik dalam topik ini dilakukan berdasarkan Realtime Compute for Apache Flink. Realtime Compute for Apache Flink menulis data file Apache Paimon ke OSS. Katalog Apache Paimon dibuat di Konsol Realtime Compute for Apache Flink, dan tabel Apache Paimon yang dapat digunakan oleh MaxCompute untuk membaca data file Apache Paimon di OSS dibuat dalam katalog tersebut. Selanjutnya, MaxCompute menggunakan tabel Apache Paimon sebagai tabel eksternal untuk membaca data Apache Paimon yang tersimpan di OSS.
-
Masuk ke Konsol Realtime Compute for Apache Flink dan buat Script. Untuk informasi lebih lanjut, lihat Query Scripts.
-
Di editor skrip, masukkan definisi katalog dan nilai parameter berikut. Pilih kode tersebut dan klik Run.
CREATE CATALOG `<catalog name>` WITH ( 'type' = 'paimon', 'metastore' = 'maxcompute', 'warehouse' = '<warehouse>', 'maxcompute.endpoint' = '<maxcompute.endpoint>', 'maxcompute.project' = '<maxcompute.project>', 'maxcompute.accessid' = '<maxcompute.accessid>', 'maxcompute.accesskey' = '<maxcompute.accesskey>', 'maxcompute.oss.endpoint' = '<maxcompute.oss.endpoint>', 'fs.oss.endpoint' = '<fs.oss.endpoint>', 'fs.oss.accessKeyId' = '<fs.oss.accessKeyId>', 'fs.oss.accessKeySecret' = '<fs.oss.accessKeySecret>' );Tabel berikut menjelaskan parameter dalam kode tersebut.
Parameter
Wajib
Deskripsi
catalog name
Ya
Nama katalog Apache Paimon. Nama hanya boleh berisi huruf. Dalam topik ini, nama katalog adalah catalogname.
type
Ya
Jenis katalog. Tetapkan nilainya ke paimon.
metastore
Ya
Jenis penyimpanan metadata. Tetapkan nilainya ke maxcompute.
warehouse
Ya
Direktori gudang data di OSS, dalam format
oss://<bucket>/<object>.bucket: nama bucket OSS yang telah Anda buat.
object: path tempat data Anda disimpan.
Anda dapat melihat nama bucket dan object Anda di Konsol OSS.
maxcompute.endpoint
Ya
Titik akhir layanan MaxCompute.
Anda harus mengonfigurasi parameter ini berdasarkan wilayah dan jenis koneksi jaringan yang dipilih saat membuat proyek MaxCompute. Untuk informasi selengkapnya tentang titik akhir yang sesuai dengan berbagai wilayah dan jenis jaringan, lihat Endpoint.
maxcompute.project
Ya
Nama proyek MaxCompute.
Proyek MaxCompute yang telah mengaktifkan fitur skema tidak didukung.
maxcompute.accessid
Ya
ID AccessKey dari Akun Alibaba Cloud atau Pengguna RAM yang memiliki izin pada MaxCompute.
Anda dapat memperoleh ID AccessKey di halaman AccessKey Management.
maxcompute.accesskey
Ya
Rahasia AccessKey yang sesuai dengan ID AccessKey tersebut.
maxcompute.oss.endpoint
Tidak
Titik akhir OSS yang diakses oleh MaxCompute. Jika Anda tidak mengonfigurasi parameter ini, nilai parameter fs.oss.endpoint akan digunakan secara default.
PentingBucket OSS berada di wilayah yang sama dengan proyek MaxCompute. Kami menyarankan agar Anda menetapkan parameter maxcompute.oss.endpoint ke Titik akhir internal. Untuk informasi selengkapnya tentang titik akhir OSS berbagai jenis jaringan di setiap wilayah, lihat Regions and Endpoints.
fs.oss.endpoint
Tidak
Titik akhir OSS.
Parameter ini wajib jika bucket OSS yang ditentukan oleh parameter warehouse tidak berada di wilayah yang sama dengan workspace Realtime Compute for Apache Flink atau jika menggunakan bucket OSS milik akun Alibaba Cloud lain.
CatatanAnda harus mengonfigurasi titik akhir berdasarkan wilayah dan metode koneksi jaringan yang dipilih saat membuat bucket OSS. Untuk informasi selengkapnya tentang titik akhir yang sesuai dengan berbagai wilayah dan jenis jaringan, lihat Regions and Endpoints.
fs.oss.accessKeyId
Tidak
ID AccessKey dari Akun Alibaba Cloud atau Pengguna RAM yang memiliki izin baca dan tulis pada OSS.
Parameter ini wajib jika bucket OSS yang ditentukan oleh parameter warehouse tidak berada di wilayah yang sama dengan workspace Realtime Compute for Apache Flink atau jika menggunakan bucket OSS milik akun Alibaba Cloud lain.
Anda dapat memperoleh ID AccessKey di halaman AccessKey Management.
fs.oss.accessKeySecret
Tidak
Rahasia AccessKey yang sesuai dengan ID AccessKey tersebut.
Parameter ini wajib jika bucket OSS yang ditentukan oleh parameter warehouse tidak berada di wilayah yang sama dengan workspace Realtime Compute for Apache Flink atau jika menggunakan bucket OSS milik akun Alibaba Cloud lain.
-
Buat tabel Apache Paimon.
-
Buat tabel bernama test_tbl.
Di tab Script, jalankan pernyataan berikut di editor skrip. Tunggu hingga pesan penyelesaian muncul di tab Result. Contoh ini menggunakan tabel bernama test_tbl.
CREATE TABLE `catalogname`.`default`.test_tbl ( dt STRING, id BIGINT, data STRING, PRIMARY KEY (dt, id) NOT ENFORCED ) PARTITIONED BY (dt); -
Tulis data ke tabel test_tbl.
Di halaman Drafts, buat pekerjaan SQL yang berisi pernyataan berikut. Lalu, deploy dan jalankan pekerjaan tersebut. Untuk informasi selengkapnya tentang cara membuat dan menjalankan pekerjaan SQL, lihat Job development overview.
-- Interval checkpoint diatur menjadi 10 detik agar data lebih cepat dikomit. SET 'execution.checkpointing.interval' = '10s'; 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');CatatanTabel hasil Apache Paimon mengkomit data setiap kali proses checkpoint selesai.
Di lingkungan produksi, interval checkpoint dan interval minimal antar checkpoint bervariasi berdasarkan kebutuhan bisnis Anda terhadap latensi. Umumnya, nilai-nilai tersebut diatur antara 1 hingga 10 menit.
Versi mesin draft SQL harus vvr-8.0.5-flink-1.17 atau lebih baru.
-
Langkah 3: Baca data dengan MaxCompute
Jalankan perintah berikut di Connect using the local client (odpscmd) atau menggunakan tool lain yang dapat menjalankan pernyataan SQL MaxCompute:
SET odps.sql.common.table.planner.ext.hive.bridge = true; SET odps.sql.hive.compatible = true;Jalankan perintah berikut untuk melakukan kueri data dari tabel eksternal Apache Paimon test_tbl:
SELECT * FROM test_tbl WHERE dt = '2023-04-21';Hasil berikut dikembalikan:
+------------+------------+------------+ | id | data | dt | +------------+------------+------------+ | 1 | AAA | 2023-04-21 | | 2 | BBB | 2023-04-21 | +------------+------------+------------+