Tous les produits
Search
Centre de documentation

Hologres:Accelerate access to MaxCompute via Common Table

Dernière mise à jour :Aug 11, 2026

À partir de la version V3.0.38, Hologres introduit un nouveau mécanisme d'accès à MaxCompute, appelé Common Table. Cette rubrique explique comment utiliser Common Table pour accéder aux données MaxCompute.

Présentation

Avec Common Table, Hologres lit les données de MaxCompute à l'aide d'un lecteur natif en C++. Ce mécanisme présente les avantages suivants par rapport au mécanisme SQE/HQE existant :

Remarque

已开通 indique que la fonctionnalité est prise en charge et 未开通 indique qu'elle n'est pas prise en charge.

Élément de comparaison

SQE/HQE

Common Table

Performances

Élevées

Très élevées. Améliore les performances de 33 % par rapport au mécanisme SQE/HQE et de plus de 200 % par rapport à la lecture des données via l'API Storage open storage.

Masquage dynamique des données

Nécessite une configuration distincte sur les tables.

Hérite des règles de masquage des données de MaxCompute, garantissant ainsi la cohérence des résultats de requête avec ceux obtenus depuis MaxCompute.

Évolution du schéma

Ne prend pas en charge les lectures directes, ce qui entraîne des performances légèrement inférieures.

Prend en charge les lectures directes pour des performances optimales.

Chiffrement au repos

  • Prend en charge les tables chiffrées avec une clé KMS.

  • Ne prend pas en charge les tables chiffrées avec la clé par défaut.

  • Prend en charge les tables chiffrées avec une clé KMS.

  • Prend en charge les tables chiffrées avec la clé par défaut.

Tables ACID 1.0

未开通

已开通

Table Delta PK

未开通

已开通

Table Delta Append

未开通

已开通

Autorisations

  • Pour accéder aux tables externes/étrangères MaxCompute via Common Table, vous devez disposer des autorisations pertinentes répertoriées dans le tableau. Pour plus d'informations sur l'attribution de ces autorisations, consultez la section Gérer les autorisations utilisateur à l'aide de commandes.

    Notez que Hologres V4.0+ introduit des modifications concernant la vérification des autorisations.

    Type de table

    Opération

    Autorisations MaxCompute requises (Hologres V3.0, V3.1 et V3.2)

    Autorisations MaxCompute requises (Hologres V4.0+)

    Table étrangère

    IMPORT FOREIGN SCHEMA

    Describe, List

    Describe, List

    Interrogation des données

    Describe, Select

    Select

    Table externe

    Consultation des métadonnées

    Describe

    Describe

    Interrogation des données

    Describe, Select

    Select

  • Hologres ne prend actuellement en charge que la lecture du dernier snapshot d'une table Delta MaxCompute.

  • L'écriture de données depuis Hologres vers une table Delta MaxCompute n'est pas prise en charge.

  • L'interrogation de tables MaxCompute dont les autorisations au niveau des lignes sont définies n'est pas prise en charge.

Fonctionnalités

Fonctionnalité

Versions Hologres prises en charge

Élagage des colonnes pour les requêtes MaxCompute

>=4.1.6

Interrogation des tables MaxCompute Append Delta

>= 3.0.40

>= 3.1.10

>=3.2.0

>=4.0.0

Utilisation de spillRead pour les requêtes sur les tables Delta MaxCompute afin de résoudre les erreurs causées par un trop grand nombre de fichiers non déversés

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

Lecture de tables MaxCompute contenant des valeurs par défaut

>=3.0.40

>= 3.1.10

>=3.2.0

>=4.0.0

Auto Split Size, qui détermine automatiquement la taille de fractionnement en fonction des spécifications de l'instance

>=3.1.33

>=3.2.0

>=4.0.0

Interrogation des données TIMESTAMP_NTZ

>= 3.0.41

>= 3.1.10

>=3.2.0

>=4.0.0

Le pushdown de prédicat pour les filtres d'égalité sur les attributs tels que les clés de clustering et les clés primaires dans les tables Delta améliore l'efficacité du filtrage et les performances des requêtes.

>= 4.0.6

Activer Common Table

Choisissez la méthode adaptée à votre scénario.

  • Niveau session

    -- 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';
  • Niveau base de données

    -- Enable Common Table at the database level.
    ALTER DATABASE <database name> SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';
  • Niveau instance

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

Désactiver Common Table

  • Niveau session

    -- 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';
  • Niveau base de données

    -- Disable Common Table at the database level.
    ALTER DATABASE <database name> SET hg_experimental_external_catalog_routing = 'odps:holo_native,dlf:hqe';
  • Niveau instance

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

Vérifier le chemin d'accès actuel

  • Exécutez l'instruction SQL suivante pour vérifier le mécanisme actuel d'accès à MaxCompute. La valeur odps:common_table,dlf:hqe indique que Common Table est utilisé.

    SHOW hg_experimental_external_catalog_routing;
  • Pour les requêtes historiques, vérifiez le champ query_extinfo dans le journal des requêtes lentes. Si la valeur driver:CommonTable apparaît, Common Table a été utilisé pour ces requêtes.

Auto Split Size

Le paramètre Auto Split Size est défini sur off par défaut. Vous pouvez l'activer si nécessaire.

Activer Auto Split Size

V4.0+

  • Niveau session

    -- Enable Auto Split Size at the session level
    SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'on';
  • Niveau base de données

    -- Enable Auto Split Size at the database level
    ALTER DATABASE <database name> SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'on';
  • Niveau instance

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

Versions antérieures à la V4.0

  • Niveau session

    -- Enable Auto Split Size at the session level
    SET hg_experimental_enable_common_table_auto_split_size = 'on';
  • Niveau base de données

    -- Enable Auto Split Size at the database level
    ALTER DATABASE <database name> SET hg_experimental_enable_common_table_auto_split_size = 'on';
  • Niveau instance

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

Désactiver Auto Split Size

V4.0+

  • Niveau session

    -- Disable Auto Split Size at the session level
    SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'off';
  • Niveau base de données

    -- Disable Auto Split Size at the database level
    ALTER DATABASE <database name> SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'off';
  • Niveau instance

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

Versions antérieures à la V4.0

  • Niveau session

    -- Disable Auto Split Size at the session level
    SET hg_experimental_enable_common_table_auto_split_size = 'off';
  • Niveau base de données

    -- Disable Auto Split Size at the database level
    ALTER DATABASE <database name> SET hg_experimental_enable_common_table_auto_split_size = 'off';
  • Niveau instance

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

Élagage des colonnes

Hologres V4.1.6 et versions ultérieures prennent en charge l'élagage des colonnes, qui permet de pousser les filtres vers les lecteurs de données pour accélérer leur lecture. Cette fonctionnalité est désactivée par défaut dans Hologres V4.1.

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