Hologres V3.0.38 dan versi yang lebih baru mendukung jalur yang ditingkatkan—disebut jalur Common Table—untuk mempercepat akses ke MaxCompute. Topik ini menjelaskan cara menggunakan jalur Common Table untuk mengakses MaxCompute.
Fitur
Jalur Common Table membaca data dari MaxCompute menggunakan reader native C++. Jalur ini menawarkan keunggulan berikut dibandingkan jalur SQE/HQE yang ada:
menunjukkan bahwa fitur tersebut didukung. menunjukkan bahwa fitur tersebut tidak didukung.
Item perbandingan | Jalur SQE/HQE | Jalur Common Table |
Kinerja | Kuat | Sangat tinggi. Kinerja meningkat 33% dibandingkan jalur SQE/HQE dan lebih dari 200% dibandingkan membaca data menggunakan Storage API open storage. |
Tabel penyamaran data dinamis | Aturan harus dikonfigurasi ulang. | Mewarisi aturan penyamaran data yang ditetapkan di MaxCompute. Data yang dikueri konsisten dengan hasil dari kueri MaxCompute. |
Evolusi Skema | Tidak mendukung pembacaan file langsung. Kinerja sedikit lebih rendah. | pembacaan file langsung berkinerja-tinggi. |
Tabel dengan enkripsi saat disimpan (encryption at rest) |
|
|
Tabel ACID 1.0 | ||
PK Delta Table | ||
Append Delta Table |
Izin
Untuk mengakses tabel eksternal atau foreign table MaxCompute melalui jalur Common Table, Anda harus memiliki izin yang tercantum dalam tabel berikut. Untuk memberikan pengguna izin mengakses proyek dan tabel MaxCompute, lihat Kelola izin pengguna menggunakan perintah.
Untuk menyelaraskan dengan izin kueri data di MaxCompute, verifikasi izin telah diubah pada Hologres V4.0 dan versi yang lebih baru.
Metode pembuatan foreign table MaxCompute
Operasi
Izin MaxCompute yang diperlukan (Hologres V3.0, V3.1, dan V3.2)
Izin MaxCompute yang diperlukan (V4.0 dan yang lebih baru)
Metode foreign table
Buat foreign table MaxCompute secara batch menggunakan IMPORT FOREIGN SCHEMA
Describe, List
Describe, List
Kueri data
Describe, Select
Select
Metode database eksternal
Lihat metadata tabel eksternal
Describe
Describe
Kueri 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.
Pembaruan fitur
Deskripsi fitur | Versi yang didukung |
Mendukung pembacaan tipe data JSON di MaxCompute | >=4.1.1 |
Mendukung pengkuerian MaxCompute Append Delta Tables | >= 3.0.40 >= 3.1.10 >=3.2.0 >=4.0.0 |
Mendukung penggunaan spillRead untuk mengkueri MaxCompute Delta Tables. Fitur ini mengatasi error yang terjadi ketika terlalu banyak file tidak di-spill. | >= 3.0.41 >= 3.1.10 >= 3.2.0 >= 4.0.0 |
Mendukung pembacaan tabel MaxCompute yang memiliki kolom dengan nilai default | >=3.0.40 >= 3.1.10 >=3.2.0 >=4.0.0 |
Mendukung Auto Split Size. Fitur ini secara otomatis menentukan ukuran split berdasarkan tipe instans. Untuk informasi selengkapnya, lihat bagian berikut. | >=3.1.33 >=3.2.0 >=4.0.0 |
Mendukung pengkuerian data tipe TIMESTAMP_NTZ | >= 3.0.41 >= 3.1.10 >=3.2.0 >=4.0.0 |
Mendukung penurunan predikat untuk filter kesetaraan pada atribut seperti kunci pengelompokan dan kunci primer di Delta Tables. Hal ini meningkatkan efektivitas filter dan kinerja kueri. | >= 4.0.6 |
Cara Mengaktifkan
Anda dapat mengaktifkan jalur ini sesuai skenario Anda.
Tingkat sesi
-- Aktifkan jalur pada tingkat session. Anda harus mengeksekusi pernyataan ini bersamaan dengan pernyataan kueri atau DML. SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';Tingkat database
-- Aktifkan jalur pada tingkat database. ALTER DATABASE <database name> SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';Tingkat instans
-- Aktifkan jalur pada tingkat instans. ALTER ROLE ALL SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';
Metode Penonaktifan
Tingkat sesi
-- Nonaktifkan jalur pada tingkat session. Anda harus mengeksekusi pernyataan ini bersamaan dengan pernyataan kueri atau DML. SET hg_experimental_external_catalog_routing = 'odps:holo_native,dlf:hqe';Tingkat database
-- Nonaktifkan pada tingkat database. ALTER DATABASE <database name> SET hg_experimental_external_catalog_routing = 'odps:holo_native,dlf:hqe';Tingkat instans
-- Nonaktifkan jalur pada tingkat instans. ALTER ROLE ALL SET hg_experimental_external_catalog_routing = 'odps:holo_native,dlf:hqe';
Periksa jalur akses saat ini
Anda dapat menjalankan pernyataan SQL berikut untuk memeriksa jalur akses saat ini. Jika
odps:common_table,dlf:hqedikembalikan, berarti jalur Common Table digunakan.SHOW hg_experimental_external_catalog_routing;Untuk kueri historis, Anda dapat memeriksa field query_extinfo di log kueri lambat. Jika muncul
driver:CommonTable, berarti jalur Common Table digunakan untuk kueri tersebut.
Auto Split Size
Fitur Auto Split Size dinonaktifkan secara default, dengan parameternya diatur ke off. Anda dapat mengaktifkan atau menonaktifkan fitur ini sesuai kebutuhan. Bagian berikut menjelaskan cara mengonfigurasi fitur ini.
Aktifkan Auto Split Size
V4.0 dan versi yang lebih baru
Aktifkan pada tingkat session
-- Aktifkan Auto Split Size pada tingkat session. SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'on';Aktifkan pada tingkat database
-- Aktifkan Auto Split Size pada tingkat database. ALTER DATABASE <database name> SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'on';Aktifkan pada 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
Aktifkan pada tingkat session
-- Aktifkan Auto Split Size pada tingkat session. SET hg_experimental_enable_common_table_auto_split_size = 'on';Aktifkan pada tingkat database
-- Aktifkan Auto Split Size pada tingkat database. ALTER DATABASE <database name> SET hg_experimental_enable_common_table_auto_split_size = 'on';Aktifkan pada 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 dan versi yang lebih baru
Nonaktifkan pada tingkat session
-- Nonaktifkan Auto Split Size pada tingkat session. SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'off';Nonaktifkan pada tingkat database
-- Nonaktifkan Auto Split Size pada tingkat database. ALTER DATABASE <database name> SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'off';Nonaktifkan pada 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
Nonaktifkan pada tingkat session
-- Nonaktifkan Auto Split Size pada tingkat session. SET hg_experimental_enable_common_table_auto_split_size = 'off';Nonaktifkan pada tingkat database
-- Nonaktifkan Auto Split Size pada tingkat database. ALTER DATABASE <database name> SET hg_experimental_enable_common_table_auto_split_size = 'off';Nonaktifkan pada tingkat instans
-- Nonaktifkan Auto Split Size pada tingkat instans. ALTER ROLE ALL SET hg_experimental_enable_common_table_auto_split_size = 'off';