Todos os produtos
Search
Central de documentação

Hologres:Consultar dados criptografados do MaxCompute

Última atualização: Jun 28, 2026

Este tópico descreve como usar uma tabela externa para consultar dados criptografados do MaxCompute.

Escolha um método

O Hologres oferece dois métodos para consultar dados criptografados do MaxCompute. Escolha o método adequado conforme a versão da sua instância:

Versão do Hologres

Método

Criptografia compatível

Configuração necessária

V3.2 e posteriores

Common Table (recomendado)

Chave padrão e chave KMS

Simplificada — o Hologres gerencia a descriptografia de forma transparente

Anteriores à V3.2

Tabela externa legada

Apenas chave KMS

Função RAM + alteração do mecanismo de consulta

Método Common Table (V3.2 e posteriores)

A partir da V3.2, o Hologres permite consultar dados do MaxCompute criptografados com a chave padrão ou com uma chave do Key Management Service (KMS) por meio de Common Tables, com configuração simplificada.

Para usar esse método, ative o roteamento de Common Table no escopo apropriado ao seu caso de uso:

  • Nível de sessão — Vigente apenas na sessão atual. Execute esta instrução junto com a consulta ou instrução DML.

    SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';
  • Nível de banco de dados — Vigente em todas as conexões ao banco de dados especificado.

    ALTER DATABASE <database name> SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';
  • Nível de instância — Vigente em todos os bancos de dados da instância.

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

Para mais informações, consulte Common Table.

Método legado (anterior à V3.2)

Esse método aplica-se a instâncias do Hologres com versões anteriores à V3.2. Há suporte apenas para dados do MaxCompute criptografados com KMS — não há suporte para dados criptografados com a chave padrão do DataWorks.

Limitações

  • Versão mínima: Hologres V1.1. Se a instância executar uma versão anterior, atualize-a primeiro. Consulte Atualizar uma instância.

  • Configuração de backend: Necessária para instâncias com versões anteriores à V1.3.31. Dispensável na V1.3.31 e posteriores. Atualize para a V1.3.31 ou superior para ignorar esta etapa.

  • Criptografia compatível: Dados criptografados com KMS usando materiais de chave gerados pelo KMS ou importados. Não há suporte para a chave padrão do DataWorks.

  • Cache de chave KMS: Por padrão, o Hologres armazena em cache as informações da chave KMS por 24 horas durante a descriptografia dos dados.

  • Mecanismo de consulta: O Hologres Query Engine (HQE) não acessa dados criptografados do MaxCompute. Alterne para o Seahawks Query Engine (SQE) no nível do banco de dados.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Uma instância do Hologres com a versão V1.1 ou posterior

  • Permissões RAM suficientes para criar políticas e funções

Configure acesso a dados criptografados

O método legado requer quatro etapas: crie uma política RAM, crie uma função RAM, alternar o mecanismo de consulta e consultar os dados.

Etapa 1: Crie uma política personalizada

  1. Faça logon no console RAM. No painel de navegação à esquerda, escolha Permissions > Policies. Na página Policies, clique em Create Policy.

    权限策略

  2. Na página Create Policy, clique em JSON. No editor de código, insira a seguinte política e defina Name como AliyunHologresEncryptionDefaultRolePolicy.

    创建权限策略

    Essa política concede ao Hologres as permissões KMS necessárias para obter e descriptografar chaves de dados ao consultar dados criptografados do MaxCompute.

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "kms:Encrypt",
                    "kms:Decrypt",
                    "kms:GenerateDataKey",
                    "kms:DescribeKey"
                ],
                "Resource": "acs:kms:*:*:*/*",
                "Effect": "Allow"
            }
        ]
    }
  3. Clique em OK. A política personalizada será criada.

Etapa 2: Crie uma função RAM e conceder permissões

O Hologres precisa de uma função RAM para chamar APIs do KMS em seu nome. Crie a função e anexe a política criada na etapa 1.

  1. Faça logon no console RAM. No painel de navegação à esquerda, escolha Identities > Roles.

  2. Na página Roles, clique em Create Role. Defina Principal Type como Cloud Service e Principal Name como Hologres.

  3. Clique em OK. Na caixa de diálogo, insira AliyunHologresEncryptionDefaultRole no campo Role Name e clique em OK.

    创建角色

  4. Na página de detalhes da função, clique em Grant Permission.

  5. No painel Grant Permission, defina Resource Scope como Account. Em Policy, selecione AliyunHologresEncryptionDefaultRolePolicy.

    添加权限

  6. Clique em OK. Na página de detalhes da função, clique na aba Trust Policy para verificar a política de confiança.

Etapa 3: Alternar o mecanismo de consulta para SQE

O HQE não acessa dados criptografados do MaxCompute. Execute a seguinte instrução para alterar o mecanismo de consulta de tabelas externas do banco de dados para SQE:

ALTER DATABASE <dbname> SET hg_experimental_enable_access_odps_orc_via_holo = false;

A alteração entra em vigor após a criação de uma nova conexão. Para verificar a configuração, execute:

SHOW hg_experimental_enable_access_odps_orc_via_holo;

Se a saída for false, a configuração estará ativa.

Etapa 4: Consultar dados criptografados

Após concluir as etapas anteriores, consulte os dados criptografados do MaxCompute da mesma forma que consulta dados regulares do MaxCompute. Consulte Acelerar consultas em dados do MaxCompute usando tabelas externas.

Solução de problemas

Erro ao consultar dados:

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

Esse erro ocorre quando o HQE tenta acessar dados criptografados do MaxCompute. Alterne o mecanismo de consulta do banco de dados para SQE:

ALTER DATABASE <DB_Name> SET hg_experimental_enable_access_odps_orc_via_holo = false;

Reconecte-se para aplicar a alteração e verifique se ela entrou em vigor:

SHOW hg_experimental_enable_access_odps_orc_via_holo;

Se a saída for false, execute a consulta novamente.