Todos os produtos
Search
Central de documentação

MaxCompute:Suporte a Delta Lake ou Hudi em clusters Hadoop

Última atualização: Jul 20, 2026

Consulte dados em tempo real em tabelas do Delta Lake ou Apache Hudi em clusters Hadoop usando a arquitetura de data lakehouse do MaxCompute.

Contexto

O MaxCompute oferece suporte aos mecanismos de armazenamento Delta Lake e Apache Hudi por meio de uma arquitetura de data lakehouse executada em clusters Hadoop open source e no Alibaba Cloud E-MapReduce (EMR). A figura a seguir ilustra essa arquitetura.

image..png

Módulo

service da alibaba cloud

Descrição

Hadoop open source

O cluster Hadoop armazena os dados brutos.

Configurar um data lakehouse em um cluster Hadoop

Pré-requisitos

Você deve ter um projeto do MaxCompute existente que não seja um projeto externo. Para mais informações, consulte Create a MaxCompute project.

Limitações

A solução de data lakehouse baseada em clusters Hadoop apresenta as seguintes limitações:

Este recurso está disponível apenas nas seguintes regiões: China (Hangzhou), China (Shanghai), China (Beijing), China (Shenzhen), China (Hong Kong), Singapore e Germany (Frankfurt).

Procedimento

O exemplo a seguir usa um cluster do Alibaba Cloud E-MapReduce (EMR) para demonstrar como construir um data lakehouse.

  1. Step 1: Create an EMR cluster.

    Ignore esta etapa se você já tiver um cluster Hadoop implantado em um data center ou em uma máquina virtual.

  2. Step 2: Prepare data.

    Crie um banco de dados e prepare os dados no cluster.

  3. Step 3: Analyze data from the Hadoop cluster in real time by using MaxCompute.

    No console do DataWorks, crie um projeto externo para analisar os dados no cluster Hadoop.

Etapa 1: Criar um cluster EMR

  1. Crie um cluster Hadoop no console do E-MapReduce.

    Para obter detalhes sobre a criação de um cluster Hadoop, consulte Create an EMR cluster. Configure os parâmetros a seguir e mantenha os valores padrão para os demais.

    Área de configuração

    Parâmetro

    Exemplo

    Descrição

    Configuração de software

    Cenário de negócios

    Custom Cluster

    Selecione um cenário de negócios.

    Versão do product

    EMR-3.43.0

    Selecione uma versão EMR-3.x baseada em Hadoop 2.x e Hive 2.x.

    Serviços opcionais

    Hadoop-Common, HDFS, Hive, YARN, Spark3, DeltaLake, Hudi, ZooKeeper

    Selecione os componentes necessários de Hadoop, HDFS, Hive, Spark, DeltaLake e Hudi. Os service correspondentes aos componentes selecionados são iniciados automaticamente.

    Metadados

    Built-in MySQL

    Selecione Built-in MySQL ou Self-managed RDS.

    • Self-managed RDS: usa uma instância auto gerenciada do ApsaraDB RDS como banco de metadados.

      Ao escolher esta opção, configure os parâmetros de conexão do banco de dados. Para mais informações, consulte Configure a self-managed RDS database.

    • Built-in MySQL: armazena metadados no banco de dados MySQL do ambiente local do cluster.

      Nota

      Esta opção é recomendada apenas para testes. Em ambientes de produção, selecione Self-managed RDS.

  2. Após criar o cluster, clique em Nodes na coluna Actions do cluster desejado.

  3. Na página Nodes, clique no ID do nó alvo no grupo de nós emr-master para acessar o console do ECS.

  4. Escolha uma ferramenta para conectar-se à instância ECS. Para mais informações, consulte Connection methods.

    Nota

    Este tópico usa o Workbench para estabelecer a conexão com a instância. A senha corresponde àquela definida durante a criação do cluster.

Etapa 2: Preparar dados

Após fazer login no cluster, use o Spark SQL para criar tabelas do Delta Lake e do Apache Hudi.

  1. O Alibaba Cloud E-MapReduce Hudi 0.8.0 suporta operações de leitura e escrita em tabelas Hudi via Spark SQL. Para mais informações, consulte Integrate Hudi with Spark SQL. O exemplo abaixo usa uma tabela Apache Hudi. Em um terminal, execute o comando a seguir para iniciar o cliente spark-sql.

    spark-sql \
    --conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer' \
    --conf 'spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension'
  2. Depois de entrar no shell spark-sql, execute os comandos abaixo para criar uma tabela e inserir dados.

    Nota

    Caso nenhum banco de dados seja criado, os dados serão armazenados no banco default.

    -- Create a table.
    CREATE TABLE h0 ( 
      id BIGINT, 
      name STRING, 
      price DOUBLE, 
      ts LONG 
    ) USING hudi
    tblproperties (
      primaryKey="id",
      preCombineField="ts"
    );
    -- Insert data.
    INSERT INTO h0 VALUES (1, 'a1', 10, 1000);
    -- Query the table.
    SELECT id, name, price, ts FROM h0;

Etapa 3: Analisar dados do Hadoop com o MaxCompute

Para analisar dados do seu cluster Hadoop, crie um projeto externo e mapeie-o para o seu projeto existente do MaxCompute. Assim, você pode usar o projeto do MaxCompute para consultar dados no projeto externo. Somente o proprietário do projeto ou um usuário com a função Admin ou Super_Administrator pode criar um projeto externo.

Nota

Atribua a função Super_Administrator no nível de tenant na aba Users do console do MaxCompute. Apenas uma conta da Alibaba Cloud ou um usuário RAM que já possua a função Super_Administrator no nível de tenant tem permissão para atribuir funções. Para mais informações, consulte Assign a role to a user.

  1. Crie um projeto externo no console do DataWorks.

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

    2. No painel de navegação à esquerda, escolha Others > 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, siga as instruções exibidas na tela.

      Tabela 1. Criar Data Lakehouse

      Parâmetro

      Descrição

      External project name

      Exemplo: test_extproject_ddd.

      MaxCompute project

      Exemplo: test_lakehouse.

      Tabela 2. Criar uma conexão externa de data lake

      Parâmetro

      Descrição

      Heterogeneous data platform type

      Selecione Alibaba Cloud E-MapReduce/Hadoop Cluster.

      Network connection

      Escolha uma conexão de rede existente. Para mais informações, consulte Create an external data lake connection.

      External data source

      Selecione uma fonte de dados externa existente. Para mais informações, consulte Create an external data lake connection.

      Tabela 3. Criar um mapeamento de dados

      Parâmetro

      Descrição

      External data source object

      Este campo é preenchido automaticamente com o valor de External Data Source.

      Destination database

      Banco de dados de destino no cluster Hadoop.

    5. Clique em Complete Creation and Preview e, em seguida, clique em Preview. Uma configuração bem-sucedida permite visualizar as tabelas do banco de dados no cluster Hadoop.

      Nota

      O projeto externo é criado no console do DataWorks. Para gerenciar o projeto externo usando SQL, consulte Use SQL statements to manage an external project.

  2. Na página Ad Hoc Query do DataWorks, crie um nó ODPS SQL e visualize as tabelas do projeto externo. Exemplo:

    SHOW TABLES IN test_extproject_ddd;
    -- The following result is returned:
    ALIYUN$***@test.aliyunid.com:h0
    Nota

    Para mais informações sobre como executar consultas ad hoc no DataWorks, consulte Use an ad hoc query node to execute SQL statements (Optional).

  3. Na página Ad Hoc Query do DataWorks, consulte dados de uma tabela no projeto externo. Exemplo:

    SELECT * FROM test_extproject_ddd.h0;
  4. Conecte-se ao cluster Hadoop usando o Workbench, acesse o terminal do Spark SQL e execute a instrução a seguir para atualizar dados na tabela h0:

    INSERT INTO h0 VALUES (2, 'a2', 11, 1000);
  5. Na página Ad Hoc Query do DataWorks, verifique a atualização. Exemplo:

    SELECT * FROM test_extproject_ddd.h0 WHERE id ='2';

Documentos relacionados