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.

Operação | Serviço da Alibaba Cloud | Descrição |
Operações de banco de dados online | Funciona como source de dados para os data lakes. | |
Computação em tempo real | Atua como source de dados para os data lakes. | |
Ingestão de dados | 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 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 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_prodpertencente à 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
-
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.
-
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.
-
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.
-
Etapa 4: Adicionar uma source de dados ao DLF e criar um metadatabase
Adicione o ApsaraDB RDS como source de dados para o DLF.
-
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.
-
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.
Faça login no console OSS.
No painel de navegação à esquerda, clique em Buckets. Na página Buckets, clique em Create Bucket.
-
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-osse selecione a regiãoChina (Shanghai)na lista suspensa Region.
Na página Buckets, clique no nome do bucket criado para acessar a página Objects.
-
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.
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.-
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.
-
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.
NotaSe 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.
NotaApenas 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.
-
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
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.
Faça login no console DLF. Na barra de navegação superior, selecione uma região, como
China (Shanghai).-
Crie um metadatabase, por exemplo, o metadatabase datalake.
No painel de navegação à esquerda do console DLF, escolha > Metadata. Na aba Database da página Metadata, clique em Create Database.
-
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/
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.
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.
-
Crie uma tarefa de sincronização em lote.
-
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.
-
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.
-
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.
-
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
Selecione o grupo de recursos exclusivo para Data Integration.
Destination
Destination
Selecione OSS.
Data Source Name
Selecione a source de dados OSS criada.
-
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. -
Clique no ícone
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
para executar a tarefa. -
Após a execução bem-sucedida da tarefa no DataWorks, verifique se os dados foram importados para o diretório do OSS.
-
-
-
Converta o formato dos dados do OSS e ingira-os no data lake.
Faça login no console DLF. Na barra de navegação superior, selecione uma region.
No painel de navegação à esquerda, escolha Data Ingestion > Ingestion Tasks.
-
Na página Data Ingestion Tasks, clique em Create Ingestion Task. Na página exibida, selecione OSS Data Format Conversion e clique em Next.
NotaPara converter o formato dos dados para Apache Hudi, defina Task Type como RDS Full Data Ingestion.
-
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
-
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.
Quando o progress da tarefa atingir 100%, a conversão de formato dos dados do OSS estará concluída.
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.
-
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.
-
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.
-
Na página da tarefa de sincronização, configure os seguintes parâmetros.
-
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.
-
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.
-
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
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.
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:
-
Clique em Complete e confirme com OK.
Localize a tarefa de sincronização criada e clique em Start na coluna Actions. Em seguida, acompanhe o status da tarefa.
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.
-
Crie um projeto externo no console DataWorks.
Faça login no console DataWorks. Na barra de navegação superior, selecione a região China (Shanghai).
No painel de navegação à esquerda do console DataWorks, escolha .
Na página Lake and Warehouse Integration (Data Lakehouse), clique em Start.
-
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
-
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.
NotaEsta 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.
-
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_rdsNotaPara mais informações sobre o recurso de consulta ad hoc fornecido pelo DataStudio do DataWorks, consulte Usar consultas ad hoc para executar SQL (Opcional).
-
Na página Ad Hoc Query do console DataWorks, consulte os dados das tabelas do projeto externo.
NotaSe 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.

-
-
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.
-
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.
-
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.
-
Etapa 4: Adicionar uma source de dados ao DLF e criar um metadatabase
Adicione uma source de dados ao DLF e crie um metadatabase.
-
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.
-
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.
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.
Faça login no console OSS.
No painel de navegação à esquerda, clique em Buckets. Na página Buckets, clique em Create Bucket.
-
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-osse selecione a regiãoChina (Shanghai)na lista suspensa Region.
Na página Buckets, clique no nome do bucket criado para acessar a página Objects.
-
No lado direito da página, clique em Create Directory. No painel Create Directory, especifique o Directory Name, como datalaketest, e clique em OK.

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.
No painel de navegação à esquerda, escolha . Clique em New para criar um rascunho de stream em branco e clique em Next.
Na caixa de diálogo New Draft, especifique as informações do job e clique em Create.
-
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.
NotaRecomendamos 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.
-
Execute uma verificação de sintaxe e implante o rascunho. Para mais informações, consulte as Etapas 4 e 6 em Job Flink SQL.
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.
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.
-
Inicie a implantação do rascunho e visualize o resultado. Para mais informações, consulte a Etapa 7 em Job Flink SQL.
No painel de navegação à esquerda, clique em Deployments.
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.
Na página Deployments, visualize o resultado da computação.
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.
Faça login no console DLF. Na barra de navegação superior, selecione uma região.
-
Crie um metadatabase, por exemplo, o metadatabase datalake.
No painel de navegação à esquerda do console DLF, escolha > Metadata. Na aba Database da página Metadata, clique em Create Database.
-
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/
Clique em OK.
No painel de navegação à esquerda do console DLF, escolha Metadata > Metadata Discovery.
Na página Metadata Discovery, clique em Create Extraction Task na aba Extraction Task.
Na página Create Extraction Task, configure os parâmetros relevantes. Para mais informações, consulte Descoberta de metadados.
Clique em Save and Execute.
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.
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.
Para utilizar o MaxCompute e clusters Hadoop na construção de uma solução de data lakehouse, consulte Suporte a Delta Lake ou Hudi em clusters Hadoop.
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.
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.
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.
Mecanismo de armazenamento Apache Hudi baseado em DLF, Realtime Compute for Apache Flink e OSS
Procedimento
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:
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.
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.
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.
Etapa 5: Criar e iniciar uma tarefa de extração de metadados no console DLF
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.