Tous les produits
Search
Centre de documentation

Hologres:Interroger des données MaxCompute chiffrées

Dernière mise à jour :Aug 11, 2026

Cette rubrique explique comment utiliser une table étrangère pour interroger des données MaxCompute chiffrées.

Choisir une méthode

Hologres prend en charge deux méthodes pour interroger des données MaxCompute chiffrées. Choisissez la méthode adaptée à la version de votre instance :

Version Hologres Méthode Chiffrement pris en charge Configuration requise
V3.2 et ultérieures Common Table (recommandé) Clé par défaut et clé KMS Simplifiée — Hologres gère le déchiffrement de manière transparente
Antérieure à V3.2 Table étrangère héritée Clé KMS uniquement Rôle RAM + changement de moteur de requête

Méthode Common Table (V3.2 et ultérieures)

À partir de la version V3.2, Hologres permet d'interroger des données MaxCompute chiffrées avec une clé par défaut ou une clé Key Management Service (KMS) via les tables Common Tables, grâce à une configuration simplifiée.

Pour utiliser cette méthode, activez le routage Common Table au niveau approprié à votre cas d'utilisation :

  • Niveau session — S'applique uniquement à la session actuelle. Exécutez cette instruction conjointement avec votre requête ou votre instruction DML.

    SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';
  • Niveau base de données — S'applique à toutes les connexions à la base de données spécifiée.

    ALTER DATABASE <database name> SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';
  • Niveau instance — S'applique à toutes les bases de données de l'instance.

    ALTER ROLE ALL SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';

Pour plus d'informations, consultez Common Table.

Méthode héritée (antérieure à V3.2)

Cette méthode s'applique aux instances Hologres exécutant des versions antérieures à V3.2. Elle prend uniquement en charge les données MaxCompute chiffrées avec KMS ; les données chiffrées avec la clé DataWorks par défaut ne sont pas prises en charge.

Limitations

  • Version minimale : Hologres V1.1. Si votre instance exécute une version antérieure, mettez-la à niveau. Consultez Mettre à niveau une instance.

  • Configuration backend : Requise pour les instances exécutant des versions antérieures à V1.3.31. Non requise pour les versions V1.3.31 et ultérieures. Mettez à niveau vers V1.3.31 ou une version ultérieure pour ignorer cette étape.

  • Chiffrement pris en charge : Données chiffrées avec KMS utilisant du matériel de clé généré par KMS ou importé. La clé par défaut DataWorks n'est pas prise en charge.

  • Mise en cache des clés KMS : Par défaut, Hologres met en cache les informations de clé KMS pendant 24 heures lors du déchiffrement des données.

  • Moteur de requête : Hologres Query Engine (HQE) ne peut pas accéder aux données MaxCompute chiffrées. Vous devez basculer vers Seahawks Query Engine (SQE) au niveau de la base de données.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Une instance Hologres exécutant la version V1.1 ou ultérieure

  • Des autorisations RAM suffisantes pour créer des politiques et des rôles

Configurer l'accès aux données chiffrées

La méthode héritée nécessite quatre étapes : créer une politique RAM, créer un rôle RAM, changer le moteur de requête, puis interroger les données.

Étape 1 : Créer une politique personnalisée

  1. Connectez-vous à la console RAM. Dans le volet de navigation de gauche, sélectionnez Permissions > Policies. Sur la page Policies, cliquez sur Create Policy.

    权限策略

  2. Sur la page Create Policy, cliquez sur JSON. Dans l'éditeur de code, saisissez la politique suivante, puis définissez Name sur AliyunHologresEncryptionDefaultRolePolicy.

    创建权限策略

    Cette politique accorde à Hologres les autorisations KMS nécessaires pour obtenir et déchiffrer les clés de données lors de l'interrogation de données MaxCompute chiffrées.

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "kms:Encrypt",
                    "kms:Decrypt",
                    "kms:GenerateDataKey",
                    "kms:DescribeKey"
                ],
                "Resource": "acs:kms:*:*:*/*",
                "Effect": "Allow"
            }
        ]
    }
  3. Cliquez sur OK. La politique personnalisée est créée.

Étape 2 : Créer un rôle RAM et accorder des autorisations

Hologres a besoin d'un rôle RAM pour appeler les API KMS en votre nom. Créez le rôle et attachez la politique créée à l'étape 1.

  1. Connectez-vous à la console RAM. Dans le volet de navigation de gauche, sélectionnez Identities > Roles.

  2. Sur la page Roles, cliquez sur Create Role. Définissez Principal Type sur Cloud Service et Principal Name sur Hologres.

  3. Cliquez sur OK. Dans la boîte de dialogue, saisissez AliyunHologresEncryptionDefaultRole dans le champ Role Name, puis cliquez sur OK.

    创建角色

  4. Sur la page des détails du rôle, cliquez sur Grant Permission.

  5. Dans le panneau Grant Permission, définissez Resource Scope sur Account. Pour Policy, sélectionnez AliyunHologresEncryptionDefaultRolePolicy.

    添加权限

  6. Cliquez sur OK. Sur la page des détails du rôle, cliquez sur l'onglet Trust Policy pour vérifier la politique de confiance.

Étape 3 : Basculer le moteur de requête vers SQE

HQE ne peut pas accéder aux données MaxCompute chiffrées. Exécutez l'instruction suivante pour basculer le moteur de requête de table étrangère de la base de données vers SQE :

ALTER DATABASE <dbname> SET hg_experimental_enable_access_odps_orc_via_holo = false;

La modification prend effet après la création d'une nouvelle connexion. Pour vérifier la configuration, exécutez :

SHOW hg_experimental_enable_access_odps_orc_via_holo;

Si la sortie est false, la configuration est active.

Étape 4 : Interroger les données chiffrées

Après avoir effectué les étapes précédentes, interrogez les données MaxCompute chiffrées de la même manière que les données MaxCompute classiques. Consultez Accélérer les requêtes sur les données MaxCompute à l'aide de tables étrangères.

Dépannage

Erreur lors de l'interrogation des données :

ERROR: status { code: SERVER_INTERNAL_ERROR message: "hos_exception: IO error: Failed to execute pangu open normal file pangu://xxx:xxx/product/odps/xxx/data/xxxx/xxx/xxx, errorcode: 9, errorcode_description: invalid argument, err_msg: PanguParameterInvalidException

Cette erreur se produit lorsque HQE tente d'accéder aux données MaxCompute chiffrées. Basculez le moteur de requête de la base de données vers SQE :

ALTER DATABASE <DB_Name> SET hg_experimental_enable_access_odps_orc_via_holo = false;

Reconnectez-vous pour appliquer la modification, puis vérifiez qu'elle a bien pris effet :

SHOW hg_experimental_enable_access_odps_orc_via_holo;

Si la sortie est false, réexécutez votre requête.