Tüm Ürünler
Search
Belge Merkezi

Hologres:Accelerate access to MaxCompute via Common Table

Son Güncelleme:Oct 06, 2026

Hologres V3.0.38 sürümünden itibaren, MaxCompute erişimi için Common Table adlı yeni bir yol sunulmaktadır. Bu konu, Common Table kullanarak MaxCompute verilerine nasıl erişileceğini açıklar.

Giriş

Common Table, Hologres'in MaxCompute'den veri okurken C++ tabanlı yerel bir okuyucu kullanmasını sağlar. Bu yöntem, mevcut SQE/HQE mekanizmasına kıyasla aşağıdaki avantajları sunar:

Not

已开通 ifadesi desteklenen özellikleri, 未开通 ifadesi ise desteklenmeyen özellikleri gösterir.

Karşılaştırma öğesi

SQE/HQE

Common Table

Performans

Yüksek

Çok yüksek. SQE/HQE mekanizmasına göre %33, açık depolama Storage API üzerinden veri okumaya göre ise %200'den fazla performans artışı sağlar.

Dinamik veri maskeleme

Tablolar için ayrı yapılandırma gerektirir.

MaxCompute'deki veri maskeleme kurallarını devralır; böylece sorgu sonuçları MaxCompute ile tutarlı olur.

Şema evrimi

Doğrudan okumayı desteklemez, bu da performansı biraz düşürür.

Yüksek performans için doğrudan okumayı destekler.

Bekleyen durum şifrelemesi

  • KMS anahtarı ile şifrelenmiş tabloları destekler.

  • Varsayılan anahtar ile şifrelenmiş tabloları desteklemez.

  • KMS anahtarı ile şifrelenmiş tabloları destekler.

  • Varsayılan anahtar ile şifrelenmiş tabloları destekler.

ACID 1.0 tabloları

未开通

已开通

PK Delta Table

未开通

已开通

Append Delta Table

未开通

已开通

İzinler

  • Common Table aracılığıyla MaxCompute foreign/external tablolarına erişmek için tabloda listelenen ilgili izinlere sahip olmanız gerekir. Bu izinlerin nasıl verileceği hakkında daha fazla bilgi için bkz. Komutlar kullanarak kullanıcı izinlerini yönetme.

    Hologres V4.0 ve sonraki sürümlerde izin doğrulama değişiklikleri getirildiğini unutmayın.

    Tablo türü

    İşlem

    Gerekli MaxCompute izinleri (Hologres V3.0, V3.1 ve V3.2)

    Gerekli MaxCompute izinleri (Hologres V4.0+)

    Foreign table

    IMPORT FOREIGN SCHEMA

    Describe, List

    Describe, List

    Veri sorgulama

    Describe, Select

    Select

    External table

    Meta verileri görüntüleme

    Describe

    Describe

    Veri sorgulama

    Describe, Select

    Select

  • Hologres şu anda yalnızca bir MaxCompute Delta Table'ın en son anlık görüntüsünü okumayı destekler.

  • Hologres'ten MaxCompute Delta Table'a veri yazma işlemi desteklenmemektedir.

  • Satır düzeyinde izinler ayarlanmış MaxCompute tablolarının sorgulanması desteklenmez.

Özellikler

Özellik

Desteklenen Hologres sürümleri

MaxCompute sorguları için sütun budama

>=4.1.6

MaxCompute Append Delta tablolarını sorgulama

>= 3.0.40

>= 3.1.10

>=3.2.0

>=4.0.0

Çok sayıda spill edilmemiş dosyadan kaynaklanan hataları çözmek için MaxCompute Delta Tables sorgularında spillRead kullanımı

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

Varsayılan değerler içeren MaxCompute tablolarını okuma

>=3.0.40

>= 3.1.10

>=3.2.0

>=4.0.0

Örnek teknik özelliklerine göre bölme boyutunu otomatik olarak belirleyen Auto Split Size

>=3.1.33

>=3.2.0

>=4.0.0

TIMESTAMP_NTZ verilerini sorgulama

>= 3.0.41

>= 3.1.10

>=3.2.0

>=4.0.0

Delta Tables'daki kümeleme anahtarları ve birincil anahtarlar gibi niteliklerde eşitlik filtreleri için yüklem itme özelliği, filtre verimliliğini ve sorgu performansını artırır.

>= 4.0.6

Common Table'ı Etkinleştirme

Senaryonuza uygun bir yöntemi seçin.

  • Oturum düzeyi

    -- Enable Common Table at the session level. Execute this along with a query or DML statement.
    SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';
  • Veritabanı düzeyi

    -- Enable Common Table at the database level.
    ALTER DATABASE <database name> SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';
  • Örnek düzeyi

    -- Enable Common Table at the instance level.
    ALTER ROLE ALL SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';

Common Table'ı Devre Dışı Bırakma

  • Oturum düzeyi

    -- Disable Common Table at the session level. Execute this with your query or DML statement.
    SET hg_experimental_external_catalog_routing = 'odps:holo_native,dlf:hqe';
  • Veritabanı düzeyi

    -- Disable Common Table at the database level.
    ALTER DATABASE <database name> SET hg_experimental_external_catalog_routing = 'odps:holo_native,dlf:hqe';
  • Örnek düzeyi

    -- Disable Common Table at the instance level.
    ALTER ROLE ALL SET hg_experimental_external_catalog_routing = 'odps:holo_native,dlf:hqe';

Mevcut erişim yolunu kontrol etme

  • MaxCompute'e erişmek için kullanılan mevcut mekanizmayı kontrol etmek üzere aşağıdaki SQL ifadesini çalıştırın. odps:common_table,dlf:hqe değeri, Common Table'ın kullanıldığını gösterir.

    SHOW hg_experimental_external_catalog_routing;
  • Geçmiş sorgular için yavaş sorgu günlüğündeki query_extinfo alanını kontrol edin. driver:CommonTable ifadesi görünüyorsa, bu sorgular için Common Table kullanılmıştır.

Auto Split Size

Auto Split Size parametresi varsayılan olarak off değerine ayarlıdır. İhtiyaç duyduğunuzda etkinleştirebilirsiniz.

Auto Split Size'ı Etkinleştirme

V4.0+

  • Oturum düzeyi

    -- Enable Auto Split Size at the session level
    SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'on';
  • Veritabanı düzeyi

    -- Enable Auto Split Size at the database level
    ALTER DATABASE <database name> SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'on';
  • Örnek düzeyi

    -- Enable Auto Split Size at the instance level
    ALTER ROLE ALL SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'on';

V4.0 öncesi sürümler

  • Oturum düzeyi

    -- Enable Auto Split Size at the session level
    SET hg_experimental_enable_common_table_auto_split_size = 'on';
  • Veritabanı düzeyi

    -- Enable Auto Split Size at the database level
    ALTER DATABASE <database name> SET hg_experimental_enable_common_table_auto_split_size = 'on';
  • Örnek düzeyi

    -- Enable Auto Split Size at the instance level
    ALTER ROLE ALL SET hg_experimental_enable_common_table_auto_split_size = 'on';

Auto Split Size'ı Devre Dışı Bırakma

V4.0+

  • Oturum düzeyi

    -- Disable Auto Split Size at the session level
    SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'off';
  • Veritabanı düzeyi

    -- Disable Auto Split Size at the database level
    ALTER DATABASE <database name> SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'off';
  • Örnek düzeyi

    -- Disable Auto Split Size at the instance level
    ALTER ROLE ALL SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'off';

V4.0 öncesi sürümler

  • Oturum düzeyi

    -- Disable Auto Split Size at the session level
    SET hg_experimental_enable_common_table_auto_split_size = 'off';
  • Veritabanı düzeyi

    -- Disable Auto Split Size at the database level
    ALTER DATABASE <database name> SET hg_experimental_enable_common_table_auto_split_size = 'off';
  • Örnek düzeyi

    -- Disable Auto Split Size at the instance level
    ALTER ROLE ALL SET hg_experimental_enable_common_table_auto_split_size = 'off';

Sütun budama

Hologres V4.1.6 ve sonraki sürümler, veri okuma işlemlerini hızlandırmak için filtreleri veri okuyuculara iten sütun budama özelliğini destekler. Bu özellik, Hologres V4.1'de varsayılan olarak devre dışıdır.

-- Enable column pruning
SELECT hg_admin_command('set_global_flag','common_table_enable_orc_selective_column_reader=true');
-- Disable column pruning
SELECT hg_admin_command('set_global_flag','common_table_enable_orc_selective_column_reader=false');