MaxCompute memungkinkan Anda membuat tabel eksternal Apache Paimon dan menetapkan pemetaan antara tabel tersebut dengan direktori tabel Apache Paimon yang disimpan di Object Storage Service (OSS). Dengan cara ini, 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 menanyakan data menggunakan tabel eksternal tersebut di MaxCompute.
Informasi latar belakang
Apache Paimon adalah format penyimpanan terintegrasi aliran dan batch yang mendukung penulisan berkapasitas tinggi dan kueri latensi rendah. Mesin komputasi umum seperti Spark, Hive, Trino dari Realtime Compute for Apache Flink dan E-MapReduce terintegrasi secara mulus dengan Apache Paimon. Apache Paimon membantu Anda membangun layanan penyimpanan danau data sendiri di OSS dan menghubungkannya ke MaxCompute untuk menerapkan analitik danau data. Untuk informasi lebih lanjut tentang Apache Paimon, lihat Apache Paimon.
Prasyarat
Akun Alibaba Cloud yang digunakan 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.
OSS telah diaktifkan, dan bucket serta direktori file 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.
Flink yang sepenuhnya dikelola telah diaktifkan. Untuk informasi lebih lanjut, lihat Aktifkan Realtime Compute for Apache Flink.
Peringatan
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 diaktifkan.
Tabel eksternal Apache Paimon tidak mendukung atribut pengelompokan.
Tabel eksternal Apache Paimon tidak mendukung fitur seperti menanyakan dan melacak balik data versi historis.
Langkah 1: 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 (odpscmd)
Akses proyek MaxCompute di klien MaxCompute (odpscmd) 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 Workspaces, 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, lalu 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 pada tab konfigurasi sumber daya untuk mengirimkan sumber daya ke lingkungan pengembangan.
Langkah 2: Buat tabel eksternal Apache Paimon dengan 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 di katalog tersebut. Kemudian, MaxCompute menggunakan tabel Apache Paimon sebagai tabel eksternal untuk membaca data Apache Paimon yang disimpan di OSS.
Masuk ke konsol Realtime Compute for Apache Flink dan buat script. Untuk informasi lebih lanjut tentang cara membuat skrip, lihat Buat Skrip.
Di bagian pengeditan skrip tab Skrip, masukkan kode katalog dan nilai parameter, pilih kode, lalu 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.
Parameter
Diperlukan
Deskripsi
nama katalog
Ya
Nama katalog Apache Paimon. Nama tersebut hanya dapat berisi huruf. Dalam topik ini, nama katalog adalah catalogname.
tipe
Ya
Tipe katalog. Atur nilainya menjadi paimon.
metastore
Ya
Tipe penyimpanan metadata. Atur nilainya menjadi maxcompute.
warehouse
Ya
Direktori gudang data di OSS. Nilai parameter ini dalam format
oss://<bucket>/<object>.bucket: nama bucket OSS yang Anda buat.
object: jalur tempat data Anda disimpan.
Anda dapat melihat nama bucket dan nama objek di konsol OSS.
maxcompute.endpoint
Ya
Titik akhir layanan MaxCompute.
Anda harus mengonfigurasi parameter ini berdasarkan wilayah dan tipe koneksi jaringan yang Anda pilih saat membuat proyek MaxCompute. Untuk informasi lebih lanjut tentang titik akhir yang sesuai dengan wilayah dan tipe jaringan yang berbeda, lihat Titik Akhir.
maxcompute.project
Ya
Nama proyek MaxCompute.
Proyek MaxCompute yang memiliki fitur skema diaktifkan tidak didukung.
maxcompute.accessid
Ya
ID AccessKey akun Alibaba Cloud atau pengguna RAM yang memiliki izin pada MaxCompute.
Anda dapat memperoleh ID AccessKey di halaman Pasangan AccessKey.
maxcompute.accesskey
Ya
Rahasia AccessKey yang sesuai dengan ID AccessKey.
maxcompute.oss.endpoint
Tidak
Titik akhir OSS yang diakses oleh MaxCompute. Jika Anda tidak mengonfigurasi parameter ini, nilai parameter fs.oss.endpoint digunakan secara default.
PentingBucket OSS berada di wilayah yang sama dengan proyek MaxCompute. Kami sarankan Anda mengatur parameter maxcompute.oss.endpoint ke titik akhir internal. Untuk informasi lebih lanjut tentang titik akhir OSS dari tipe jaringan yang berbeda di setiap wilayah, lihat Wilayah dan titik akhir.
fs.oss.endpoint
Tidak
Titik akhir OSS.
Parameter ini diperlukan jika bucket OSS yang ditentukan oleh parameter warehouse tidak berada di wilayah yang sama dengan ruang kerja Realtime Compute for Apache Flink atau bucket OSS dalam akun Alibaba Cloud lain digunakan.
CatatanAnda harus mengonfigurasi titik akhir berdasarkan wilayah dan metode koneksi jaringan yang Anda pilih saat membuat bucket OSS. Untuk informasi lebih lanjut tentang titik akhir yang sesuai dengan wilayah dan tipe jaringan yang berbeda, lihat Wilayah dan titik akhir.
fs.oss.accessKeyId
Tidak
ID AccessKey akun Alibaba Cloud atau pengguna RAM yang memiliki izin baca dan tulis di OSS.
Parameter ini diperlukan jika bucket OSS yang ditentukan oleh parameter warehouse tidak berada di wilayah yang sama dengan ruang kerja Realtime Compute for Apache Flink atau bucket OSS dalam akun Alibaba Cloud lain digunakan.
Anda dapat memperoleh ID AccessKey di halaman Pasangan AccessKey.
fs.oss.accessKeySecret
Tidak
Rahasia AccessKey yang sesuai dengan ID AccessKey.
Parameter ini diperlukan jika bucket OSS yang ditentukan oleh parameter warehouse tidak berada di wilayah yang sama dengan ruang kerja Realtime Compute for Apache Flink atau bucket OSS dalam akun Alibaba Cloud lain digunakan.
Buat tabel Apache Paimon.
Buat tabel bernama test_tbl.
Di bagian pengeditan skrip tab Scripts, jalankan pernyataan berikut dan tunggu hingga pesan yang menunjukkan bahwa eksekusi selesai ditampilkan di tab Results. 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);Tulis data ke tabel test_tbl.
Di tab Drafts halaman Editor SQL, buat draf SQL yang berisi pernyataan berikut. Lalu, terapkan draf tersebut. Untuk informasi lebih lanjut tentang cara membuat dan menerapkan draf SQL, lihat Kembangkan Draf SQL.
-- Dalam contoh ini, parameter execution.checkpointing.interval diatur ke 10s. Ini meningkatkan kecepatan pengiriman data. 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 mengirimkan data setiap kali checkpointing selesai.
Dalam lingkungan produksi, interval checkpointing dan interval minimal antar checkpoint bervariasi berdasarkan persyaratan bisnis Anda untuk latensi. Dalam kebanyakan kasus, mereka diatur ke 1 hingga 10 menit.
Versi mesin draf SQL harus vvr-8.0.5-flink-1.17 atau lebih baru.
Langkah 3: Baca data dari tabel eksternal Apache Paimon dengan menggunakan MaxCompute
Jalankan perintah berikut di klien MaxCompute (odpscmd) atau dengan menggunakan alat lain yang dapat mengeksekusi pernyataan 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 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 | +------------+------------+------------+