Mulai versi V3.0.38, Hologres memperkenalkan jalur akses terbaru ke MaxCompute yang disebut Common Table. Dokumen ini menjelaskan cara menggunakan Common Table untuk mengakses MaxCompute.
Pendahuluan
Dengan Common Table, Hologres membaca data dari MaxCompute menggunakan reader native C++. Fitur ini menawarkan keunggulan berikut dibandingkan mekanisme SQE/HQE yang ada:
menunjukkan didukung dan
menunjukkan tidak didukung.
Item perbandingan | SQE/HQE | Common Table |
Kinerja | Tinggi | Sangat tinggi. Meningkatkan performa hingga 33% dibandingkan mekanisme SQE/HQE dan lebih dari 200% dibandingkan membaca data melalui Storage API open storage. |
Dynamic data masking | Memerlukan konfigurasi terpisah pada tabel. | Mewarisi aturan penyamaran data dari MaxCompute, sehingga memastikan hasil kueri konsisten dengan hasil dari MaxCompute. |
Schema evolution | Tidak mendukung pembacaan langsung, sehingga performanya sedikit lebih rendah. | Mendukung pembacaan langsung untuk performa tinggi. |
Encryption at rest |
|
|
Tabel ACID 1.0 |
|
|
PK Delta Table |
|
|
Append Delta Table |
|
|
Izin
Untuk mengakses MaxCompute yang dipetakan ke Hologres sebagai foreign/external table melalui Common Table, Anda harus memiliki izin yang tercantum dalam tabel berikut. Untuk informasi selengkapnya tentang pemberian izin ini, lihat Kelola izin pengguna menggunakan perintah.
Perhatikan bahwa Hologres V4.0+ memperkenalkan perubahan pada verifikasi izin.
Jenis tabel
Operasi
Izin MaxCompute yang diperlukan (Hologres V3.0, V3.1, dan V3.2)
Izin MaxCompute yang diperlukan (Hologres V4.0+)
Foreign table
IMPORT FOREIGN SCHEMA
Describe, List
Describe, List
Querying data
Describe, Select
Select
External table
Viewing metadata
Describe
Describe
Querying data
Describe, Select
Select
Hologres saat ini hanya mendukung pembacaan snapshot terbaru dari MaxCompute Delta Table.
Menulis data dari Hologres kembali ke MaxCompute Delta Table tidak didukung.
Fitur
Fitur | Versi yang didukung |
Querying MaxCompute Append Delta tables | >= 3.0.40 >= 3.1.10 >=3.2.0 >=4.0.0 |
Menggunakan | >= 3.0.41 >= 3.1.10 >= 3.2.0 >= 4.0.0 |
Reading MaxCompute tables that contain default values | >=3.0.40 >= 3.1.10 >=3.2.0 >=4.0.0 |
Auto Split Size, yang secara otomatis menentukan ukuran split berdasarkan spesifikasi instans | >=3.1.33 >=3.2.0 >=4.0.0 |
Querying TIMESTAMP_NTZ data | >= 3.0.41 >= 3.1.10 >=3.2.0 >=4.0.0 |
Predicate pushdown untuk filter equality pada atribut seperti clustering keys dan primary keys di Delta Tables meningkatkan efisiensi filter dan performa kueri. | >= 4.0.6 |
Aktifkan Common Table
Pilih metode yang sesuai dengan skenario Anda.
Tingkat sesi
-- Aktifkan Common Table pada tingkat session. Jalankan ini bersamaan dengan kueri atau pernyataan DML. SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';Tingkat database
-- Aktifkan Common Table pada tingkat database. ALTER DATABASE <database name> SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';Tingkat instans
-- Aktifkan Common Table pada tingkat instans. ALTER ROLE ALL SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';
Nonaktifkan Common Table
Tingkat sesi
-- Nonaktifkan Common Table pada tingkat session. Jalankan ini bersamaan dengan kueri atau pernyataan DML Anda. SET hg_experimental_external_catalog_routing = 'odps:holo_native,dlf:hqe';Tingkat database
-- Nonaktifkan Common Table pada tingkat database. ALTER DATABASE <database name> SET hg_experimental_external_catalog_routing = 'odps:holo_native,dlf:hqe';Tingkat instans
-- Nonaktifkan Common Table pada tingkat instans. ALTER ROLE ALL SET hg_experimental_external_catalog_routing = 'odps:holo_native,dlf:hqe';
Periksa jalur akses saat ini
Jalankan pernyataan SQL berikut untuk memeriksa mekanisme akses MaxCompute saat ini.
odps:common_table,dlf:hqemenunjukkan bahwa Common Table digunakan.SHOW hg_experimental_external_catalog_routing;Untuk kueri historis, periksa bidang
query_extinfodalam log kueri lambat. Jika munculdriver:CommonTable, berarti Common Table digunakan untuk kueri tersebut.
Auto Split Size
Parameter Auto Split Size secara default diatur ke off. Anda dapat mengaktifkannya sesuai kebutuhan.
Aktifkan Auto Split Size
V4.0+
Tingkat sesi
-- Aktifkan Auto Split Size pada tingkat session SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'on';Tingkat database
-- Aktifkan Auto Split Size pada tingkat database ALTER DATABASE <database name> SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'on';Tingkat instans
-- Aktifkan Auto Split Size pada tingkat instans ALTER ROLE ALL SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'on';
Versi sebelum V4.0
Tingkat sesi
-- Aktifkan Auto Split Size pada tingkat session SET hg_experimental_enable_common_table_auto_split_size = 'on';Tingkat database
-- Aktifkan Auto Split Size pada tingkat database ALTER DATABASE <database name> SET hg_experimental_enable_common_table_auto_split_size = 'on';Tingkat instans
-- Aktifkan Auto Split Size pada tingkat instans ALTER ROLE ALL SET hg_experimental_enable_common_table_auto_split_size = 'on';
Nonaktifkan Auto Split Size
V4.0+
Tingkat sesi
-- Nonaktifkan Auto Split Size pada tingkat session SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'off';Tingkat database
-- Nonaktifkan Auto Split Size pada tingkat database ALTER DATABASE <database name> SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'off';Tingkat instans
-- Nonaktifkan Auto Split Size pada tingkat instans ALTER ROLE ALL SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'off';
Versi sebelum V4.0
Tingkat sesi
-- Nonaktifkan Auto Split Size pada tingkat session SET hg_experimental_enable_common_table_auto_split_size = 'off';Tingkat database
-- Nonaktifkan Auto Split Size pada tingkat database ALTER DATABASE <database name> SET hg_experimental_enable_common_table_auto_split_size = 'off';Tingkat instans
-- Nonaktifkan Auto Split Size pada tingkat instans ALTER ROLE ALL SET hg_experimental_enable_common_table_auto_split_size = 'off';