All Products
Search
Document Center

Hologres:Mengakses data MaxCompute menggunakan Common Table

Last Updated:Apr 22, 2026

Mulai versi V3.0.38, Hologres memperkenalkan jalur akses yang ditingkatkan dan dipercepat untuk MaxCompute, yang dikenal sebagai Common Table. Topik ini menjelaskan cara menggunakan Common Table untuk mengakses data MaxCompute.

Pendahuluan

Common Table menggunakan reader native C++ untuk membaca data dari MaxCompute. Dibandingkan dengan jalur akses SQE/HQE, Common Table menawarkan keunggulan berikut:

Catatan

Supported menunjukkan "Didukung", dan Not supported menunjukkan "Tidak didukung".

Feature

SQE/HQE

Common Table

Performance

High

Very high. Performance 33% lebih tinggi dibandingkan dengan SQE/HQE dan lebih dari 200% lebih tinggi dibandingkan dengan open storage API.

Dynamic data masking

Memerlukan konfigurasi terpisah untuk aturan penyamaran.

Mewarisi aturan penyamaran data dari MaxCompute, sehingga memastikan hasil kueri konsisten dengan MaxCompute.

Schema Evolution

Not supported. Pembacaan file langsung tidak didukung, yang mengakibatkan performa sedikit lebih rendah.

Supported untuk pembacaan file langsung, memberikan performa tinggi.

Encryption at rest

  • Supported untuk tabel yang dienkripsi dengan kunci KMS.

  • Not supported untuk tabel yang dienkripsi dengan kunci default.

  • Supported untuk tabel yang dienkripsi dengan kunci KMS.

  • Supported untuk tabel yang dienkripsi dengan kunci default.

    Catatan

    Memerlukan Hologres V3.2 atau versi yang lebih baru.

ACID 1.0 tables

Not supported

Supported

PK Delta Table

Not supported

Supported

Append Delta Table

Not supported

Supported

Izin

  • Mengakses tabel eksternal MaxCompute menggunakan Common Table memerlukan izin yang sesuai. Untuk memberikan izin kepada pengguna agar dapat mengakses proyek MaxCompute beserta tabel-tabelnya, lihat Mengelola izin pengguna menggunakan perintah.

    Untuk menyelaraskan lebih baik dengan izin kueri di MaxCompute, Hologres V4.0 dan versi yang lebih baru menerapkan proses verifikasi izin yang diperbarui.

    Metode pembuatan

    Tindakan

    Izin (Hologres V3.0, V3.1, dan V3.2)

    Izin (Hologres V4.0 dan versi yang lebih baru)

    Foreign Table

    Buat tabel eksternal MaxCompute secara massal menggunakan IMPORT FOREIGN SCHEMA

    Describe, List

    Describe, List

    Query data

    Describe, Select

    Select

    External Database

    Lihat metadata tabel eksternal

    Describe

    Describe

    Query data

    Describe, Select

    Select

  • Hologres hanya mendukung pembacaan snapshot terbaru dari MaxCompute Delta Table.

  • Menulis data dari Hologres ke MaxCompute Delta Table tidak didukung.

  • Terlepas dari jalur akses yang digunakan, Anda tidak dapat melakukan kueri terhadap tabel MaxCompute yang memiliki keamanan tingkat baris (row-level security) yang diaktifkan.

Pembaruan fitur

Deskripsi

Versi yang didukung

Mendukung predicate pushdown untuk kueri MaxCompute ke node pembaca data.

>=4.1.6

Mendukung pembacaan tipe data JSON dari MaxCompute.

>=4.1.1

Mendukung kueri terhadap tabel Append Delta MaxCompute.

>= 3.0.40

>= 3.1.10

>=3.2.0

>=4.0.0

Mendukung penggunaan spillRead untuk kueri pada tabel Delta MaxCompute guna mengatasi error yang disebabkan oleh jumlah file unspilled yang berlebihan.

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

Mendukung pembacaan tabel MaxCompute yang berisi nilai default.

>=3.0.40

>= 3.1.10

>=3.2.0

>=4.0.0

Mendukung Auto Split Size, yang secara otomatis menentukan ukuran split berdasarkan spesifikasi instans.

>=3.1.33

>=3.2.0

>=4.0.0

Mendukung kueri data bertipe TIMESTAMP_NTZ.

>= 3.0.41

>= 3.1.10

>=3.2.0

>=4.0.0

Mendukung predicate pushdown untuk filter equality pada atribut seperti clustering keys dan primary keys dalam tabel Delta. Fitur ini meningkatkan efisiensi filter dan performa kueri.

>= 4.0.6

Aktifkan Common Table

Anda dapat mengaktifkan Common Table pada tingkat session, database, atau instans sesuai dengan kasus penggunaan Anda.

  • Tingkat session

    -- Aktifkan Common Table pada tingkat session. Anda harus menjalankan perintah ini bersamaan dengan kueri atau pernyataan DML Anda.
    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 session

    -- Nonaktifkan Common Table pada tingkat session. Anda harus menjalankan perintah 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';

Verifikasi jalur akses saat ini

  • Anda dapat menggunakan SQL berikut untuk memeriksa. Jika output-nya adalah odps:common_table,dlf:hqe, hal ini menunjukkan bahwa Anda menggunakan Common Table.

    SHOW hg_experimental_external_catalog_routing;
  • Untuk kueri historis, Anda dapat memeriksa field query_extinfo di Slow Query Log. Jika terdapat driver:CommonTable, hal ini menunjukkan bahwa tautan Common Table digunakan.

Auto Split Size

Parameter Auto Split Size secara default diatur ke off, yang berarti fitur ini dinonaktifkan. Anda dapat mengaktifkan atau menonaktifkannya sesuai kebutuhan berdasarkan skenario aktual Anda. Konfigurasi parameter ini dilakukan sebagai berikut:

Aktifkan Auto Split Size

V4.0 dan versi yang lebih baru

  • Tingkat session

    -- 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 session

    -- 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 dan versi yang lebih baru

  • Tingkat session

    -- 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 session

    -- 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';

Aktifkan filter pushdown ke node pembaca data

Hologres V4.1.6 memperkenalkan dukungan untuk filter pushdown ke node pembaca data. Fitur ini secara signifikan meningkatkan performa dalam skenario dengan laju filter tinggi. Secara default, fitur ini dinonaktifkan pada Hologres V4.1. Jalankan pernyataan SQL berikut untuk mengaktifkannya secara global:

SELECT hg_admin_command('set_global_flag','common_table_enable_orc_selective_column_reader=true');

Nonaktifkan filter pushdown ke node pembaca data

Hologres V4.1.6 dan versi yang lebih baru mendukung filter pushdown ke node pembaca data. Fitur ini secara signifikan meningkatkan performa dalam skenario dengan laju filter tinggi. Jalankan pernyataan SQL berikut untuk menonaktifkan fitur ini secara global. Secara default, fitur ini dinonaktifkan pada Hologres V4.1.

SELECT hg_admin_command('set_global_flag','common_table_enable_orc_selective_column_reader=false');