Todos os produtos
Search
Central de documentação

MaxCompute:Crie uma tabela externa do Apache Paimon usando o Realtime Compute for Apache Flink

Última atualização: Oct 10, 2026

O MaxCompute permite criar uma tabela externa do Apache Paimon e mapeá-la para o diretório de uma tabela armazenada no Object Storage Service (OSS). Isso permite usar a tabela externa do Apache Paimon no MaxCompute para acessar os dados da tabela do Apache Paimon armazenada no OSS. Este tópico descreve como criar uma tabela externa do Apache Paimon usando o Realtime Compute for Apache Flink e como consultar dados por meio dessa tabela externa no MaxCompute.

Informações de contexto

O Apache Paimon é um formato unificado de armazenamento em data lake para streaming e batch que oferece gravações com alto throughput e consultas de baixa latência. Os mecanismos de computação comuns, como Spark, Hive e Trino em Realtime Compute for Apache Flink e E-MapReduce, integram-se perfeitamente ao Paimon. Com o Apache Paimon, você pode criar rapidamente um data lake no Object Storage Service (OSS) e conectá-lo ao MaxCompute para análises de data lake. Para obter mais informações sobre o Apache Paimon, consulte a documentação do Apache Paimon.

Pré-requisitos

  • A conta da Alibaba Cloud usada para executar as operações deve ter a permissão CreateTable para criar tabelas do MaxCompute. Para obter mais informações sobre as permissões de tabela, consulte MaxCompute permissions.

  • Você criou um projeto do MaxCompute. Para obter mais informações, consulte Create a project.

  • Você ativou o OSS e criou um bucket e um diretório de arquivos. Para obter mais informações, consulte Create a bucket.

    Nota

    O MaxCompute é implantado apenas em regiões específicas. Para evitar problemas de conectividade de dados entre regiões, recomendamos que você use um bucket na mesma região do seu projeto do MaxCompute.

  • Você ativou o Flink totalmente gerenciado. Para obter mais informações, consulte Create a workspace.

Precauções

  • O MaxCompute só pode ler dados de tabelas externas do Apache Paimon. Ele não pode gravar dados nessas tabelas nem sincronizar automaticamente as alterações de schema.

  • O Apache Paimon não é compatível com projetos do MaxCompute em que o schema feature esteja ativado.

  • As tabelas externas do Apache Paimon não são compatíveis com o atributo de clustering.

  • As tabelas externas do Apache Paimon não são compatíveis com recursos como consulta e rastreamento de dados de versões históricas.

Etapa 1: Carregue o plug-in do Apache Paimon no seu projeto do MaxCompute

Use um dos métodos a seguir para carregar o Paimon plugin no seu projeto do MaxCompute.

Use o cliente do MaxCompute (odpscmd)

Acesse o seu projeto do MaxCompute com o MaxCompute client (odpscmd) e execute o comando a seguir para carregar o arquivo paimon_maxcompute_connector.jar no projeto.

ADD JAR <path_to_paimon_maxcompute_connector.jar>;

Use o console do DataWorks

  1. Faça login no DataWorks console. No painel de navegação à esquerda, clique em Workspace. Na coluna Actions do workspace de destino, escolha Quick Access > DataStudio.

  2. Na página Data Development, clique em Create e selecione New Resource > JAR.

  3. Na caixa de diálogo New resource, configure os parâmetros para carregar o arquivo paimon_maxcompute_connector.jar e clique em Create. Para obter mais informações sobre a criação de recursos, consulte Step 1: Create or upload a resource.

    A seguir, defina os seguintes parâmetros: para Engine Type, selecione MaxCompute; para Engine Instance, selecione glz_mc China (Beijing); para Schema, selecione default; para Resource Type, selecione JAR; e selecione Upload as ODPS Resource.

  4. Após criar o recurso, clique no ícone image.png na barra de ferramentas da guia de configuração do recurso para fazer o commit no ambiente de desenvolvimento.

Etapa 2: Crie uma tabela externa do Apache Paimon usando o Realtime Compute for Apache Flink

A melhor prática descrita neste tópico utiliza o Realtime Compute for Apache Flink. O Realtime Compute for Apache Flink grava dados de arquivos do Apache Paimon no OSS. Você cria um catálogo do Apache Paimon no console do Realtime Compute for Apache Flink e cria uma tabela do Apache Paimon nesse catálogo. O MaxCompute pode usar essa tabela para ler os dados dos arquivos do Apache Paimon no OSS. Em seguida, o MaxCompute usa a tabela do Apache Paimon como tabela externa para ler os dados armazenados no OSS.

  1. Faça login no Realtime Compute for Apache Flink console e crie um Script. Para obter mais informações, consulte Query Scripts.

  2. No editor de scripts, insira a seguinte definição de catálogo e os valores dos parâmetros. Agora, selecione o código e clique em Run.

    CREATE CATALOG `<catalog name>` WITH (
     'type' = 'paimon',
      'metastore' = 'maxcompute',
      'warehouse' = '<warehouse>',
      'maxcompute.endpoint' = '<maxcompute.endpoint>',
      'maxcompute.project' = '<maxcompute.project>',
      'maxcompute.accessid' = '<maxcompute.accessid>',
      'maxcompute.accesskey' = '<maxcompute.accesskey>',
      'maxcompute.oss.endpoint' = '<maxcompute.oss.endpoint>',
      'fs.oss.endpoint' = '<fs.oss.endpoint>',
      'fs.oss.accessKeyId' = '<fs.oss.accessKeyId>',
      'fs.oss.accessKeySecret' = '<fs.oss.accessKeySecret>'
    );

    A tabela a seguir descreve os parâmetros no código.

    Parâmetro

    Obrigatório

    Descrição

    catalog name

    Sim

    O nome do catálogo do Apache Paimon. O nome pode conter apenas letras. Neste tópico, o nome do catálogo é catalogname.

    type

    Sim

    O tipo do catálogo. Para isso, defina o valor como paimon.

    metastore

    Sim

    O tipo de armazenamento de metadados. Para isso, defina o valor como maxcompute.

    warehouse

    Sim

    O diretório do data warehouse no OSS, no formato oss://<bucket>/<object>.

    • bucket: o nome do bucket do OSS criado.

    • object: o caminho onde os dados são armazenados.

    Visualize os nomes do bucket e do object no OSS console.

    maxcompute.endpoint

    Sim

    O endpoint do MaxCompute.

    Para isso, configure este parâmetro com base na região e no tipo de conexão de rede selecionados ao criar o projeto do MaxCompute. Para obter mais informações sobre os endpoints correspondentes a diferentes regiões e tipos de rede, consulte Endpoints.

    maxcompute.project

    Sim

    O nome do projeto do MaxCompute.

    O MaxCompute não é compatível com projetos em que o schema feature esteja ativado.

    maxcompute.accessid

    Sim

    O AccessKey ID da conta da Alibaba Cloud ou do usuário RAM que tem permissões no MaxCompute.

    Obtenha o AccessKey ID na página AccessKey Management.

    maxcompute.accesskey

    Sim

    O AccessKeySecret que corresponde ao AccessKey ID.

    maxcompute.oss.endpoint

    Não

    O endpoint do OSS que o MaxCompute acessa. Caso você não configure este parâmetro, o sistema usará o valor do parâmetro fs.oss.endpoint por padrão.

    Importante

    O bucket do OSS deve residir na mesma região do projeto do MaxCompute. Recomendamos definir o parâmetro maxcompute.oss.endpoint como um endpoint interno. Para obter mais informações sobre os endpoints do OSS de diferentes tipos de rede em cada região, consulte Regions and endpoints.

    fs.oss.endpoint

    Não

    O endpoint do OSS.

    Este parâmetro é obrigatório se o bucket do OSS especificado pelo parâmetro warehouse não estiver na mesma região do workspace do Realtime Compute for Apache Flink ou se você usar um bucket do OSS de outra conta da Alibaba Cloud.

    Nota

    Para isso, configure o endpoint com base na região e no método de conexão de rede selecionados ao criar o bucket do OSS. Para obter mais informações sobre os endpoints correspondentes a diferentes regiões e tipos de rede, consulte Regions and endpoints.

    fs.oss.accessKeyId

    Não

    O AccessKey ID da conta da Alibaba Cloud ou do usuário RAM que tem permissões de leitura e gravação no OSS.

    Este parâmetro é obrigatório se o bucket do OSS especificado pelo parâmetro warehouse não estiver na mesma região do workspace do Realtime Compute for Apache Flink ou se você usar um bucket do OSS de outra conta da Alibaba Cloud.

    Obtenha o AccessKey ID na página AccessKey Management.

    fs.oss.accessKeySecret

    Não

    O AccessKeySecret que corresponde ao AccessKey ID.

    Este parâmetro é obrigatório se o bucket do OSS especificado pelo parâmetro warehouse não estiver na mesma região do workspace do Realtime Compute for Apache Flink ou se você usar um bucket do OSS de outra conta da Alibaba Cloud.

  3. Agora, crie uma tabela do Apache Paimon.

    1. Em seguida, crie uma tabela chamada test_tbl.

      Na guia Script, execute a seguinte instrução no editor de scripts e aguarde a exibição de uma mensagem de conclusão na guia Result. Este exemplo usa uma tabela chamada test_tbl.

      CREATE TABLE `catalogname`.`default`.test_tbl (
       dt STRING,
       id BIGINT,
       data STRING,
       PRIMARY KEY (dt, id) NOT ENFORCED
      ) PARTITIONED BY (dt);
    2. Grave dados na tabela test_tbl.

      Na página Drafts, crie um job SQL com as seguintes instruções. Em seguida, faça o deploy e execute o job. Para obter mais informações sobre como criar e executar jobs SQL, consulte Job development overview.

      -- The checkpoint interval is set to 10s to commit data faster.
      SET 'execution.checkpointing.interval' = '10s';
      INSERT INTO `catalogname`.`default`.test_tbl VALUES ('2023-04-21', 1, 'AAA'), ('2023-04-21', 2, 'BBB'), ('2023-04-22', 1, 'CCC'), ('2023-04-22', 2, 'DDD');
      Nota
      • A tabela de resultados do Apache Paimon faz o commit dos dados sempre que o checkpointing é concluído.

      • No ambiente de produção, o intervalo de checkpointing e o intervalo mínimo entre checkpoints variam de acordo com os requisitos de latência do seu negócio. Na maioria dos casos, esses intervalos são definidos entre 1 e 10 minutos.

      • A versão do mecanismo do rascunho SQL deve ser vvr-8.0.5-flink-1.17 ou posterior.

Etapa 3: Leia dados com o MaxCompute

  1. Agora, execute os seguintes comandos no Connect using the local client (odpscmd) ou em outra ferramenta capaz de executar instruções SQL do MaxCompute:

    SET odps.sql.common.table.planner.ext.hive.bridge = true;
    SET odps.sql.hive.compatible = true;
  2. Em seguida, execute o seguinte comando para consultar dados da tabela externa do Apache Paimon test_tbl:

    SELECT * FROM test_tbl WHERE dt = '2023-04-21';

    O resultado retornado é o seguinte:

    +------------+------------+------------+
    | id | data | dt |
    +------------+------------+------------+
    | 1 | AAA | 2023-04-21 |
    | 2 | BBB | 2023-04-21 |
    +------------+------------+------------+