Todos os produtos
Search
Central de documentação

MaxCompute:Projeto externo Paimon-DLF

Última atualização: Oct 16, 2026

Um projeto externo Paimon_DLF mapeia um catálogo do Data Lake Formation (DLF) para o MaxCompute, permitindo acesso em tempo real a metadados e dados. O gerenciamento de permissões é delegado ao DLF, com suporte a operações de leitura e escrita em dados do Object Storage Service (OSS) gerenciados pelo DLF. Isso viabiliza o mapeamento de data lake no nível de catálogo para colaboração entre engines baseada em Paimon. Este recurso está atualmente em visualização por convite.

Escopo aplicável

  • Formato de tabela: Há suporte apenas para tabelas Paimon armazenadas no OSS e totalmente gerenciadas pelo DLF.

  • Limitações de escrita: Tabelas de bucket dinâmico e tabelas entre partições não aceitam INSERT INTO ou INSERT OVERWRITE.

  • Projetos externos:

    • Suporte à evolução de schema

      Tipo de operação

      Suportado

      Adicionar coluna

      Supported

      Remover coluna

      Supported

      Reordenar colunas

      Supported

      Alterar tipo de dados da coluna

      Supported

      Renomear coluna

      Supported

      Alterar comentário da coluna

      Supported

      Alterar nulidade da coluna

      Unsupported

    • Suporte a operações de partição

      Operação/Suporte

      Suportado

      Adicionar partição

      Unsupported

      Modificar horário de atualização da partição

      Unsupported

      Alterar valor da partição

      Unsupported

      Mesclar partições

      Unsupported

      Listar todas as partições

      Supported

      Visualize informações da partição

      Unsupported

      Exclua partição

      Supported

      Limpar dados da partição

      Unsupported

  • Não há suporte para operações de recursos e funções.

  • Data type mappings

Procedimento

Etapa 1: Conceder permissões

Modelo de permissão

  • Plano de controle: A verificação dessas permissões ocorre ao realizar operações no console do MaxCompute, principalmente durante a criação de um projeto externo e sua vinculação a um catálogo DLF.

    O RAM gerencia essas permissões. Sua conta Alibaba Cloud deve acessar o console do RAM para configure as permissões necessárias. Para mais informações, consulte Manage permissions for a RAM user.

  • Plano de dados: Essas permissões são verificadas quando você lê ou escreve em tabelas Paimon após fazer login no projeto externo. Isso geralmente acontece ao criar, manter ou usar schemas, tabelas e outros recursos dentro do catálogo DLF vinculado, executando instruções SQL no MaxCompute.

    O console do DLF gerencia essas permissões. Sua conta Alibaba Cloud deve acessar o console do DLF para configure as permissões necessárias. Para mais informações, consulte Grant permissions to a RAM user.

Conceder permissões do DLF ao MaxCompute

O MaxCompute acessa dados Paimon_DLF por meio de uma fonte de dados externa e de um projeto externo. Antes de prosseguir, conceda as permissões de dados necessárias do DLF à conta de acesso do MaxCompute.

A opção "Use task executor identity" transmite a identidade do executor da tarefa ao DLF. Tanto o MaxCompute quanto o DLF aplicam permissões com base nessa identidade. Primeiro, crie uma função vinculada ao serviço para o MaxCompute e conceda a ela as permissões necessárias:

  1. Faça login no console do RAM.

  2. Na barra de navegação à esquerda, selecione Identities > Roles.

  3. Na página Roles, clique em Create Role.

  4. No canto superior direito da página Create Role, clique em Create Service Linked Role.

  5. Na página Create Service Linked Role, selecione AliyunServiceRoleForMaxComputeLakehouse em Select Service e clique em Create Service Linked Role.

    Se receber uma mensagem informando que a função já existe, significa que ela já foi autorizada e você pode ignorar o aviso.

Conceder permissões a um usuário RAM

Caso seja um usuário RAM, anexe as seguintes políticas de permissão. Para obter informações sobre como adicionar permissões, consulte Manage permissions for a RAM user.

  • AliyunRAMFullAccess: Se um usuário RAM não tiver essa permissão, uma conta Alibaba Cloud deverá concedê-la.

  • AliyunMaxComputeFullAccess: Necessária para criar fontes de dados externas e projetos externos.

  • AliyunDLFReadOnlyAccess: Obrigatória para criar projetos externos. Essa política de permissão é necessária porque a criação de um projeto externo Paimon_DLF exige a permissão List para o catálogo DLF.

Etapa 2: Criar uma fonte de dados externa Paimon_DLF

  1. Faça login no console do MaxCompute e selecione uma região no canto superior esquerdo.

  2. No painel de navegação à esquerda, escolha Manage Configurations > External Data Source .

  3. Na página External Data Source, clique em Create External Data Source.

  4. Na caixa de diálogo Create External Data Source, configure os parâmetros. As tabelas a seguir descrevem os parâmetros.

    Parâmetro

    Obrigatório

    Descrição

    External Data Source Type

    Sim

    Selecione Paimon_DLF.

    External Data Source Name

    Sim

    Insira um nome personalizado. O nome deve atender aos seguintes requisitos:

    • Deve começar com uma letra e conter apenas letras minúsculas, dígitos e sublinhados (_).

    • Não pode exceder 128 caracteres.

    Por exemplo, você pode inserir paimon_dlf.

    Description

    Não

    Insira uma descrição conforme necessário.

    Region

    Sim

    A região atual é selecionada por padrão.

    Authentication and Authorization

    Sim

    O valor padrão é uma função RAM da Alibaba Cloud.

    Service-linked Role

    Sim

    A função é gerada por padrão.

    Endpoint

    Sim

    O endpoint é gerado automaticamente. Para a região China (Hangzhou), o endpoint é cn-hangzhou-intranet.dlf.aliyuncs.com.

    Foreign Server Supplemental Properties

    Não

    Essas propriedades definem como as tarefas que usam esta fonte de dados acessam o sistema de origem.

    Nota

    Os parâmetros suportados serão expandidos em futuras atualizações da documentação à medida que o product evoluir.

  5. Clique em OK para criar a fonte de dados externa.

  6. Na página External Data Source, localize a fonte de dados e clique em Details na coluna Actions para visualize seus detalhes.

Etapa 3: Criar um projeto externo

  1. Faça login no console do MaxCompute e selecione uma região no canto superior esquerdo.

  2. No painel de navegação à esquerda, escolha Manage Configurations > Projects.

  3. Na aba External Project, clique em Create Project.

  4. Na caixa de diálogo Create Project, configure as definições e clique em OK.

    Parâmetro

    Obrigatório

    Descrição

    Project Type

    Sim

    O valor padrão é External Project.

    Region

    Sim

    A região atual é selecionada por padrão e não pode ser alterada.

    Project Name (Globally Unique)

    Sim

    O nome deve ter entre 3 e 28 caracteres, começar com uma letra e conter apenas letras, dígitos e sublinhados (_).

    MaxCompute Foreign Server Type

    Não

    O valor padrão é Paimon_DLF.

    MaxCompute Foreign Server

    Não

    • Use Existing: Exibe uma lista de fontes de dados externas existentes.

    • Create Foreign Server: Permite criar e usar uma nova fonte de dados externa.

    MaxCompute Foreign Server Name

    Sim

    • Se optar por usar uma fonte de dados existente, selecione seu nome na lista suspensa.

    • Se optar por criar uma nova fonte de dados, o nome dela será usado automaticamente.

    Data Catalog

    Sim

    O catálogo de dados do DLF.

    Billing Method

    Sim

    Selecione Subscription ou Pay-as-you-go.

    Default Quota

    Sim

    Selecione uma cota existente.

    Description

    Não

    Insira uma descrição personalizada para o projeto.

Etapa 4: Usar SQL para acessar a fonte de dados

Importante

Excluir um projeto externo não remove os dados subjacentes, pois o projeto é apenas um mapeamento para a fonte de dados.

No entanto, diferentemente das tabelas externas padrão, execute um comando DROP TABLE ou DROP SCHEMA em um projeto externo envia a solicitação ao serviço par. Isso exclui permanentemente a tabela ou o banco de dados correspondente. Use operações DROP com cautela.

  1. Choose a connection tool para fazer login no projeto externo.

    O exemplo a seguir utiliza um nó SQL para desenvolvimento de dados em um workspace do DataWorks (nova versão).

    1. Faça login no console do DataWorks e selecione uma região no canto superior esquerdo.

    2. No painel de navegação à esquerda, escolha Workspace.

    3. Na página Workspaces, clique em Create Workspace ou clique no nome de um workspace existente.

    4. Na página Workspace Details, clique em Computing Resource no painel de navegação à esquerda.

    5. Na página Computing Resource, clique em Associate Computing Resources e selecione MaxCompute.

    6. Configure as Basic Information para Associate MaxCompute Computing Resource.

      Para o projeto MaxCompute, selecione o projeto externo.

  2. Liste os schemas no projeto externo.

    set odps.security.outbound.intranetlist=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;
    set odps.internet.access.list=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;
  3. Liste as tabelas em um schema dentro do projeto externo.

    Se precisar acessar tabelas de um projeto externo de produção no ambiente atual, adicione use external_project_pro; antes de todas as instruções SQL.

    set odps.security.outbound.intranetlist=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;
    set odps.internet.access.list=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;
  4. Crie um novo schema no projeto externo.

    set odps.security.outbound.intranetlist=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;
    set odps.internet.access.list=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;
  5. Crie uma tabela e insira dados no schema.

    Se estiver conectado como um usuário RAM, esta operação requer permissões no catálogo DLF. Para obter informações sobre como conceder permissões, consulte Data authorization management.

    • Formato do comando:

      set odps.security.outbound.intranetlist=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;
      set odps.internet.access.list=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;
    • Exemplo:

      Nota

      Para tipos TIMESTAMP de baixa precisão da tabela Paimon de origem, os dados são truncados durante operações de escrita da seguinte forma: precisão 0–3 é truncada para 3 casas decimais, 4–6 para 6 casas decimais e 7–9 para 9 casas decimais.

      set odps.security.outbound.intranetlist=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;
      set odps.internet.access.list=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;
  6. Mude para o schema default existente.

    set odps.security.outbound.intranetlist=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;
    set odps.internet.access.list=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;

Passagem de propriedades de tabela Paimon

O Apache Paimon fornece opções de configuração principais. Ao criar uma tabela Paimon em um projeto externo, especifique essas opções na cláusula TBLPROPERTIES da sua instrução CREATE TABLE.

Configuração: Adicione parâmetros prefixados com mcfed. à lista TBLPROPERTIES. Os nomes dos parâmetros após o prefixo devem corresponder aos nomes nativos dos parâmetros do Paimon.

Exemplo

Criar uma tabela externa Paimon com buckets, chave primária e partições

  1. Criar a tabela e configure seus parâmetros externos

    set odps.security.outbound.intranetlist=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;
    set odps.internet.access.list=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;
  2. Inserir dados na tabela externa

    set odps.security.outbound.intranetlist=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;
    set odps.internet.access.list=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;
  3. Consultar a tabela externa

    set odps.security.outbound.intranetlist=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;
    set odps.internet.access.list=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;
  4. Faça login no console do Data Lake Formation (DLF) e, no canto superior esquerdo, selecione uma região.

    Visualize os detalhes da tabela no catálogo.

Perguntas frequentes

Problema 1: Erro ao criar um projeto externo

Problema: Ao tentar criar um projeto externo, você recebe a mensagem de erro: "You are not authorized to perform this action."

Nos detalhes do erro, o código de erro é NoMCPermission.

Solução:

  1. Se estiver usando um usuário RAM, certifique-se de que a política AliyunMaxComputeFullAccess esteja anexada ao usuário RAM. Para mais informações, consulte a Etapa 1.

  2. Esta operação exige a seleção de um catálogo no Data Lake Formation (DLF). Certifique-se de ter as permissões necessárias para operações do DLF. Para mais informações, consulte a Etapa 1.

Problema 2: Erro ao execute SHOW TABLES no schema padrão

Problema: Ao execute o comando SHOW TABLES no schema padrão de um projeto externo, você recebe a seguinte mensagem de erro: "Forbidden:User acs: ram: :<uid>:user/** doesn't have privilege LIST on DATABASE default".

Solução:

  1. Faça login no console do Data Lake Formation (DLF) e, no canto superior esquerdo, selecione uma região.

  2. No painel de navegação à esquerda, escolha System & Security

  3. Na aba Access Control > Users, atualize a página para verificar se o usuário RAM atual existe.

  4. Se o usuário existir, acesse a aba Access Control > Role para conceder permissões ao usuário RAM.

Problema 3: Erro "invalid database operations on two-tier"

Problema: Ao execute o comando SHOW SCHEMAS em um projeto externo, você recebe a mensagem de erro: "invalid database operations on two-tier".

Solução:

  1. Primeiro, certifique-se de que está usando um projeto externo.

    1. Se estiver usando um nó SQL do DataWorks, clique em Debug Configuration no painel à direita e verifique se o recurso de computação vinculado é um projeto externo.

    2. Se estiver usando a análise SQL do DataWorks, clique em Data Source no canto superior direito e verifique se a fonte de dados vinculada é um projeto externo.

    3. Se estiver usando a análise SQL do MaxCompute, clique em Run Configuration no painel à direita e verifique se o projeto selecionado na seção de recursos de computação é um projeto externo.

    4. Se estiver usando o odpscmd, verifique o valor do parâmetro project_name no arquivo odps_config.ini para garantir que esteja definido como o nome do projeto externo.

  2. Após confirme que está usando um projeto externo, selecione e execute as seguintes instruções SQL juntas.

    set odps.security.outbound.intranetlist=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;
    set odps.internet.access.list=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;

Problema 4: SHOW SCHEMAS retorna apenas o schema padrão

Problema: Ao execute o comando SHOW SCHEMAS em um projeto externo, o comando retorna apenas 'default'.

Solução:

  1. Primeiro, certifique-se de que está usando um projeto externo.

    1. Se estiver usando um nó SQL do DataWorks, clique em Debug Configuration no painel à direita e verifique se o recurso de computação vinculado é um projeto externo.

    2. Se estiver usando a análise SQL do DataWorks, clique em Data Source no canto superior direito e verifique se a fonte de dados vinculada é um projeto externo.

    3. Se estiver usando a análise SQL do MaxCompute, clique em Run Configuration no painel à direita e verifique se o projeto selecionado na seção de recursos de computação é um projeto externo.

    4. Se estiver usando o odpscmd, verifique o valor do parâmetro project_name no arquivo odps_config.ini para garantir que esteja definido como o nome do projeto externo.

  2. Após confirme que está usando um projeto externo, faça login no console do Data Lake Formation (DLF) e verifique se existem outros bancos de dados no catálogo vinculado ao projeto externo.

  3. Se você concluiu as verificações nas Etapas 1 e 2, mas o comando SHOW SCHEMAS ainda não retorna os bancos de dados esperados, envie um ticket para relatar o problema.

Problema 5: Erro de "Dynamic bucket"

Problema: Ao execute o comando SHOW TABLES em um projeto externo, você recebe a seguinte mensagem de erro:

set odps.security.outbound.intranetlist=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;
set odps.internet.access.list=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;

Solução:

Este erro ocorre porque o MaxCompute não oferece suporte a tabelas de chave primária entre partições com buckets fixos.

Solução temporária: Exclua as tabelas PK entre partições não suportadas no console do Data Lake Formation (DLF).

Problema 6: Erro "Can't set default schema..."

Problema: Ao execute SHOW TABLES ou SHOW SCHEMAS, você recebe a seguinte mensagem de erro: "FAILED: Can't set default schema if odps.namespace.schema is false."

Solução:

  1. Primeiro, certifique-se de ter adicionado o sinalizador de sessão SET odps.namespace.schema=true; antes das suas instruções SQL para ative a sintaxe de schema.

  2. Se o erro persistir após ative o sinalizador, verifique a ordem das suas instruções. Para ler uma tabela de outro projeto externo, use a seguinte sequência de comandos:

    set odps.security.outbound.intranetlist=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;
    set odps.internet.access.list=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;

Problema 7: Erro "Failed to connect to...dlf.aliyuncs.com"

Problema: Ao tentar ler dados de uma tabela em um projeto externo Paimon_DLF, você recebe uma mensagem de erro semelhante à seguinte: "Caused by: java.net.ConnectException: Failed to connect to cn-***-intranet.dlf.aliyuncs.com/xx.xx.xx.xx:80"

Este erro indica que você precisa adicionar o endereço cn-***-intranet.dlf.aliyuncs.com à lista de permissões do projeto interno onde o job é executado.

Solução:

  1. Junte-se ao grupo DingTalk da comunidade de desenvolvedores do MaxCompute usando o link de inscrição ou pesquisando pelo ID do grupo 11782920 no DingTalk. Entre em contato com a equipe de suporte técnico do MaxCompute e solicite que adicionem o endereço da mensagem de erro à lista de permissões.

  2. Depois que o endereço for adicionado à lista de permissões, inclua os seguintes parâmetros antes das suas operações de leitura.

    set odps.security.outbound.intranetlist=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;
    set odps.internet.access.list=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;

Problema 8: Failed to connect Http service: http://clg-paimon-***.oss-cn-***-internal.aliyuncs.com

Problema: Ao tentar ler dados de uma tabela em um projeto externo Paimon_DLF, você recebe uma mensagem de erro semelhante à seguinte: "open failed, get file internal error:Failed to connect Http service: http://clg-paimon-.oss-cn--internal.aliyuncs.com/***"

Este erro indica que você precisa adicionar o endereço cn-***-intranet.dlf.aliyuncs.com à lista de permissões do projeto interno onde o job é executado.

Solução:

  1. Junte-se ao grupo DingTalk da comunidade de desenvolvedores do MaxCompute usando o link de inscrição ou pesquisando pelo ID do grupo 11782920 no DingTalk. Entre em contato com a equipe de suporte técnico do MaxCompute e solicite que adicionem o endereço da mensagem de erro à lista de permissões.

  2. Depois que o endereço for adicionado à lista de permissões, inclua os seguintes parâmetros antes das suas operações de leitura.

    set odps.security.outbound.intranetlist=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;
    set odps.internet.access.list=clg-paimon-***.oss-cn-***-internal.aliyuncs.com:80;

Mapeamento de tipos de dados

Para detalhes sobre os tipos de dados do MaxCompute, consulte Data types (V1.0) e Data types (V2.0).

Tipo de dados Paimon

Tipo de dados MaxCompute 2.0

Suporte a leitura/escrita

Descrição

TINYINT

TINYINT

Supported

Inteiro assinado de 8 bits.

SMALLINT

SMALLINT

Supported

Inteiro assinado de 16 bits.

INT

INT

Supported

Inteiro assinado de 32 bits.

BIGINT

BIGINT

Supported

Inteiro assinado de 64 bits.

BINARY(MAX_LENGTH)

BINARY

Supported

Tipo de dados binário. O comprimento máximo atual é 8 MB.

FLOAT

FLOAT

Supported

Número de ponto flutuante binário de 32 bits.

DOUBLE

DOUBLE

Supported

Número de ponto flutuante binário de 64 bits.

DECIMAL(precision,scale)

DECIMAL(precision,scale)

Supported

Tipo numérico decimal exato. O padrão é decimal(38,18). Você pode personalizar os valores de precisão e escala.

  • precision: O número máximo de dígitos. Os valores válidos são de 1 a 38.

  • scale: O número de dígitos na parte fracionária. Os valores válidos são de 0 a 18.

VARCHAR(n)

VARCHAR(n)

Supported

Tipo de caractere de comprimento variável. n especifica o comprimento e varia de 1 a 65.535.

CHAR(n)

CHAR(n)

Supported

Tipo de caractere de comprimento fixo. n especifica o comprimento e varia de 1 a 255.

VARCHAR(MAX_LENGTH)

STRING

Supported

Tipo string. O comprimento máximo atual é 8 MB.

DATE

DATE

Supported

Tipo data. O formato é yyyy-mm-dd.

TIME, TIME(p)

Não suportado

Not supported

O tipo de dados TIME do Paimon representa um horário sem fuso horário, consistindo em horas, minutos e segundos, com precisão de nanossegundos.

TIME(p) especifica a precisão de segundos fracionários de 0 a 9. O valor padrão é 0.

Não existe tipo correspondente no MaxCompute.

TIMESTAMP, TIMESTAMP(p)

TIMESTAMP_NTZ

Supported

Um tipo timestamp sem fuso horário, preciso até o nanossegundo.

Para ler este tipo de dados, você deve desabilitar a ponte JNI nativa executando o seguinte comando: SET odps.sql.common.table.jni.disable.native=true;

TIMESTAMP WITH LOCAL TIME_ZONE(9)

TIMESTAMP

Supported

  • Um tipo timestamp preciso até o nanossegundo. O formato é yyyy-mm-dd hh:mm:ss.xxxxxxxxx.

  • Para tipos TIMESTAMP de baixa precisão na tabela de origem Paimon, o MaxCompute trunca valores durante a escrita. Para precisão 0-3, os dados são truncados para 3 dígitos. Para precisão 4-6, os dados são truncados para 6 dígitos. Para precisão 7-9, os dados são truncados para 9 dígitos.

TIMESTAMP WITH LOCAL TIME_ZONE(9)

DATETIME

Not supported

Um tipo timestamp preciso até o nanossegundo.

O formato é yyyy-mm-dd hh:mm:ss.xxxxxxxxx.

BOOLEAN

BOOLEAN

Supported

Um tipo BOOLEAN.

ARRAY

ARRAY

Supported

Um tipo complexo.

MAP

MAP

Supported

Um tipo complexo.

ROW

STRUCT

Supported

Um tipo complexo.

MULTISET<t>

Não suportado

Not supported

Não existe tipo correspondente no MaxCompute.

VARBINARY, VARBINARY(n), BYTES

BINARY

Supported

Um tipo de dados de strings binárias de comprimento variável.