Todos os produtos
Search
Central de documentação

:Mecanismo de armazenamento Delta Lake ou Apache Hudi baseado em DLF, ApsaraDB RDS ou Realtime Compute for Apache Flink e OSS

Última atualização: Jul 04, 2026

O MaxCompute constrói uma arquitetura de data lakehouse compatível com os mecanismos de armazenamento Delta Lake e Apache Hudi, utilizando os serviços da Alibaba Cloud: Data Lake Formation (DLF), ApsaraDB RDS, Realtime Compute for Apache Flink e Object Storage Service (OSS). Delta Lake e Hudi são mecanismos comuns em soluções de data lake, oferecendo capacidades de processamento em stream e em lote. Consulte dados em tempo real pelo MaxCompute para obter insights ágeis sobre mudanças nos dados de negócios.

Informações de fundo

Geralmente, o processo de criação e aplicação de data lakes envolve ingestão de dados, armazenamento e gerenciamento do data lake, além de exploração e análise de dados. O MaxCompute oferece uma solução de data lakehouse compatível com Delta Lake e Apache Hudi. Essa solução baseia-se nos serviços da Alibaba Cloud: DLF, ApsaraDB RDS ou Realtime Compute for Apache Flink e OSS. A figura a seguir ilustra a arquitetura dessa solução de data lakehouse.

image.png

Operação

Serviço da Alibaba Cloud

Descrição

Operações de banco de dados online

ApsaraDB RDS

Funciona como source de dados para os data lakes.

Computação em tempo real

Realtime Compute for Apache Flink

Atua como source de dados para os data lakes.

Ingestão de dados

DLF

Conecta-se ao ApsaraDB RDS e gerencia a source de dados dos data lakes.

Armazenamento e gerenciamento de data lake

Durante a ingestão de dados dos bancos ApsaraDB RDS nos data lakes, o OSS atua como repositório. Há suporte aos mecanismos de armazenamento Delta Lake e Apache Hudi. O DLF usa o recurso de gerenciamento de metadados para administrar metadatabases e tabelas de metadados.

Exploração e análise de data lake

Analisa os dados nos data lakes.

Pré-requisitos

Atenda às seguintes condições:

  • O OSS está ativado.

  • O Data Transmission Service (DTS) está ativado.

    Realize a autorização com um clique na página Cloud Resource Access Authorization no console Resource Access Management (RAM). Após atribuir a função AliyunDTSDefaultRole à conta da Alibaba Cloud do seu projeto MaxCompute, o serviço DTS será ativado.

  • Uma instância ApsaraDB RDS for MySQL ou uma instância Flink totalmente gerenciada foi criada.

    • Para implementar a solução de data lakehouse com suporte ao mecanismo de armazenamento Delta Lake ou Apache Hudi baseada em DLF, ApsaraDB RDS for MySQL e OSS, crie uma instância ApsaraDB RDS for MySQL.

    • Para implementar a solução de data lakehouse com suporte ao mecanismo de armazenamento Apache Hudi baseada em DLF, Realtime Compute for Apache Flink e OSS, crie uma instância Flink totalmente gerenciada. Para mais informações sobre como criar essa instância, consulte Ativar Flink totalmente gerenciado.

  • O DataWorks está ativado.

  • O DLF está ativado.

  • Um projeto MaxCompute foi criado. Este projeto não deve ser um projeto externo.

    O exemplo a seguir mostra um projeto MaxCompute chamado doc_test_prod pertencente à região China (Shanghai).

Limites

A solução de data lakehouse baseada no mecanismo de armazenamento Delta Lake ou Apache Hudi possui os seguintes limites:

  • Há suporte à solução nas regiões China (Hangzhou), China (Shanghai), China (Beijing), China (Zhangjiakou), China (Shenzhen), China (Hong Kong), Singapura e Alemanha (Frankfurt).

  • O MaxCompute deve estar implantado na mesma região que o DLF, o OSS e o ApsaraDB RDS ou Realtime Compute for Apache Flink.

  • O MaxCompute permite ler todas as colunas em arquivos Apache Hudi ou Delta Lake. Não há suporte a operações como leituras incrementais de dados, leituras de snapshot e gravações de dados.

Mecanismo de armazenamento Delta Lake ou Apache Hudi baseado em DLF, ApsaraDB RDS e OSS

Procedimento

  1. Etapa 1: Conceder permissões ao MaxCompute para acessar o DLF e o OSS

    Conceda permissões de acesso ao DLF e ao OSS para a conta da Alibaba Cloud que gerencia o projeto MaxCompute.

  2. Etapa 2: Criar um bucket e uma pasta no OSS

    Crie um bucket do OSS para servir como caminho de armazenamento unificado para os data lakes.

  3. Etapa 3: Preparar os dados para ingestão nos data lakes

    Crie um banco de dados ApsaraDB RDS e prepare os dados para ingestão nos data lakes.

  4. Etapa 4: Adicionar uma source de dados ao DLF e criar um metadatabase

    Adicione o ApsaraDB RDS como source de dados para o DLF.

  5. Etapa 5: Criar e iniciar uma tarefa de ingestão de dados no console DLF

    Crie uma tarefa de ingestão de dados no console DLF para sincronizar dados de tabelas do banco de dados ApsaraDB RDS e reproduzir esses dados em um data lake em tempo real.

  6. Etapa 6: Analisar dados em um data lake com base no MaxCompute

    Crie um projeto externo na página Lake and Warehouse Integration (Data Lakehouse) no console DataWorks para analisar os dados em um data lake.

Etapa 1: Conceder permissões ao MaxCompute para acessar o DLF e o OSS

A conta da Alibaba Cloud que gerencia o projeto MaxCompute não consegue acessar o DLF ou o OSS sem autorização. Utilize um dos métodos abaixo para autorizar a conta:

  • Autorização com um clique: utilize este método se a mesma conta gerenciar o projeto MaxCompute, o DLF e o OSS. Recomendamos clicar em Authorize DLF and OSS para conceder as permissões rapidamente.

  • Autorização personalizada: use esta opção caso contas diferentes gerenciem o projeto MaxCompute, o DLF e o OSS, ou se for necessária uma configuração manual. Para mais detalhes, consulte Autorização personalizada.

Etapa 2: Criar um bucket e uma pasta no OSS

Crie um bucket do OSS para servir como caminho de armazenamento unificado para os data lakes.

  1. Faça login no console OSS.

  2. No painel de navegação à esquerda, clique em Buckets. Na página Buckets, clique em Create Bucket.

  3. No painel Create Bucket, configure o parâmetro Bucket Name, selecione uma região e clique em Create. Por exemplo, defina o parâmetro Bucket Name como mc-dlf-oss e selecione a região China (Shanghai) na lista suspensa Region.

    创建Bucket

  4. Na página Buckets, clique no nome do bucket criado para acessar a página Objects.

  5. No lado direito da página, clique em Create Directory. No painel Create Directory, especifique o Directory Name, como datalaketest, e clique em OK.

    创建目录

Etapa 3: Preparar os dados para ingestão nos data lakes

Configure um banco de dados ApsaraDB RDS, crie uma tabela e prepare os dados para ingestão nos data lakes.

  1. Acesse a página Instances no console ApsaraDB RDS. Na barra de navegação superior, selecione uma região, como China (Shanghai). Em seguida, clique no ID da instância desejada na lista. Neste exemplo, utiliza-se uma instância ApsaraDB RDS for MySQL.

  2. Crie uma conta de banco de dados ApsaraDB RDS. No painel de navegação à esquerda da página de detalhes da instância, clique em Accounts. Na aba User Account, clique em Create Account. No painel Create Account, configure os parâmetros e clique em OK. A tabela a seguir descreve os parâmetros.

    创建账号

    Parâmetro

    Descrição

    Exemplo

    Database Account

    Conta utilizada para acessar o banco de dados ApsaraDB RDS. Essa informação é associada ao banco de dados durante sua criação.

    datalake_mcdbuser

    Account Type

    Tipo da conta. Valores válidos:

    • Standard Account: associe esta conta ao banco de dados ApsaraDB RDS.

    • Privileged Account: possui permissões sobre todos os bancos de dados na instância ApsaraDB RDS. Não é preciso conceder permissões específicas para bancos individuais.

    Standard Account

    New Password

    Senha da conta.

    Nenhum

    Confirm Password

    Confirme a senha da conta.

    Nenhum

    Para mais informações sobre os parâmetros, consulte Criar bancos de dados e contas para uma instância ApsaraDB RDS for MySQL.

  3. Crie um banco de dados ApsaraDB RDS. No painel de navegação à esquerda da página de detalhes da instância, clique em Databases. No lado direito da página, clique em Create Database. No painel Create Database, configure os parâmetros e clique em Create. A tabela a seguir descreve os parâmetros.

    Parâmetro

    Descrição

    Database Name

    • 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 (_) ou hifens (-).

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

    Nota

    Se o nome do banco de dados contiver um hífen (-), o nome da pasta correspondente ao banco criado substituirá o hífen (-) por @002d.

    Supported Character Set

    Selecione um conjunto de caracteres conforme necessário.

    Authorized By

    Selecione a conta que precisa acessar este banco de dados. Este parâmetro pode ficar vazio, sendo possível vincular contas após a criação do banco. Para mais informações, consulte Modificar permissões de conta.

    Nota

    Apenas contas padrão aparecem aqui, pois contas privilegiadas possuem automaticamente todas as permissões em todos os bancos de dados, dispensando autorização.

    Description

    Opcional. Utilizado para adicionar observações sobre o banco de dados, facilitando o gerenciamento posterior. Permite até 256 caracteres.

  4. Crie uma tabela no banco de dados ApsaraDB RDS e insira uma pequena quantidade de dados de teste. Para mais informações, consulte Usar o DMS para fazer login em uma instância ApsaraDB RDS for MySQL. Neste exemplo, cria-se uma tabela chamada anti_fraud_result. Comandos de exemplo:

    CREATE TABLE `anti_fraud_result` (
      `transactionid` varchar(32) NOT NULL,
      `uid` varchar(32) DEFAULT NULL,
      `card` varchar(32) DEFAULT NULL,
      `longitude` double(12,8) DEFAULT '12.00000000',
      `latitude` double(12,8) DEFAULT '12.00000000',
      PRIMARY KEY (`transactionid`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    ;
    
    INSERT INTO `anti_fraud_result` values ("12489571","82005","123123",3.14592040,101.12315432);
    INSERT INTO `anti_fraud_result` values ("12489572","82005","123123",3.14592040,101.12315432);
    INSERT INTO `anti_fraud_result` values ("12489573","82005","123123",3.14592040,101.12315432);
    INSERT INTO `anti_fraud_result` values ("12489574","82005","123123",3.14592040,101.12315432);

(Opcional) Etapa 4: Adicionar uma source de dados ao DLF e criar um metadatabase

Importante

Esta etapa é obrigatória caso você pretenda usar a sincronização em lote de tabela única na Etapa 5: Criar e iniciar uma tarefa de ingestão de dados no console DLF. Se optar pela sincronização de banco de dados em tempo real, pule esta etapa.

Crie um metadatabase para gerenciar os dados dos data lakes no DLF.

  1. Faça login no console DLF. Na barra de navegação superior, selecione uma região, como China (Shanghai).

  2. Crie um metadatabase, por exemplo, o metadatabase datalake.

    1. No painel de navegação à esquerda do console DLF, escolha Metadata > Metadata. Na aba Database da página Metadata, clique em Create Database.

    2. Na página Create Database, configure os parâmetros. A tabela a seguir descreve cada um deles.

      Parâmetro

      Descrição

      Exemplo

      Catalog

      Nome do catálogo de banco de dados onde os dados estão armazenados.

      default

      Database Name

      Nome do metadatabase de destino.

      dlf_db

      Database Description

      Descrição do metadatabase a ser criado.

      Data lakehouse

      Select Path

      Diretório do OSS onde o arquivo de dados será salvo. O diretório deve seguir o formato oss://<Nome do Bucket>/<Nome do diretório OSS>.

      oss://doc-test-01/datalake/

    3. Clique em OK.

Etapa 5: Criar e iniciar uma tarefa de ingestão de dados no console DLF

O recurso de ingestão de dados do DLF não recebe mais atualizações. Utilize um dos métodos abaixo para ingerir dados nos data lakes como arquivos Delta Lake ou Apache Hudi.

Importante
  • Para ingerir dados como arquivos Delta Lake, selecione a solução de sincronização em lote de tabela única.

  • Recomendamos a solução de sincronização de banco de dados em tempo real para ingerir dados como arquivos Apache Hudi. Também é possível usar a sincronização em lote de tabela única para ingerir dados como arquivos Apache Hudi não particionados. Nesse caso, não é necessário criar uma tarefa de sincronização em lote na página DataStudio do console DataWorks. Crie diretamente uma tarefa para injecting all data from relational databases into a data lake. Para mais detalhes, veja a descrição sobre conversão de formato de dados do OSS neste tópico.

Sincronização em lote de tabela única

Na página DataStudio do console DataWorks, crie uma tarefa de sincronização em lote para ingerir dados no data lake.

  1. Crie uma tarefa de sincronização em lote.

    1. Prepare uma source de dados ApsaraDB RDS for MySQL.

      Configure o ApsaraDB RDS for MySQL no DataWorks. Para mais informações, consulte Adicionar uma source de dados MySQL.

    2. Prepare uma source de dados OSS.

      Configure uma source de dados OSS no DataWorks. Para mais informações, consulte Adicionar uma source de dados OSS.

    3. Crie e execute uma tarefa de sincronização de dados.

      Na página DataStudio do console DataWorks, crie uma tarefa de sincronização em lote. Para mais informações, consulte Configuração de UI sem código. O conteúdo a seguir descreve os principais parâmetros que devem ser configurados.

      1. Configure as conexões de rede e os grupos de recursos.image..png

        Parâmetro

        Descrição

        Source

        Source

        Selecione MySQL.

        Data Source Name

        Selecione o nome da source de dados ApsaraDB RDS for MySQL criada.

        Resource Group

        Resource Group

        Selecione o grupo de recursos exclusivo para Data Integration.

        Destination

        Destination

        Selecione OSS.

        Data Source Name

        Selecione a source de dados OSS criada.

      2. Configure a tarefa.

        Na etapa Configure tasks, especifique os parâmetros Table e File name (including path).

        Parâmetro

        Descrição

        Table

        Selecione o nome da tabela criada no banco de dados ApsaraDB RDS.

        File name (including path)

        O nome do arquivo deve seguir o formato <Diretório de arquivo criado no OSS>/<Nome do arquivo de dados a ser exportado para o OSS>.

        Exemplo: doc-test-01/datalake/anti.csv.

      3. Clique no ícone image..png no canto superior esquerdo da página de configuração da tarefa de sincronização em lote para salvar a configuração e, em seguida, clique no ícone image..png para executar a tarefa.

      4. Após a execução bem-sucedida da tarefa no DataWorks, verifique se os dados foram importados para o diretório do OSS.

  2. Converta o formato dos dados do OSS e ingira-os no data lake.

    1. Faça login no console DLF. Na barra de navegação superior, selecione uma region.

    2. No painel de navegação à esquerda, escolha Data Ingestion > Ingestion Tasks.

    3. Na página Data Ingestion Tasks, clique em Create Ingestion Task. Na página exibida, selecione OSS Data Format Conversion e clique em Next.

      Nota

      Para converter o formato dos dados para Apache Hudi, defina Task Type como RDS Full Data Ingestion.

    4. Na página seguinte, configure os parâmetros descritos na tabela abaixo, mantenha os valores padrão dos demais parâmetros e clique em OK.

      OSS Data Format Conversion

      Seção

      Parâmetro

      Descrição

      Exemplo

      Configure Data Source

      OSS Storage Path

      Diretório do OSS onde a source de dados está armazenada. Deve seguir o formato oss://<Nome do Bucket>/<Nome do diretório OSS>/.

      oss:/doc-test-01/datalake/

      Storage Format

      Formato de dados da tabela de origem.

      CSV

      Configure Destination Data Lake

      Destination database

      Banco de dados que armazena a tabela de destino.

      datalake

      Destination Table Name

      Nome da tabela criada para o job.

      anti_rds

      Storage Format

      Formato de dados da tabela de destino.

      Delta

      Data Lake Storage Location

      Diretório do OSS onde os dados serão armazenados. Deve seguir o formato oss://<Nome do Bucket>/<Nome do diretório OSS>/.

      oss:/doc-test-01/dlf/

      Configure Task Information

      Task Instance Name

      Nome da tarefa de ingestão de dados.

      Conversão de Formato Delta para Ingestão de Dados do OSS

      Maximum Resource Parallelism

      Número máximo de nós workers que podem rodar simultaneamente. O DLF inicia nós workers para concluir a ingestão de dados.

      20

      RDS Full Data Ingestion

      Seção

      Parâmetro

      Descrição

      Exemplo

      Configure Data Source

      Data Sources

      Exibe instâncias RDS na mesma região e sob a mesma conta. Selecione a source de dados alvo na lista suspensa.

      Nenhum

      Table Path

      Caminho da tabela de origem a ser sincronizada. Formato: <nome_do_banco>/<nome_da_tabela>.

      Nenhum

      Configure Destination Data Lake

      Destination database

      Banco de dados que armazena a tabela de destino.

      database_1

      Destination Table Name

      Nome da tabela criada para o job.

      anti_rds

      Storage Format

      Formato de dados da tabela de destino.

      Hudi

      Data Lake Storage Location

      Diretório do OSS onde os dados serão armazenados. Deve seguir o formato oss://<Nome do Bucket>/<Nome do diretório OSS>/.

      oss:/doc-test-01/dlf/

      Partition Information

      Permite adicionar partições. Os dados gravados no data lake são usados como partição.

      Nenhum

      Configure Task Information

      Task Instance Name

      Nome da tarefa de ingestão de dados.

      Ingestão de Dados Completos no Formato Apache Hudi em Bancos Relacionais

      Maximum Resource Parallelism

      Número máximo de nós workers que podem rodar simultaneamente. O DLF inicia nós workers para concluir a ingestão de dados.

      20

    5. Na página Data Ingestion Tasks do console DLF, localize a tarefa criada, clique em Run na coluna Actions e confirme com OK para iniciar a tarefa.

      1. Quando o progress da tarefa atingir 100%, a conversão de formato dos dados do OSS estará concluída.

      2. Clique na aba Database da página Metadata e selecione o nome do banco de dados de destino. Na aba Table List, verifique se a tabela foi criada.

  3. Sincronização de banco de dados em tempo real

    No módulo Data Integration do DataWorks, crie uma tarefa de sincronização de banco de dados em tempo real para ingerir dados no formato Apache Hudi no data lake. Para mais informações, consulte Sincronizar um banco de dados MySQL inteiro para um data lake OSS. O conteúdo a seguir descreve os principais parâmetros a serem configurados.

    1. Prepare uma source de dados ApsaraDB RDS for MySQL.

      Configure o ApsaraDB RDS for MySQL no DataWorks. Para mais informações, consulte Adicionar uma source de dados MySQL.

    2. Prepare uma source de dados OSS.

      Configure uma source de dados OSS no DataWorks. Para mais informações, consulte Adicionar uma source de dados OSS.

    3. Na página da tarefa de sincronização, configure os seguintes parâmetros.

      1. Configure as conexões de rede e os grupos de recursos.

        Parâmetro

        Descrição

        Source

        Source

        Selecione MySQL.

        Data Source Name

        Selecione o nome da source de dados ApsaraDB RDS for MySQL criada.

        Resource Group

        Resource Group for Data Synchronization

        Selecione o grupo de recursos exclusivo para Data Integration.

        Destination

        Destination

        Selecione OSS.

        Data Source Name

        Selecione a source de dados OSS criada.

      2. Selecione as tabelas das quais deseja sincronizar dados.

        • No lado esquerdo da página de configuração, especifique uma condição de filtro para buscar os bancos de dados e tabelas de origem.

        • No lado direito da página de configuração, visualize os bancos de dados e tabelas selecionados para sincronização.

        Siga as orientações abaixo para selecionar rapidamente os bancos e tabelas desejados, conforme a quantidade de fontes:

        • Para sincronizar dados de poucos bancos e tabelas, selecione-os manualmente durante a visualização das fontes e mova-os para a lista de selecionados. O sistema adicionará automaticamente uma condição de filtro no lado esquerdo da página.

        • Caso precise sincronizar dados de múltiplas fontes, bancos e tabelas, especifique manualmente uma condição de filtro para localizar os objetos desejados. Também é possível usar palavras-chave na caixa de busca no lado direito para encontrar, adicionar ou remover bancos e tabelas.

      3. Configure a tarefa de ingestão de dados.

        • OSS Storage Path: selecione o caminho do OSS onde os dados sincronizados serão armazenados.

        • Location For Creating Metadatabase: selecione DLF.

        • Prefix For Metadatabase Name: o sistema cria automaticamente um metadatabase com base no nome do banco de origem. Especifique um prefixo personalizado, que será adicionado automaticamente aos metadatabases e metatabelas criados.

        • Data Lake Format: selecione Hudi.

        • Partition Information

        • Especifique as partições onde os dados sincronizados serão armazenados. Durante a execução da tarefa, os dados são gravados na partição correspondente com base no horário de escrita no OSS. Ao definir partições, observe os seguintes pontos:

          • Variáveis suportadas: ${yyyy}, ${MM}, ${dd} e ${HH}. A precisão temporal chega apenas à hora.

          • É possível concatenar variáveis com strings. Por exemplo, una variáveis com sublinhados (_) para formar uma string como ${yyyy}_${MM}_${dd}_${HH}.

          • Vários níveis de partição são permitidos, permitindo a escrita em tabelas multiparticcionadas. A hierarquia das partições deve respeitar a ordem especificada.

    4. Clique em Complete e confirme com OK.

    5. Localize a tarefa de sincronização criada e clique em Start na coluna Actions. Em seguida, acompanhe o status da tarefa.

    6. Após o sucesso da sincronização, faça login no console DLF e escolha Metadata > Metadata no painel de navegação à esquerda. Na página Metadata, clique no nome do banco de dados recém-gerado. Na aba Table List, visualize as tabelas criadas.

    Etapa 6: Analisar dados em um data lake com base no MaxCompute

    Crie um projeto externo com base no projeto MaxCompute, no metadatabase DLF e no bucket OSS existentes. Esse projeto externo é mapeado para o projeto MaxCompute, vinculando-o ao OSS e ao DLF. Assim, o projeto MaxCompute pode analisar os dados do projeto externo. Apenas o proprietário do projeto MaxCompute ou usuários com a função Admin ou Super_Administrator podem criar projetos externos.

    Nota

    Atribua a função Super_Administrator no nível de tenant a um usuário na aba Users do console MaxCompute. Somente a conta da Alibaba Cloud ou um usuário RAM com a função Super_Administrator no nível de tenant pode atribuir funções. Para mais detalhes, veja a seção "Atribuir uma função a um usuário" em Realizar controle de acesso com base em funções no nível de projeto.

    1. Crie um projeto externo no console DataWorks.

      1. Faça login no console DataWorks. Na barra de navegação superior, selecione a região China (Shanghai).

      2. No painel de navegação à esquerda do console DataWorks, escolha More > Lake and Warehouse Integration (Data Lakehouse).

      3. Na página Lake and Warehouse Integration (Data Lakehouse), clique em Start.

      4. Na página Create Data Lakehouse, configure os parâmetros. As tabelas a seguir detalham cada campo.

        Tabela 1. Parâmetros na etapa Create Data Warehouse

        Parâmetro

        Descrição

        External Project Name

        ext_dlf_delta

        MaxCompute Project

        ms_proj1

        Tabela 2. Parâmetros na etapa Create Data Lake Connection

        Parâmetro

        Descrição

        Heterogeneous Data Platform Type

        Selecione Alibaba Cloud DLF + OSS na lista suspensa.

        Nenhum

        Alibaba Cloud DLF + OSS

        External Project Description

        Nenhum

        Region Where DLF Is Activated

        cn-shanghai

        DLF Endpoint

        dlf-share.cn-shanghai.aliyuncs.com

        DLF Database Name

        datalake

        DLF RoleARN

        Nenhum

      5. Clique em Create. Na página seguinte, clique em Preview.

        Se for possível visualizar as informações das tabelas no banco de dados DLF, a operação foi bem-sucedida.

      Nota

      Esta etapa descreve a criação de um projeto externo via console DataWorks. Para criar um projeto externo usando comandos SQL, consulte Usar instruções SQL para gerenciar um projeto externo.

    2. Na página Ad Hoc Query do console DataWorks, visualize as tabelas do projeto externo.

      Comando de exemplo:

      show tables in ext_dlf_delta;

      O resultado retornado é:

      ALIYUN$***@aliyun.com:anti_rds
      Nota

      Para mais informações sobre o recurso de consulta ad hoc fornecido pelo DataStudio do DataWorks, consulte Usar consultas ad hoc para executar SQL (Opcional).

    3. Na página Ad Hoc Query do console DataWorks, consulte os dados das tabelas do projeto externo.

      Nota

      Se o resultado da consulta apresentar caracteres ilegíveis, resolva o problema seguindo as instruções da seção "Como lidar com erros de dados incorretos causados por problemas de configuração de codificação ou caracteres ilegíveis?" em FAQ sobre sincronização em lote.

      • Comando de exemplo:

        select * from ext_dlf_delta.anti_rds;
      • A figura a seguir mostra o resultado retornado.image..png

    Mecanismo de armazenamento Apache Hudi baseado em DLF, Realtime Compute for Apache Flink e OSS

    Procedimento

    1. Etapa 1: Conceder permissões ao MaxCompute para acessar o DLF e o OSS

      Conceda permissões de acesso ao DLF e ao OSS para a conta da Alibaba Cloud que gerencia o projeto MaxCompute.

    2. Etapa 2: Criar um bucket e uma pasta no OSS

      Crie um bucket do OSS para servir como caminho de armazenamento unificado para os data lakes.

    3. Etapa 3: Preparar os dados para ingestão nos data lakes

      Crie tabelas temporárias e prepare os dados a serem ingeridos nos data lakes no console Realtime Compute for Apache Flink.

    4. Etapa 4: Adicionar uma source de dados ao DLF e criar um metadatabase

      Adicione uma source de dados ao DLF e crie um metadatabase.

    5. Etapa 5: Criar e iniciar uma tarefa de extração de metadados no console DLF

      Crie uma tarefa de extração de metadados no console DLF para extrair dados de tabelas no diretório OSS para o data lake.

    6. Etapa 6: Analisar dados em um data lake com base no MaxCompute

      Crie um projeto externo na página Lake and Warehouse Integration (Data Lakehouse) no console DataWorks para analisar os dados em um data lake.

    Etapa 1: Conceder permissões ao MaxCompute para acessar o DLF e o OSS

    A conta da Alibaba Cloud que gerencia o projeto MaxCompute não consegue acessar o DLF ou o OSS sem autorização. Utilize um dos métodos abaixo para autorizar a conta:

    • Autorização com um clique: utilize este método se a mesma conta gerenciar o projeto MaxCompute, o DLF e o OSS. Recomendamos clicar em Authorize DLF and OSS para conceder as permissões rapidamente.

    • Autorização personalizada: use esta opção caso contas diferentes gerenciem o projeto MaxCompute, o DLF e o OSS, ou se for necessária uma configuração manual. Para mais detalhes, consulte Autorização personalizada.

    Etapa 2: Criar um bucket e uma pasta no OSS

    Crie um bucket do OSS para servir como caminho de armazenamento unificado para os data lakes.

    1. Faça login no console OSS.

    2. No painel de navegação à esquerda, clique em Buckets. Na página Buckets, clique em Create Bucket.

    3. No painel Create Bucket, configure o parâmetro Bucket Name, selecione uma região e clique em Create. Por exemplo, defina o parâmetro Bucket Name como mc-dlf-oss e selecione a região China (Shanghai) na lista suspensa Region.

      创建Bucket

    4. Na página Buckets, clique no nome do bucket criado para acessar a página Objects.

    5. No lado direito da página, clique em Create Directory. No painel Create Directory, especifique o Directory Name, como datalaketest, e clique em OK.

      创建目录

    Etapa 3: Preparar os dados para ingestão nos data lakes

    Utilize o conector Hudi para criar tabelas temporárias e preparar os dados a serem ingeridos nos data lakes no console Realtime Compute for Apache Flink. Para mais informações, consulte Job Flink SQL.

    1. Acesse a lista de instâncias no console Realtime Compute for Apache Flink. Na barra de navegação superior, selecione a região onde a instância está localizada. Em seguida, clique no ID da instância.

    2. No painel de navegação à esquerda, escolha Development > ETL. Clique em New para criar um rascunho de stream em branco e clique em Next.

    3. Na caixa de diálogo New Draft, especifique as informações do job e clique em Create.

    4. Insira os seguintes comandos no editor SQL. Para mais detalhes sobre a sintaxe, consulte Hudi (em descontinuação).

      -- Create a temporary table named datagen as the data source. 
      CREATE TEMPORARY TABLE datagen(
        id INT NOT NULL PRIMARY KEY NOT ENFORCED,
        data  STRING,
        ts TIMESTAMP(3)
      ) WITH (
        'connector' = 'datagen' ,
        'rows-per-second'='100' 
      );
      
      -- Create a temporary table named flink_hudi_tbl as the result table. The data store points to OSS and the data is stored in the Apache Hudi format.
      CREATE TEMPORARY TABLE flink_hudi_tbl (
        id INT NOT NULL PRIMARY KEY NOT ENFORCED,
        data STRING,
        ts TIMESTAMP(3)
      ) WITH (
        'connector' = 'hudi', 
        'oss.endpoint' = 'oss-cn-beijing-internal.aliyuncs.com', 
        'accessKeyId' = '${secret_values.ak_id}', 
        'accessKeySecret' = '${secret_values.ak_secret}', 
        'path' = 'oss://<yourOSSBucket>/<Custom storage location>',
        'table.type' = 'MERGE_ON_READ',
        'hive_sync.enable' = 'true',
        'hive_sync.mode' = 'hms',
        'hive_sync.db' = 'flink_hudi',
        'hive_sync.table' = 'flink_hudi_tbl',
        'dlf.catalog.region' = 'cn-beijing',
        'dlf.catalog.endpoint' = 'dlf-vpc.cn-beijing.aliyuncs.com'
      );
      
      -- Write data from the source table to the result table.
      INSERT INTO flink_hudi_tbl SELECT * from datagen;

      Parâmetros

      Parâmetro

      Descrição

      oss.endpoint

      Endpoint interno da região onde a instância Flink reside. Para mais informações sobre endpoints de cada região, consulte Regiões e Endpoints.

      accessKeyId

      AccessKey ID da sua conta da Alibaba Cloud.

      accessKeySecret

      AccessKey secret da sua conta da Alibaba Cloud.

      path

      Caminho do bucket OSS.

      dlf.catalog.region

      Região do Alibaba Cloud DLF. Para mais informações, consulte Data Lake Formation: Regiões e endpoints suportados.

      dlf.catalog.endpoint

      Endpoint do DLF. Para mais informações, consulte Data Lake Formation: Regiões e endpoints suportados.

      Nota

      Recomendamos definir este parâmetro como o endpoint de virtual private cloud (VPC) do DLF. Se selecionar a região China (Hangzhou), defina como dlf-vpc.cn-hangzhou.aliyuncs.com.

    5. Execute uma verificação de sintaxe e implante o rascunho. Para mais informações, consulte as Etapas 4 e 6 em Job Flink SQL.

      1. No canto superior direito da página SQL Editor, clique em Validate para verificar a sintaxe. Se a validação for aprovada, uma mensagem de success será exibida.

      2. No canto superior direito da página SQL Editor, clique em Deploy. Na caixa de diálogo Deploy draft, configure os parâmetros relevantes e clique em Confirm.

    6. Inicie a implantação do rascunho e visualize o resultado. Para mais informações, consulte a Etapa 7 em Job Flink SQL.

      1. No painel de navegação à esquerda, clique em Deployments.

      2. Localize a implantação desejada e clique em Start na coluna Actions. Na caixa de diálogo Start Job, selecione Initial Mode e clique em Start. Quando o status da implantação mudar para RUNNING, a execução está ocorrendo conforme esperado.

      3. Na página Deployments, visualize o resultado da computação.

    7. Após a implantação iniciar e rodar por algum tempo, faça login no console OSS e verifique os arquivos de dados gravados no diretório.

    Etapa 4: Adicionar uma source de dados ao DLF e criar um metadatabase

    Crie um metadatabase para gerenciar os dados dos data lakes no DLF.

    1. Faça login no console DLF. Na barra de navegação superior, selecione uma região.

    2. Crie um metadatabase, por exemplo, o metadatabase datalake.

      1. No painel de navegação à esquerda do console DLF, escolha Metadata > Metadata. Na aba Database da página Metadata, clique em Create Database.

      2. Na caixa de diálogo Create Database, configure os parâmetros. A tabela a seguir descreve cada um deles.

        Parâmetro

        Descrição

        Exemplo

        Catalog

        Nome do catálogo de banco de dados onde os dados estão armazenados.

        default

        Database Name

        Nome do metadatabase de destino.

        dlf_db

        Database Description

        Descrição do metadatabase a ser criado.

        Data lakehouse

        Select Path

        Diretório do OSS onde o arquivo de dados será salvo. O diretório deve seguir o formato oss://<Nome do Bucket>/<Nome do diretório OSS>.

        oss://doc-test-01/datalake/

      3. Clique em OK.

    Etapa 5: Criar e iniciar uma tarefa de extração de metadados no console DLF

    1. No painel de navegação à esquerda do console DLF, escolha Metadata > Metadata Discovery.

    2. Na página Metadata Discovery, clique em Create Extraction Task na aba Extraction Task.

    3. Na página Create Extraction Task, configure os parâmetros relevantes. Para mais informações, consulte Descoberta de metadados.

    4. Clique em Save and Execute.

    5. Visualize a tabela de metadados. Quando o execution progress da tarefa de extração atingir 100%, clique em Metadata no painel de navegação à esquerda. Na aba Table List, visualize os detalhes da tabela.

    6. Consulte os dados da tabela. No painel de navegação à esquerda, clique em Data Exploration. Na página exibida, execute comandos SQL para consultar os dados da tabela.

    Etapa 6: Analisar dados em um data lake com base no MaxCompute

    Para mais informações, consulte a Etapa 6: Analisar dados em um data lake com base no MaxCompute neste tópico.

    Referências