Todos os produtos
Search
Central de documentação

OpenLake:Acesse dados do Paimon com DLF e projetos externos

Última atualização: Jul 17, 2026

Use o Flink para criar um Catálogo Paimon DLF, ler dados de negócios do MySQL CDC e gravar os dados no DLF. Em seguida, use um projeto externo do MaxCompute para consultar e analisar dados federados no data lake e gravar os resultados de volta no DLF. Este fluxo de trabalho requer a nova versão do DLF, e não o DLF 1.0. Para mais detalhes, consulte Data Lake Formation.

Pré-requisitos

Nota

Este tutorial usa o Flink e uma instância do RDS for MySQL como exemplos, mas eles não são obrigatórios se você já tiver dados do Paimon no DLF.

Procedimento

Se você já tiver dados de teste no DLF, pule para a Etapa 5.

Etapa 1: Preparar os dados de origem

  • Simule atualizações de dados de negócios em tempo real. O Flink grava os dados no data lake no formato Paimon.

  1. Faça login no console do RDS.

  2. Na barra de navegação à esquerda, selecione Instances e, no canto superior esquerdo, selecione a região.

  3. Na página Instances, clique no Instance ID/Name da instância desejada para abrir a página Instance Details.

  4. Na barra de navegação à esquerda, clique em Databases.

  5. Clique em Create Database. Configure os seguintes parâmetros:

    Parâmetro

    Obrigatório

    Descrição

    Exemplo

    Database Name

    Sim

    • O nome deve ter entre 2 e 64 caracteres.

    • Deve começar com uma letra e terminar com uma letra ou dígito.

    • Pode conter letras minúsculas, dígitos, sublinhados (_) e hifens (-).

    • O nome do banco de dados deve ser único na instância.

    • Se o nome do banco de dados contiver um hífen (-), o hífen (-) no nome da pasta do banco de dados criado será substituído por @002d.

    dlf25_paimon

    Supported Character Set

    Sim

    Selecione um conjunto de caracteres conforme necessário.

    utf8

    Authorized By

    Não

    • Selecione as contas que precisam acessar este banco de dados. Você pode deixar este parâmetro vazio e vincular contas após criar o banco de dados.

    • Apenas contas padrão aparecem aqui. Contas privilegiadas têm todas as permissões em todos os bancos de dados e não exigem autorização.

    Default

    Description

    Não

    Observações sobre o banco de dados para gerenciamento futuro. Comprimento máximo: 256 caracteres.

    Create a test database for the external project DLF 2.5.

  6. Clique em Log On to Database. Na barra de navegação à esquerda, selecione Instance e clique duas vezes no banco de dados criado. Na página SQL Console à direita, execute as instruções a seguir para criar uma tabela de teste e inserir dados de teste.

    Se a instância existir, mas o banco de dados alvo não aparecer após expandir a instância, as possíveis causas incluem:

    • A conta de login não tem permissões de acesso ao banco de dados alvo: Acesse a página Accounts na página de detalhes da instância RDS para modificar manualmente as permissões da conta ou alterar a conta de login do banco de dados.

    • O diretório não aparece porque os metadados não estão sincronizados: Passe o mouse sobre a instância e clique no ícone image à direita do nome da instância para atualizar a lista e exibir o banco de dados.

    CREATE TABLE emp (
        empno    INT PRIMARY KEY,
        ename    VARCHAR(20),
        job      VARCHAR(20),
        mgr      INT,
        hiredate DATE,
        sal      DECIMAL(10,2),
        comm     DECIMAL(10,2),
        deptno   INT
    );
    INSERT INTO emp VALUES
    (7369,'SMITH','CLERK',7902,'2020-12-17', 800.00,NULL,20),
    (7499,'ALLEN','SALESMAN',7698,'2021-02-20',1600.00,300.00,30),
    (7521,'WARD','SALESMAN',7698,'2021-02-22',1250.00,500.00,30),
    (7566,'JONES','MANAGER',7839,'2021-04-02',2975.00,NULL,20),
    (7654,'MARTIN','SALESMAN',7698,'2021-09-28',1250.00,1400.00,30),
    (7698,'BLAKE','MANAGER',7839,'2021-05-01',2850.00,NULL,30),
    (7782,'CLARK','MANAGER',7839,'2021-06-09',2450.00,NULL,10),
    (7788,'SCOTT','ANALYST',7566,'2021-12-09',3000.00,NULL,20),
    (7839,'KING','PRESIDENT',NULL,'2021-11-17',5000.00,NULL,10),
    (7844,'TURNER','SALESMAN',7698,'2021-09-08',1500.00,0.00,30),
    (7876,'ADAMS','CLERK',7788,'2022-01-12',1100.00,NULL,20),
    (7900,'JAMES','CLERK',7698,'2021-12-03', 950.00,NULL,30),
    (7902,'FORD','ANALYST',7566,'2021-12-03',3000.00,NULL,20),
    (7934,'MILLER','CLERK',7782,'2022-01-23',1300.00,NULL,10),
    (8001,'DUKE','ENGINEER',7788,'2023-03-15',3500.00,NULL,20),
    (8002,'DANIEL','ENGINEER',7788,'2023-04-01',3400.00,NULL,20),
    (8003,'SANDRA','CONSULTANT',7698,'2023-05-10',2700.00,NULL,30),
    (8004,'KAREN','CLERK',7902,'2023-06-11',1200.00,NULL,20),
    (8005,'JOHN','MANAGER',7839,'2023-07-12',4000.00,NULL,10),
    (8006,'LISA','DESIGNER',7698,'2023-08-13',2200.00,NULL,30);
  7. Consulte os dados na tabela de teste.

    SELECT * FROM emp;

    O resultado retornado é:

    A consulta retorna 20 registros com oito campos: empno (ID do funcionário), ename (nome), job (cargo), mgr (ID do gerente), hiredate (data de contratação), sal (salário), comm (comissão) e deptno (ID do departamento). Os IDs dos departamentos são 10, 20 e 30. O valor de comm para alguns funcionários é NULL.

Etapa 2: Preparar um metabanco de dados do DLF

  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 Catalog List.

  3. Na página Catalogs, clique em Create Catalog.

  4. Acesse a página Data Lake Formation (DLF), configure os seguintes parâmetros e clique em Create Catalog:

    Parâmetro

    Obrigatório

    Descrição

    Catalog Name

    Sim

    Nome personalizado do catálogo. O nome deve começar com uma letra e ter entre 1 e 256 caracteres. Pode conter letras, dígitos e sublinhados (_). Por exemplo, db_dlf25_oss.

    Description

    Não

    Descrição personalizada.

    Storage Type

    Sim

    Padrão.

    Storage Redundancy Type

    Sim

    • Armazenamento localmente redundante: os dados ficam armazenados em uma única zona. Se essa zona ficar indisponível, os dados tornar-se-ão inacessíveis. Recomendamos o uso de armazenamento redundante por zona.

    • Armazenamento redundante por zona: oferece redundância de dados em várias zonas de disponibilidade (AZs) na mesma região. Isso garante a disponibilidade dos dados mesmo se uma única AZ falhar. Após criar um catálogo, não é possível alterar seu tipo de armazenamento de redundante por zona para localmente redundante. Em comparação ao armazenamento localmente redundante, o armazenamento redundante por zona oferece maior disponibilidade a um custo mais elevado. Use o armazenamento redundante por zona para dados que exigem alta confiabilidade.

Etapa 3: Criar catálogos Paimon e MySQL usando o Flink

  1. Criar um catálogo Paimon

    1. Faça login no console do Realtime Compute for Apache Flink e selecione uma região no canto superior esquerdo.

    2. Clique no nome do workspace desejado e, no painel de navegação à esquerda, selecione Data Management.

    3. Na página catalog list , clique em Create Catalog . Na caixa de diálogo Create Catalog , selecione Apache Paimon, clique em Next e configure os seguintes parâmetros:

      Parâmetro

      Obrigatório

      Descrição

      metastore

      Sim

      Tipo de metastore. Selecione dlf para este exemplo.

      catalog name

      Sim

      Versão do Catálogo DLF a associar. Selecione DLF V2.5. Neste exemplo, selecione db_dlf25_oss criado no DLF.

  2. Criar um catálogo MySQL

    1. Faça login no console do Realtime Compute for Apache Flink e selecione uma região no canto superior esquerdo.

    2. Adicione um endereço IP à lista de permissões.

      1. Na coluna Actions do workspace desejado, clique em Details.

        Na caixa de diálogo pop-up Workspace Details, copie o CIDR Block do vSwitch.

      2. Faça login no console do RDS.

        Na barra de navegação à esquerda, selecione Instances e, no canto superior esquerdo, selecione a região.

        Na página Instances, clique no Instance ID/Name da instância desejada para abrir a página Instance Details.

      3. Na barra de navegação à esquerda, clique em Whitelist and SecGroup.

        Na aba Whitelist Settings, clique em Modify.

      4. Na caixa de diálogo Edit Whitelist, adicione os endereços IP copiados ao campo IP Addresses e clique em OK.

    3. Faça login no console do Realtime Compute for Apache Flink e selecione uma região no canto superior esquerdo.

      Clique no nome do workspace desejado e, no painel de navegação à esquerda, selecione Data Management.

    4. Na página catalog list , clique em Create Catalog . Na caixa de diálogo Create Catalog , selecione MySQL, clique em Next e configure os seguintes parâmetros:

      Parâmetro

      Obrigatório

      Descrição

      catalog name

      Sim

      Nome personalizado para o catálogo MySQL. Por exemplo, mysql-catalog-dlf25.

      hostname

      Sim

      • Endereço IP ou nome do host do banco de dados MySQL.

      • Faça login no console do RDS. Na página de detalhes da instância, clique em Database Connection para visualizar o Internal Endpoint, o Public Endpoint e a Internal Port:.

      • Para acessar entre VPCs ou pela Internet, estabeleça conectividade de rede. Para mais informações, consulte Conectividade de Rede.

      port

      Padrão

      Porta para conexão com o servidor. Padrão: 3306.

      default database

      Sim

      Nome do banco de dados padrão. Por exemplo, dlf25_paimon.

      username

      Sim

      Nome de usuário para conectar ao servidor de banco de dados MySQL. Para encontrar o nome de usuário, faça login no console do RDS, acesse a página de detalhes da instância e clique em Accounts.

      password

      Sim

      Senha para conectar ao servidor de banco de dados MySQL. Para encontrar a senha, faça login no console do RDS, acesse a página de detalhes da instância e clique em Accounts.

Etapa 4: Ler dados do MySQL e gravá-los em uma tabela Paimon no DLF usando o Flink

  1. Faça login no console do Realtime Compute for Apache Flink e selecione uma região no canto superior esquerdo.

  2. Clique no nome do workspace desejado e, no painel de navegação à esquerda, selecione Development > ETL.

  3. Na aba Drafts, clique em image para criar uma nova pasta.

  4. Clique com o botão direito em uma pasta e selecione New Blank Stream Draft. Na caixa de diálogo New Draft, insira um Name e selecione uma Engine Version.

  5. Escreva e execute a seguinte instrução SQL. Modifique os nomes com base no seu ambiente real.

    CREATE TABLE IF NOT EXISTS `db_dlf25_oss`.`default`.`emp`
    WITH (
      'bucket' = '4',
      'changelog-producer' = 'input'
    ) AS TABLE `mysql-catalog-dlf25`.`dlf25_paimon`.`emp`;
    1. (Opcional) Clique em Validate no canto superior direito para verificar erros de sintaxe na instrução Flink SQL do job.

    2. Clique em Deploy no canto superior direito e, na caixa de diálogo Deploy New Version, insira um Comment, uma Job Label e um Deployment Target. Em seguida, clique em Confirm.

  6. Clique no nome do workspace desejado. No painel de navegação à esquerda, escolha O&M > Deployments.

  7. Na página Deployments, clique no job desejado para abrir a página deployment details.

  8. No canto superior direito da página, clique em Start, selecione stateless start e clique em Start.

  9. Consultar os dados do Paimon

    No painel de navegação à esquerda, selecione Development > Data Query.

    Na aba Query Script, clique em image para criar um novo script de consulta.

    SELECT * FROM `db_dlf25_oss`.`default`.`emp`;

    A consulta retorna 22 registros com oito campos (empno, ename, job, mgr, hiredate, sal, comm e deptno), confirmando que o Flink gravou com sucesso os dados do MySQL na tabela Paimon no DLF.

  10. Faça login no console do Data Lake Formation (DLF). No painel de navegação, escolha Catalog List > Catalogs. Clique no catálogo de dados para acessar o banco de dados e visualizar os detalhes da tabela sincronizada.

A tabela emp sincronizada aparece na lista de tabelas. Seu proprietário é root (conta root), o tipo de tabela é Managed, o formato da tabela é Paimon PK Table e o formato de arquivo é parquet.

Etapa 5: Criar uma fonte de dados externa Paimon_DLF no MaxCompute

  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

    Nome da fonte de dados externa. O nome deve atender aos seguintes requisitos:

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

    • Pode ter até 128 caracteres.

    Exemplo: paimon_dlf.

    Description

    Não

    Opcional. Descrição da fonte de dados externa.

    Region

    Sim

    O padrão é a região atual.

    Authentication and Authorization

    Sim

    O valor padrão é a função RAM do Alibaba Cloud.

    Service-linked Role

    Sim

    Gerado automaticamente.

    Endpoint

    Sim

    Gerado automaticamente. Por exemplo, o endpoint para a região China (Hangzhou) é cn-hangzhou-intranet.dlf.aliyuncs.com.

    Foreign Server Supplemental Properties

    Não

    Opcional. Especifica atributos adicionais para a fonte de dados. Esses atributos definem como as tarefas que usam esta fonte de dados acessam o sistema de origem.

    Nota

    Consulte a documentação oficial para obter uma lista completa dos parâmetros suportados. Mais parâmetros podem ser adicionados em atualizações futuras.

  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 visualizar seus detalhes.

Etapa 6: Criar um projeto externo Paimon_DLF no MaxCompute

  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

    O valor padrão é a região atual. Não é possível alterá-lo aqui.

    Project Name (Globally Unique)

    Sim

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

    MaxCompute Foreign Server Type

    Não

    O valor padrão é Paimon_DLF.

    MaxCompute Foreign Server

    Não

    • Use Existing: uma lista de fontes de dados externas criadas é exibida.

    • Create Foreign Server: cria e usa uma nova fonte de dados externa.

    MaxCompute Foreign Server Name

    Sim

    • Usar existente: selecione o nome de uma fonte de dados externa criada na lista suspensa.

    • Nova fonte de dados externa: use o nome da nova fonte de dados externa.

    Authentication and Authorization

    Sim

    Identidade do executor da tarefa. Se não existir uma função vinculada ao serviço, crie uma antes de usar este modo.

    Service-linked Role

    Sim

    Gerado por padrão.

    Endpoint

    Sim

    Gerado por padrão.

    Data Catalog

    Sim

    Catálogo de dados do DLF.

    Billing Method

    Sim

    Subscription ou Pay-as-you-go.

    Default Quota

    Sim

    Selecione uma cota existente.

    Description

    Não

    Descrição personalizada do projeto.

Etapa 7: Analisar dados

  1. Use uma ferramenta de conexão para fazer login no projeto externo.

  2. Liste os schemas no projeto externo.

    -- Enable schema syntax at the session level.
    SET odps.namespace.schema=true;
    SHOW schemas;
    -- The following result is returned.
    ID = 20250919****am4qb
    default
    system
    OK
  3. Liste as tabelas no schema do projeto externo.

    -- Enable schema syntax at the session level.
    SET odps.namespace.schema=true;
    USE schema default;
    SHOW tables;
    -- The following result is returned.
    ID = 20250919****am4qb
    acs:ram::<uid>:root  emp
    OK
  4. Leia dados da tabela Paimon no DLF.

    -- Enable schema syntax at the session level.
    SET odps.namespace.schema=true;
    USE schema default;
    SELECT * FROM emp;

    Clique para visualizar o resultado da execução

    -- The following result is returned.
    +------------+------------+------------+------------+------------+------------+------------+------------+
    | empno      | ename      | job        | mgr        | hiredate   | sal        | comm       | deptno     | 
    +------------+------------+------------+------------+------------+------------+------------+------------+
    | 7521       | WARD       | SALESMAN   | 7698       | 2021-02-22 | 1250       | 500        | 30         | 
    | 7844       | TURNER     | SALESMAN   | 7698       | 2021-09-08 | 1500       | 0          | 30         | 
    | 7876       | ADAMS      | CLERK      | 7788       | 2022-01-12 | 1100       | NULL       | 20         | 
    | 7900       | JAMES      | CLERK      | 7698       | 2021-12-03 | 950        | NULL       | 30         | 
    | 7934       | MILLER     | CLERK      | 7782       | 2022-01-23 | 1300       | NULL       | 10         | 
    | 8005       | JOHN       | MANAGER    | 7839       | 2023-07-12 | 4000       | NULL       | 10         | 
    | 7369       | SMITH      | CLERK      | 7902       | 2020-12-17 | 800        | NULL       | 20         | 
    | 7566       | JONES      | MANAGER    | 7839       | 2021-04-02 | 2975       | NULL       | 20         | 
    | 7654       | MARTIN     | SALESMAN   | 7698       | 2021-09-28 | 1250       | 1400       | 30         | 
    | 7698       | BLAKE      | MANAGER    | 7839       | 2021-05-01 | 2850       | NULL       | 30         | 
    | 7839       | KING       | PRESIDENT  | NULL       | 2021-11-17 | 5000       | NULL       | 10         | 
    | 8002       | DANIEL     | ENGINEER   | 7788       | 2023-04-01 | 3400       | NULL       | 20         | 
    | 8006       | LISA       | DESIGNER   | 7698       | 2023-08-13 | 2200       | NULL       | 30         | 
    | 7499       | ALLEN      | SALESMAN   | 7698       | 2021-02-20 | 1600       | 300        | 30         | 
    | 7782       | CLARK      | MANAGER    | 7839       | 2021-06-09 | 2450       | NULL       | 10         | 
    | 7788       | SCOTT      | ANALYST    | 7566       | 2021-12-09 | 3000       | NULL       | 20         | 
    | 7902       | FORD       | ANALYST    | 7566       | 2021-12-03 | 3000       | NULL       | 20         | 
    | 8001       | DUKE       | ENGINEER   | 7788       | 2023-03-15 | 3500       | NULL       | 20         | 
    | 8003       | SANDRA     | CONSULTANT | 7698       | 2023-05-10 | 2700       | NULL       | 30         | 
    | 8004       | KAREN      | CLERK      | 7902       | 2023-06-11 | 1200       | NULL       | 20         | 
    +------------+------------+------------+------------+------------+------------+------------+------------+
  5. Consulte a tabela emp para recuperar informações completas sobre os funcionários com maior e menor salário em cada departamento.

    -- Enable schema syntax at the session level.
    SET odps.namespace.schema=true;
    USE schema default;
    WITH ranked AS (
        SELECT e.*,
               ROW_NUMBER() OVER (PARTITION BY deptno ORDER BY sal DESC) AS rn_desc,
               ROW_NUMBER() OVER (PARTITION BY deptno ORDER BY sal ASC)  AS rn_asc
        FROM emp e
    )
    SELECT *
    FROM ranked
    WHERE rn_desc = 1 
       OR rn_asc  = 1
    ORDER BY deptno, sal DESC;
    

    Clique para visualizar o resultado da execução

    -- The following result is returned.
    +-------+--------+-----------+------+------------+------+------+--------+------------+------------+
    | empno | ename  | job       | mgr  | hiredate   | sal  | comm | deptno | rn_desc    | rn_asc     |
    +-------+--------+-----------+------+------------+------+------+--------+------------+------------+
    | 7839  | KING   | PRESIDENT | NULL | 2021-11-17 | 5000 | NULL | 10     | 1          | 4          |
    | 7934  | MILLER | CLERK     | 7782 | 2022-01-23 | 1300 | NULL | 10     | 4          | 1          |
    | 8001  | DUKE   | ENGINEER  | 7788 | 2023-03-15 | 3500 | NULL | 20     | 1          | 8          |
    | 7369  | SMITH  | CLERK     | 7902 | 2020-12-17 | 800  | NULL | 20     | 8          | 1          |
    | 7698  | BLAKE  | MANAGER   | 7839 | 2021-05-01 | 2850 | NULL | 30     | 1          | 8          |
    | 7900  | JAMES  | CLERK     | 7698 | 2021-12-03 | 950  | NULL | 30     | 8          | 1          |
    +-------+--------+-----------+------+------------+------+------+--------+------------+------------+

Etapa 8: Gravar os resultados da análise de volta no DLF

  1. No projeto externo da etapa anterior, crie uma tabela para armazenar os resultados da análise.

    -- Enable schema syntax at the session level.
    SET odps.namespace.schema=true;
    use schema default;
    CREATE TABLE emp_detail (
        empno    INT,
        ename    VARCHAR(20),
        job      VARCHAR(20),
        mgr      INT,
        hiredate DATE,
        sal      DECIMAL(10,2),
        comm     DECIMAL(10,2),
        deptno   INT
    );
  2. Grave os resultados da análise na nova tabela.

    -- Enable schema syntax at the session level.
    SET odps.namespace.schema=true;
    use schema default;
    WITH ranked AS (
        SELECT e.*,
               ROW_NUMBER() OVER (PARTITION BY deptno ORDER BY sal DESC) AS rn_desc,
               ROW_NUMBER() OVER (PARTITION BY deptno ORDER BY sal ASC)  AS rn_asc
        FROM emp e
    )
    insert into emp_detail 
    SELECT 
        empno,ename,job,mgr,
        hiredate,sal,comm,deptno
    FROM ranked
    WHERE rn_desc = 1 
       OR rn_asc  = 1
    ORDER BY deptno, sal DESC;
  3. Consulte a nova tabela.

    -- Enable schema syntax at the session level.
    SET odps.namespace.schema=true;
    use schema default;
    SELECT * FROM emp_detail;
    

    Resultado da execução

    -- The result is as follows.
    +------------+------------+------------+------------+------------+------------+------------+------------+
    | empno      | ename      | job        | mgr        | hiredate   | sal        | comm       | deptno     | 
    +------------+------------+------------+------------+------------+------------+------------+------------+
    | 7839       | KING       | PRESIDENT  | NULL       | 2021-11-17 | 5000       | NULL       | 10         | 
    | 7934       | MILLER     | CLERK      | 7782       | 2022-01-23 | 1300       | NULL       | 10         | 
    | 8001       | DUKE       | ENGINEER   | 7788       | 2023-03-15 | 3500       | NULL       | 20         | 
    | 7369       | SMITH      | CLERK      | 7902       | 2020-12-17 | 800        | NULL       | 20         | 
    | 7698       | BLAKE      | MANAGER    | 7839       | 2021-05-01 | 2850       | NULL       | 30         | 
    | 7900       | JAMES      | CLERK      | 7698       | 2021-12-03 | 950        | NULL       | 30         | 
    +------------+------------+------------+------------+------------+------------+------------+------------+
  4. Faça login no console do Data Lake Formation (DLF). No painel de navegação à esquerda, escolha Catalog List. A tabela emp_detail recém-criada aparece na lista.