Katalog Paimon adalah katalog eksternal yang didukung oleh StarRocks sejak versi 3.1. Topik ini menjelaskan cara membuat dan melihat katalog Paimon.
Informasi latar belakang
Katalog Paimon memungkinkan Anda:
Menjalankan kueri data secara langsung di Apache Paimon.
Membuat database dan tabel Paimon, serta menulis data ke Paimon.
Menggunakan fitur INSERT INTO untuk mentransformasi dan mengimpor data.
Untuk mengakses data di Paimon, kluster StarRocks Anda harus dapat mengakses sistem penyimpanan dan layanan metadata dari kluster Paimon. StarRocks mendukung sistem penyimpanan dan layanan metadata berikut:
Hadoop Distributed File System (HDFS) atau Alibaba Cloud Object Storage Service (OSS).
Layanan metadata. Layanan metadata yang didukung adalah Data Lake Formation (DLF) 1.0 (Legacy), DLF, Hive Metastore (HMS), dan File System.
Batasan
Pembuatan database Paimon, pembuatan tabel Paimon, dan penyisipan data ke dalam tabel Paimon hanya didukung di StarRocks 3.2.9 dan versi yang lebih baru.
Buat katalog Paimon
Sintaksis
CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
"type" = "paimon",
CatalogParams,
StorageCredentialParams
);Parameter
Katalog Paimon di StarRocks memiliki pemetaan satu-ke-satu dengan katalog di native Paimon API. Item konfigurasi dan maknanya identik.
Konfigurasi parameter bervariasi tergantung pada jenis metadata yang digunakan oleh kluster Paimon.
Gunakan HMS
catalog_name: Nama katalog Paimon. Parameter ini wajib diisi. Nama harus memenuhi persyaratan berikut:Harus dimulai dengan huruf dan hanya boleh berisi huruf (a–z atau A–Z), angka (0–9), atau garis bawah (_).
Panjang total tidak boleh melebihi 64 karakter.
comment: Deskripsi katalog Paimon. Parameter ini opsional.type: Jenis sumber data. Atur parameter ini kepaimon.CatalogParams: Parameter agar StarRocks dapat mengakses metadata kluster Paimon.Property
Wajib
Deskripsi
paimon.catalog.type
Ya
Jenis sumber data. Nilainya adalah
hive.hive.metastore.uris
Ya
URI HMS. Formatnya adalah
thrift://<alamat IP HMS>:<nomor port>. Port default adalah 9083.Jika HMS Anda berada dalam Mode Ketersediaan Tinggi, Anda dapat menentukan beberapa alamat HMS yang dipisahkan dengan koma, misalnya,
"thrift://<alamat IP HMS 1>:<port HMS 1>,thrift://<alamat IP HMS 2>:<port HMS 2>,thrift://<alamat IP HMS 3>:<port HMS 3>".StorageCredentialParams: Parameter agar StarRocks dapat mengakses penyimpanan file kluster Paimon.Jika Anda menggunakan HDFS sebagai sistem penyimpanan, Anda tidak perlu mengonfigurasi
StorageCredentialParams.Jika Anda menggunakan OSS atau OSS-HDFS, Anda harus mengonfigurasi
StorageCredentialParams."aliyun.oss.endpoint" = "<YourAliyunOSSEndpoint>"Parameter dijelaskan dalam tabel berikut.
Property
Deskripsi
aliyun.oss.endpoint
Informasi endpoint untuk OSS atau OSS-HDFS adalah sebagai berikut:
OSS: Buka halaman Overview bucket Anda dan temukan endpoint di bagian Access Ports. Anda juga dapat melihat wilayah dan endpoint OSS untuk melihat endpoint wilayah yang sesuai. Misalnya,
oss-cn-hangzhou.aliyuncs.com.OSS-HDFS: Buka halaman Overview bucket Anda dan temukan endpoint untuk HDFS Service di bagian Access Ports. Misalnya, endpoint untuk wilayah China (Hangzhou) adalah
cn-hangzhou.oss-dls.aliyuncs.com.PentingSetelah mengonfigurasi parameter ini, Anda juga harus membuka halaman Instance Configuration di konsol EMR Serverless StarRocks. Kemudian, ubah parameter fs.oss.endpoint di
core-site.xmldanjindosdk.cfgagar konsisten dengan nilai aliyun.oss.endpoint.
Gunakan filesystem
catalog_name: Nama katalog Paimon. Parameter ini wajib diisi. Nama harus memenuhi persyaratan berikut:Harus dimulai dengan huruf dan hanya boleh berisi huruf (a–z atau A–Z), angka (0–9), atau garis bawah (_).
Panjang total tidak boleh melebihi 64 karakter.
comment: Deskripsi katalog Paimon. Parameter ini opsional.type: Jenis sumber data. Atur parameter ini kepaimon.CatalogParams: Parameter agar StarRocks dapat mengakses metadata kluster Paimon.Property
Wajib
Deskripsi
paimon.catalog.type
Ya
Jenis sumber data. Nilainya adalah
filesystem.paimon.catalog.warehouse
Ya
Jalur penyimpanan warehouse tempat data Paimon disimpan. HDFS, OSS, dan OSS-HDFS didukung. Format untuk OSS atau OSS-HDFS adalah
oss://<namaBucketAnda>/<jalurAnda>.PentingJika Anda menggunakan OSS atau OSS-HDFS sebagai warehouse, Anda harus mengonfigurasi parameter aliyun.oss.endpoint. Untuk informasi selengkapnya, lihat StorageCredentialParams: Parameter agar StarRocks dapat mengakses penyimpanan file kluster Paimon.
StorageCredentialParams: Parameter agar StarRocks dapat mengakses penyimpanan file kluster Paimon.Jika Anda menggunakan HDFS sebagai sistem penyimpanan, Anda tidak perlu mengonfigurasi
StorageCredentialParams.Jika Anda menggunakan OSS atau OSS-HDFS, Anda harus mengonfigurasi
StorageCredentialParams."aliyun.oss.endpoint" = "<YourAliyunOSSEndpoint>"Parameter dijelaskan dalam tabel berikut.
Property
Deskripsi
aliyun.oss.endpoint
Informasi endpoint untuk OSS atau OSS-HDFS adalah sebagai berikut:
OSS: Buka halaman Overview bucket Anda dan temukan endpoint di bagian Access Ports. Anda juga dapat melihat wilayah dan endpoint OSS untuk melihat endpoint wilayah yang sesuai. Misalnya,
oss-cn-hangzhou.aliyuncs.com.OSS-HDFS: Buka halaman Overview bucket Anda dan temukan endpoint untuk HDFS Service di bagian Access Ports. Misalnya, endpoint untuk wilayah China (Hangzhou) adalah
cn-hangzhou.oss-dls.aliyuncs.com.PentingSetelah mengonfigurasi parameter ini, Anda juga harus membuka halaman Instance Configuration di konsol EMR Serverless StarRocks. Kemudian, ubah parameter fs.oss.endpoint di
core-site.xmldanjindosdk.cfgagar konsisten dengan nilai aliyun.oss.endpoint.
Gunakan DLF 1.0 (Legacy)
catalog_name: Nama katalog Paimon. Parameter ini wajib diisi. Nama harus memenuhi persyaratan berikut:Harus dimulai dengan huruf dan hanya boleh berisi huruf (a–z atau A–Z), angka (0–9), atau garis bawah (_).
Panjang total tidak boleh melebihi 64 karakter.
comment: Deskripsi katalog Paimon. Parameter ini opsional.type: Jenis sumber data. Atur parameter ini kepaimon.CatalogParams: Parameter agar StarRocks dapat mengakses metadata kluster Paimon.Property
Wajib
Deskripsi
paimon.catalog.type
Ya
Jenis sumber data. Nilainya adalah
dlf.paimon.catalog.warehouse
Ya
Jalur penyimpanan warehouse tempat data Paimon disimpan. HDFS, OSS, dan OSS-HDFS didukung. Format untuk OSS atau OSS-HDFS adalah
oss://<namaBucketAnda>/<jalurAnda>.PentingJika Anda menggunakan OSS atau OSS-HDFS sebagai warehouse, Anda harus mengonfigurasi parameter aliyun.oss.endpoint. Untuk informasi selengkapnya, lihat StorageCredentialParams: Parameter agar StarRocks dapat mengakses penyimpanan file kluster Paimon.
dlf.catalog.id
Tidak
ID katalog data yang sudah ada di DLF. Jika Anda tidak mengonfigurasi parameter
dlf.catalog.id, sistem akan menggunakan katalog DLF default.StorageCredentialParams: Parameter agar StarRocks dapat mengakses penyimpanan file kluster Paimon.Jika Anda menggunakan HDFS sebagai sistem penyimpanan, Anda tidak perlu mengonfigurasi
StorageCredentialParams.Jika Anda menggunakan OSS atau OSS-HDFS, Anda harus mengonfigurasi
StorageCredentialParams."aliyun.oss.endpoint" = "<YourAliyunOSSEndpoint>"Parameter dijelaskan dalam tabel berikut.
Property
Deskripsi
aliyun.oss.endpoint
Informasi endpoint untuk OSS atau OSS-HDFS adalah sebagai berikut:
OSS: Buka halaman Overview bucket Anda dan temukan endpoint di bagian Access Ports. Anda juga dapat melihat wilayah dan endpoint OSS untuk melihat endpoint wilayah yang sesuai. Misalnya,
oss-cn-hangzhou.aliyuncs.com.OSS-HDFS: Buka halaman Overview bucket Anda dan temukan endpoint untuk HDFS Service di bagian Access Ports. Misalnya, endpoint untuk wilayah China (Hangzhou) adalah
cn-hangzhou.oss-dls.aliyuncs.com.PentingSetelah mengonfigurasi parameter ini, Anda juga harus membuka halaman Instance Configuration di konsol EMR Serverless StarRocks. Kemudian, ubah parameter fs.oss.endpoint di
core-site.xmldanjindosdk.cfgagar konsisten dengan nilai aliyun.oss.endpoint.
Gunakan DLF
catalog_name: Nama katalog Paimon. Parameter ini wajib diisi. Nama harus memenuhi persyaratan berikut:Harus dimulai dengan huruf dan hanya boleh berisi huruf (a–z atau A–Z), angka (0–9), atau garis bawah (_).
Panjang total tidak boleh melebihi 64 karakter.
comment: Deskripsi katalog Paimon. Parameter ini opsional.type: Jenis sumber data. Atur parameter ini kepaimon.CatalogParams: Parameter agar StarRocks dapat mengakses metadata kluster Paimon.PentingJika Anda menggunakan DLF, Anda harus menggunakan Pengguna Resource Access Management (RAM) yang telah dikonfigurasi untuk melakukan operasi di StarRocks Manager. Untuk informasi selengkapnya, lihat Menggunakan katalog DLF.
Parameter
Wajib
Deskripsi
<catalog_name>Ya
Nama katalog data DLF, misalnya,
dlf_catalog.typeYa
Jenis katalog. Atur parameter ini ke bidang statis
paimon.uriYa
Alamat REST API DLF.
Formatnya adalah
http://<titik akhir VPC>.<titik akhir VPC>adalah titik akhir layanan DLF di wilayah tertentu untuk akses VPC.Misalnya,
http://cn-hangzhou-vpc.dlf.aliyuncs.com.paimon.catalog.typeYa
Jenis katalog Paimon. Atur parameter ini ke bidang statis
rest.paimon.catalog.warehouseYa
Nama katalog Paimon. Anda dapat memperolehnya dari halaman Data Catalog di konsol Data Lake Formation.
token.providerYa
Penyedia layanan REST. Atur parameter ini ke bidang statis
dlf.StorageCredentialParams: Parameter agar StarRocks dapat mengakses penyimpanan file kluster Paimon.Jika Anda menggunakan HDFS sebagai sistem penyimpanan, Anda tidak perlu mengonfigurasi
StorageCredentialParams.Jika Anda menggunakan OSS atau OSS-HDFS, Anda harus mengonfigurasi
StorageCredentialParams."aliyun.oss.endpoint" = "<YourAliyunOSSEndpoint>"Parameter dijelaskan dalam tabel berikut.
Property
Deskripsi
aliyun.oss.endpoint
Informasi endpoint untuk OSS atau OSS-HDFS adalah sebagai berikut:
OSS: Buka halaman Overview bucket Anda dan temukan endpoint di bagian Access Ports. Anda juga dapat melihat wilayah dan endpoint OSS untuk melihat endpoint wilayah yang sesuai. Misalnya,
oss-cn-hangzhou.aliyuncs.com.OSS-HDFS: Buka halaman Overview bucket Anda dan temukan endpoint untuk HDFS Service di bagian Access Ports. Misalnya, endpoint untuk wilayah China (Hangzhou) adalah
cn-hangzhou.oss-dls.aliyuncs.com.PentingSetelah mengonfigurasi parameter ini, Anda juga harus membuka halaman Instance Configuration di konsol EMR Serverless StarRocks. Kemudian, ubah parameter fs.oss.endpoint di
core-site.xmldanjindosdk.cfgagar konsisten dengan nilai aliyun.oss.endpoint.
Contoh
Contoh berikut menunjukkan cara membuat katalog Paimon bernama paimon_catalog untuk menjalankan kueri data di sumber data Paimon.
Gunakan HMS
CREATE EXTERNAL CATALOG paimon_catalog
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "hive",
"hive.metastore.uris" = "thrift://xx.xx.xx.xx:9083"
);Gunakan filesystem
CREATE EXTERNAL CATALOG paimon_catalog
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "oss://<namaBucketAnda>/<jalurAnda>",
"aliyun.oss.endpoint" = "cn-hangzhou.oss-dls.aliyuncs.com"
);Gunakan DLF 1.0 (Legacy)
CREATE EXTERNAL CATALOG paimon_catalog
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "dlf",
"paimon.catalog.warehouse" = "oss://<namaBucketAnda>/<jalurAnda>",
"dlf.catalog.id" = "paimon_dlf_test"
);Gunakan DLF
CREATE EXTERNAL CATALOG dlf_catalog
PROPERTIES
(
"type"= "paimon",
"uri" = "http://cn-hangzhou-vpc.dlf.aliyuncs.com",
"paimon.catalog.type" = "rest",
"paimon.catalog.warehouse" = "test_paimon",
"token.provider" = "dlf"
);Lihat katalog Paimon
Anda dapat menjalankan
SHOW CATALOGSuntuk melihat semua katalog di kluster StarRocks saat ini.SHOW CATALOGS;Anda dapat menjalankan
SHOW CREATE CATALOGuntuk melihat pernyataan pembuatan katalog eksternal.SHOW CREATE CATALOG paimon_catalog;
Hapus katalog Paimon
Anda dapat menjalankan DROP CATALOG untuk menghapus katalog eksternal. Misalnya, untuk menghapus katalog Paimon bernama paimon_catalog, jalankan perintah berikut:
DROP CATALOG paimon_catalog;Buat database Paimon
CREATE DATABASE IF NOT EXISTS <catalog_name>.<database_name>;Buat tabel Paimon
Sintaksis
CREATE TABLE IF NOT EXISTS <catalog_name>.<database_name>.<table_name>
(
id STRING,
name STRING,
day INT
)
PRIMARY KEY (id, day) -- Opsional untuk membuat tabel append-only --
PARTITION BY (`day`) -- Opsional untuk membuat tabel non-partisi --
PROPERTIES ( -- Opsional jika tidak ada PROPERTIES yang ditentukan --
key = value
);
Parameter
Parameter umum `PROPERTIES` dijelaskan dalam tabel berikut.
Key | Deskripsi |
file.format | Menentukan format penyimpanan data untuk tabel. Nilai default adalah |
bucket | Menentukan jumlah bucket untuk tabel, digunakan untuk distribusi data dan optimasi kueri. Nilai default adalah -1, yang berarti bucketing tidak digunakan. |
bucket_key | Menentukan kolom yang digunakan untuk mendistribusikan catatan ke dalam bucket. |
Batasan
Saat membuat tabel partisi, semua kolom kunci partisi harus ditempatkan di akhir definisi kolom.
Untuk tabel partisi, semua kolom kunci partisi harus disertakan dalam definisi kunci primer.
bucket_keyyang ditentukan tidak boleh menjadi bagian dari kunci partisi atau kunci primer.
Contoh
CREATE TABLE dlf_catalog.sr_dlf_db.ads_age_pvalue_analytics(
final_gender_code STRING COMMENT 'gender',
age_level STRING COMMENT 'age_level',
pvalue_level STRING COMMENT 'consumption_level',
clicks INT COMMENT 'clicks',
total_behaviors INT COMMENT 'total_behaviors'
);Lihat skema tabel Paimon
Anda dapat melihat skema tabel Paimon dengan cara berikut.
Lihat skema tabel
DESC[RIBE] <catalog_name>.<database_name>.<table_name>;Lihat skema tabel dan lokasi penyimpanan file dari pernyataan CREATE TABLE
SHOW CREATE TABLE <catalog_name>.<database_name>.<table_name>;
Kueri data di tabel Paimon
Untuk menjalankan kueri data di tabel dalam katalog Paimon, lakukan langkah-langkah berikut:
Jalankan
SHOW DATABASESuntuk melihat database di katalog Paimon yang ditentukan.SHOW DATABASES FROM <catalog_name>;Jalankan
SET CATALOGuntuk beralih ke katalog yang diinginkan untuk session saat ini.SET CATALOG <catalog_name>;Kemudian, jalankan
USEuntuk menentukan database yang diinginkan untuk session saat ini.USE <db_name>;Atau, Anda dapat menjalankan
USEuntuk langsung beralih session ke database tertentu dalam katalog target.USE <catalog_name>.<db_name>;Jalankan pernyataan
SELECTuntuk menjalankan kueri tabel target di database target.SELECT count(*) FROM <table_name> LIMIT 10;
Anda juga dapat langsung menjalankan kueri tabel target dengan menentukan katalog dan database dalam pernyataan SELECT.
SELECT * FROM <catalog_name>.<database_name>.<table_name>;
Tulis data ke Paimon
Tulis ke tabel Paimon
Di StarRocks, data ditulis ke tabel Paimon secara batch (Batch Write). Karena keterbatasan Paimon, Anda tidak dapat menulis data ke tabel yang mode bucket-nya HASH_DYNAMIC atau CROSS_PARTITION. Skenario umum adalah menulis ke tabel kunci primer. Jika Anda tidak menentukan properti `bucket` dalam pernyataan pembuatan tabel, nilai default-nya adalah -1 (Dynamic Bucket Mode), yang mencegah operasi penulisan.
Kit pengembangan perangkat lunak (SDK) Paimon mensyaratkan bahwa kolom kunci partisi atau kunci primer dalam data yang akan ditulis tidak boleh bernilai null. StarRocks tidak melakukan pemeriksaan awal terhadap data sebelum menulisnya ke tabel Paimon. Oleh karena itu, pengecualian akan dilemparkan jika Anda mencoba menulis nilai null.
INSERT INTO <catalog_name>.<database_name>.<table_name> (column1, column2, ...) VALUES (value1, value2, ...);Misalnya, Anda dapat menyisipkan data berikut langsung ke tabel `ads_age_pvalue_analytics`.
INSERT INTO dlf_catalog.sr_dlf_db.ads_age_pvalue_analytics (final_gender_code, age_level, pvalue_level, clicks, total_behaviors)
VALUES
('M', '18-24', 'Low', 1500, 2500),
('F', '25-34', 'Medium', 2200, 3300),
('M', '35-44', 'High', 2800, 4000);Impor data Paimon ke tabel internal
Asumsikan bahwa tabel OLAP bernama olap_tbl ada di StarRocks. Anda dapat mentransformasi data dari tabel Paimon dan mengimpornya ke tabel StarRocks olap_tbl sebagai berikut:
INSERT INTO default_catalog.olap_db.olap_tbl SELECT * FROM <paimon_catalog>.<db_name>.<table_name>;Referensi
Untuk informasi selengkapnya tentang Paimon, lihat Ikhtisar Paimon.