全部产品
Search
文档中心

Hologres:Akses MaxCompute melalui jalur Common Table

更新时间:Jan 16, 2026

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:

Catatan

Supported menunjukkan bahwa fitur tersebut didukung. Unsupported 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

Unsupported Tidak mendukung pembacaan file langsung. Kinerja sedikit lebih rendah.

Supports pembacaan file langsung berkinerja-tinggi.

Tabel dengan enkripsi saat disimpan (encryption at rest)

  • Supports enkripsi tabel dengan kunci KMS.

  • Unsupported Tidak mendukung tabel yang dienkripsi dengan kunci default.

  • Supported Mendukung tabel yang dienkripsi dengan kunci KMS.

  • Supports tabel yang dienkripsi dengan kunci default.

    Catatan

    Memerlukan Hologres V3.2 atau yang lebih baru.

Tabel ACID 1.0

Unsupported

Supported

PK Delta Table

Unsupported

Supported

Append Delta Table

Unsupported

Supported

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.

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 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:hqe dikembalikan, 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';