全部产品
Search
文档中心

Hologres:Mempercepat Akses ke MaxCompute melalui Common Table

更新时间:Dec 11, 2025

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:

Catatan

已开通 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

  • Mendukung tabel yang dienkripsi dengan kunci KMS.

  • Tidak mendukung tabel yang dienkripsi dengan kunci default.

  • Mendukung tabel yang dienkripsi dengan kunci KMS.

  • Mendukung tabel yang dienkripsi dengan kunci default.

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 spillRead untuk kueri pada MaxCompute Delta Tables guna mengatasi error akibat terlalu banyak file yang belum di-spill

MaxCompute csdk open reader failed: storage/formats/orcfile/change_log_reader_util.cpp(255): InvalidArgument: ODPS-0010000:InvalidArgument:Need spill read but TmpDir or TmpCapability no specified.

>= 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:hqe menunjukkan bahwa Common Table digunakan.

    SHOW hg_experimental_external_catalog_routing;
  • Untuk kueri historis, periksa bidang query_extinfo dalam log kueri lambat. Jika muncul driver: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';