Todos os produtos
Search
Central de documentação

E-MapReduce:Sincronizar dados

Última atualização: Sep 17, 2026

Este tutorial ensina a adicionar fontes de dados ao DataWorks, configurar tarefas de sincronização em lote e usar nós do E-MapReduce (EMR) Hive para criar tabelas e consultar os dados sincronizados.

Neste tutorial, você vai:

  1. Adicionar três fontes de dados (HttpFile, MySQL, OSS) a um workspace do DataWorks

  2. Criar um workflow com dois nós de sincronização em lote

  3. Configurar os nós para sincronizar dados de usuários e logs de acesso no OSS

  4. Criar tabelas externas do EMR Hive mapeadas para os dados no OSS

  5. Executar o workflow e verificar os resultados com consultas ad hoc

Nós criados neste tutorial:

Nome do nó

Tipo

Finalidade

workshop_start_emr

Zero-Load Node

Aciona o workflow diariamente

ods_user_info_d_2oss_emr

Offline synchronization

Sincroniza dados de usuários do MySQL no OSS

ods_raw_log_d_2oss_emr

Offline synchronization

Sincroniza logs de acesso HttpFile no OSS

ods_user_info_d_emr

EMR Hive

Cria uma tabela externa para dados de usuários

ods_raw_log_d_emr

EMR Hive

Cria uma tabela externa para logs de acesso

Pré-requisitos

Antes de começar, verifique se você tem:

Etapa 1: Adicionar fontes de dados

Adicione três fontes de dados ao seu workspace do DataWorks: uma fonte HttpFile para logs de acesso ao site, uma fonte MySQL para informações de usuários e um destino OSS para armazenar os dados sincronizados.

Adicionar uma fonte de dados HttpFile

  1. Acesse a página Data Sources.

    1. Faça login no console do DataWorks. Na barra de navegação superior, selecione a região desejada. No painel de navegação à esquerda, escolha More > Management Center. Na página exibida, selecione seu workspace na lista suspensa e clique em Go to Management Center.

    2. No painel de navegação à esquerda da página SettingCenter, clique em Data Sources.

  2. No canto superior esquerdo da página Data Sources, clique em Add Data Source. Na caixa de diálogo Add Data Source, clique em HttpFile.

  3. Na página Add HttpFile Data Source, configure os parâmetros a seguir. Use os valores de exemplo tanto para o ambiente de desenvolvimento quanto para o de produção.

    Parâmetro

    Valor

    Data Source Name

    user_behavior_analysis_httpfile

    Data Source Description

    Esta fonte de dados é somente leitura em cenários de sincronização de dados. Ela serve como source de uma tarefa de sincronização em lote para acessar os dados de teste fornecidos.

    URL

    https://dataworks-workshop-2024.oss-cn-shanghai.aliyuncs.com

  4. Localize o grupo de recursos desejado e clique em Test Network Connectivity nas colunas Connection Status (Development Environment) e Connection Status (Production Environment).

    Importante

    Pelo menos um grupo de recursos deve exibir o status Connected. Caso contrário, não será possível usar a interface visual sem código para configurar uma tarefa de sincronização de dados para esta fonte.

  5. Clique em Complete Creation.

Adicionar uma fonte de dados MySQL

  1. No painel de navegação à esquerda da página SettingCenter, clique em Data Sources. No canto superior esquerdo, clique em Add Data Source.

  2. Na caixa de diálogo Add Data Source, selecione MySQL.

  3. Na página Add MySQL Data Source, configure os seguintes parâmetros. Use os valores de exemplo para ambos os ambientes.

    Parâmetro

    Valor

    Data Source Name

    user_behavior_analysis_mysql

    Data Source Description

    Esta fonte de dados é somente leitura em cenários de sincronização de dados. Ela serve como source de uma tarefa de sincronização em lote para acessar os dados de teste fornecidos.

    Configuration Mode

    Connection String Mode

    Connection Address

    Endereço IP do host: rm-bp1z69dodhh85z9qa.mysql.rds.aliyuncs.com; Porta: 3306

    Database Name

    workshop

    Username

    workshop

    Password

    workshop#2017

    Authentication Method

    No Authentication

  4. Localize o grupo de recursos desejado e clique em Test Network Connectivity nas colunas Connection Status (Development Environment) e Connection Status (Production Environment).

  5. Clique em Complete Creation.

Adicionar uma fonte de dados OSS

Esta fonte de dados OSS funciona como destino para ambas as tarefas de sincronização: as informações de usuários do MySQL e os logs de acesso do HttpFile são gravados aqui.

  1. No painel de navegação à esquerda da página SettingCenter, clique em Data Sources. No canto superior esquerdo, clique em Add Data Source.

  2. Na caixa de diálogo Add Data Source, selecione OSS.

  3. Na página Add OSS Data Source, configure os parâmetros abaixo.

    Importante

    O AccessKey secret é exibido apenas no momento da criação. Se for perdido ou comprometido, exclua o par de chaves e crie um novo.

    Parâmetro

    Valor

    Data Source Name

    test_g

    Access Mode

    AccessKey Mode

    AccessKey ID

    Seu AccessKey ID. Acesse a página AccessKey para copiá-lo.

    AccessKey secret

    Seu AccessKey secret.

    Endpoint

    http://oss-cn-shanghai-internal.aliyuncs.com

    Bucket

    dw-emr-demo (o bucket criado durante a preparação do ambiente)

  4. Encontre o grupo de recursos desejado e clique em Test Network Connectivity nas colunas Connection Status (Development Environment) e Connection Status (Production Environment).

    Nota

    Pelo menos um grupo de recursos deve apresentar o status Connected. Sem isso, a configuração de tarefas de sincronização via interface visual sem código não estará disponível para esta fonte de dados.

  5. Clique em Complete Creation.

Etapa 2: Criar o workflow

  1. Na página Data Sources, clique no ícone 图标 no canto superior esquerdo e escolha All Products > Data Development And Task Operation > DataStudio.

  2. No painel Scheduled Workflow, clique com o botão direito em Business Flow e selecione Create Workflow.

  3. Na caixa de diálogo Create Workflow, defina o Workflow Name como workshop_emr e clique em Create.

  4. Dê um duplo clique no novo workflow para abrir sua aba de configuração. Crie os seguintes nós:

    1. Clique em Create Node e arraste Zero-Load Node da seção General para a tela. Defina o Name como workshop_start_emr e clique em Confirm.

    2. Clique em Create Node e arraste Offline synchronization da seção Data Integration para a tela. Crie dois nós de sincronização em lote: ods_raw_log_d_2oss_emr (para logs HttpFile) e ods_user_info_d_2oss_emr (para dados de usuários MySQL). Clique em Confirm para cada um.

  5. Na tela do workflow, desenhe linhas direcionadas para tornar workshop_start_emr o nó ancestral de ambos os nós de sincronização em lote.

    image

Etapa 3: Configurar os nós

Configurar o nó de acionamento do workflow

O nó zero-load workshop_start_emr aciona a execução diária do workflow.

  1. No painel Scheduled Workflow, dê um duplo clique no nó workshop_start_emr. No painel à direita da aba de configuração do nó, clique em Properties.

  2. Configure as propriedades de agendamento.

    Seção

    Configuração

    Schedule

    Defina o horário de agendamento para 00:30. Configure Rerun como Allow Regardless of Running Status.

    Scheduling dependencies

    Configure workshop_start_emr como descendente do nó raiz do workspace (chamado Workspace name_root). O nó raiz aciona a execução de workshop_start_emr.

  3. Clique no ícone 保存 para salvar.

Configurar nós de sincronização em lote

Sincronizar dados de usuários do MySQL no OSS (ods_user_info_d_2oss_emr)

  1. Na página DataStudio, dê um duplo clique em ods_user_info_d_2oss_emr para abrir a página de configuração do nó.

  2. Defina a source, o grupo de recursos e o destino, depois clique em Next e conclua o teste de conectividade.

    Parâmetro

    Valor

    Source

    MySQL — Data Source Name: user_behavior_analysis_mysql

    Resource Group

    Seu grupo de recursos serverless

    Destination

    OSS — Data Source Name: test_g

  3. Configure os detalhes da sincronização.

    Parâmetro

    Valor

    Source: Table

    ods_user_info_d

    Source: Split key

    uid (tipo INTEGER; use uma chave primária ou coluna indexada)

    Destination: Text type

    text

    Destination: Object Name (Path Included)

    ods_user_info_d/user_${bizdate}/user_${bizdate}.txt — ods_user_info_d é a pasta no bucket OSS; ${bizdate} é substituído pela data do dia anterior durante a execução (por exemplo, 20191106 quando o workflow executa em 7 de novembro de 2019).

    Destination: Column Delimiter

    `

    `

  4. Clique em Properties no painel à direita e configure as definições de agendamento.

    Seção

    Configuração

    Scheduling Parameter

    Clique em Add Parameter. Defina o Parameter Name como bizdate e o Parameter Value como $[yyyymmdd-1].

    Schedule

    Configure Rerun para Allow Regardless of Running Status.

    Dependencies

    Confirme se a tabela de saída segue o formato Workspace name.Node name.

  5. Clique no ícone 保存 para salvar.

Sincronizar logs de acesso HttpFile no OSS (ods_raw_log_d_2oss_emr)

  1. Na página DataStudio, dê um duplo clique em ods_raw_log_d_2oss_emr para abrir a página de configuração do nó.

  2. Defina a source, o grupo de recursos e o destino, em seguida clique em Next e conclua o teste de conectividade.

    Parâmetro

    Valor

    Source

    HttpFile — Data Source Name: user_behavior_analysis_httpfile

    Resource Group

    Seu grupo de recursos serverless

    Destination

    OSS — Data Source Name: test_g

  3. Configure os detalhes da sincronização.

    Parâmetro

    Valor

    Source: File Path

    /user_log.txt

    Source: Text type

    text

    Source: Column Delimiter

    `

    `

    Source: Compression format

    None

    Source: Skip Header

    No

    Destination: Text type

    text

    Destination: Object Name (Path Included)

    ods_raw_log_d/log_${bizdate}/log_${bizdate}.txt — ods_raw_log_d é a pasta no bucket OSS; ${bizdate} é substituído pela data do dia anterior durante a execução.

    Destination: Column Delimiter

    `

    `

  4. Clique em Properties no painel à direita e ajuste as configurações de agendamento.

    Seção

    Configuração

    Scheduling Parameter

    Clique em Add Parameter. Defina o Parameter Name como bizdate e o Parameter Value como $[yyyymmdd-1].

    Schedule

    Configure Rerun para Allow Regardless of Running Status.

    Dependencies

    Verifique se a tabela de saída obedece ao formato Workspace name.Node name.

  5. Clique no ícone 保存 para salvar.

Criar tabelas EMR Hive

Crie duas tabelas externas do EMR Hive — ods_user_info_d_emr e ods_raw_log_d_emr — que apontem para as pastas do OSS onde os dados sincronizados estão armazenados.

  1. No painel Scheduled Workflow, clique no workflow workshop_emr, clique com o botão direito em EMR e escolha Create Node > EMR Hive.

  2. Crie dois nós EMR Hive: ods_user_info_d_emr e ods_raw_log_d_emr. Desenhe linhas de dependência para que ambos os nós EMR Hive executem após a conclusão dos nós de sincronização em lote.

    image

  3. Configure e execute cada nó EMR Hive. ods_user_info_d_emr — tabela de informações de usuário Dê um duplo clique no nó ods_user_info_d_emr e insira o seguinte SQL:

    Nota

    O caminho LOCATION deve corresponder ao valor de Object Name (Path Included) definido no nó ods_user_info_d_2oss_emr. dw-emr-demo é o nome do bucket OSS criado durante a preparação do ambiente. ${bizdate} é substituído pela data do dia anterior durante a execução.

    Nota

    O caminho LOCATION deve corresponder ao valor de Object Name (Path Included) definido no nó ods_raw_log_d_2oss_emr. dw-emr-demo é o nome do bucket OSS criado durante a preparação do ambiente.

    Seção

    Configuração

    Scheduling Parameter

    Defina o Parameter Name como bizdate e o Parameter Value como $[yyyymmdd-1].

    Schedule

    Configure Rerun para Allow Regardless of Running Status.

    Dependencies

    Confirme se a tabela de saída segue o formato Workspace name.Node name.

    Resource Group

    Selecione seu grupo de recursos serverless.

    CREATE EXTERNAL TABLE IF NOT EXISTS ods_user_info_d_emr
    (
        `uid` STRING COMMENT 'The user ID',
        `gender` STRING COMMENT 'The gender',
        `age_range` STRING COMMENT 'The age range',
        `zodiac` STRING COMMENT 'The zodiac sign'
    ) PARTITIONED BY (
      dt STRING
    )
    ROW FORMAT delimited fields terminated by '|'
    LOCATION 'oss://dw-emr-demo/ods_user_info_d/';
    
    ALTER TABLE ods_user_info_d_emr ADD IF NOT EXISTS PARTITION (dt='${bizdate}')
    LOCATION 'oss://dw-emr-demo/ods_user_info_d/user_${bizdate}/';

    Clique em Properties no painel à direita e configure as definições de agendamento: Clique no ícone image para salvar e executar. ods_raw_log_d_emr — tabela de logs de acesso Dê um duplo clique no nó ods_raw_log_d_emr e insira o seguinte SQL:

    -- Create the table used to store website access logs.
    CREATE EXTERNAL TABLE IF NOT EXISTS ods_raw_log_d_emr
    (
      `col` STRING
    ) PARTITIONED BY (
      dt STRING
    );
    ALTER TABLE ods_raw_log_d_emr ADD IF NOT EXISTS PARTITION (dt='${bizdate}')
    LOCATION 'oss://dw-emr-demo/ods_raw_log_d/log_${bizdate}/';

    Aplique as mesmas configurações de agendamento acima, depois salve e execute.

Etapa 4: Executar o workflow e verificar os resultados

Executar o workflow

  1. Na página DataStudio, dê um duplo clique no workflow workshop_emr em Business Flow. Na aba de configuração do workflow, clique no ícone image.png na barra de ferramentas. O workflow executa todos os nós na ordem de dependência.

  2. Verifique o status dos nós.

    • Nós no estado image.png estão executando normalmente.

    • Se os nós exibirem o estado image com o erro "java.net.ConnectException: Connection timed out (Connection timed out)", adicione uma regra de grupo de segurança no console do ECS: permita a porta 10000 e defina o Authorization Object como o bloco CIDR do vSwitch. Para encontrar o bloco CIDR, acesse a página Resource Groups, localize seu grupo de recursos e clique em Network Settings > VPC Binding. Consulte Adicionar uma regra de grupo de segurança.

Verificar os resultados

  1. No painel de navegação à esquerda da página DataStudio, clique no ícone image.png. No painel Ad Hoc Query, clique com o botão direito em Ad Hoc Query e escolha Create Node > EMR Hive.

  2. Execute as consultas a seguir para confirmar que os dados foram gravados com sucesso. Substitua <data_timestamp> pela data do dia anterior no formato yyyymmdd. Por exemplo, se o workflow executou em 7 de novembro de 2019, use 20191106.

    SELECT * FROM ods_user_info_d_emr WHERE dt=<data_timestamp>;
    SELECT * FROM ods_raw_log_d_emr WHERE dt=<data_timestamp>;
  3. Para visualizar os logs de execução, clique com o botão direito no nó ods_user_info_d_emr ou ods_raw_log_d_emr e selecione View Logs. Uma sincronização bem-sucedida apresenta o seguinte aspecto:

    image.png

Próximos passos

Agora que você sincronizou dados no OSS e os tornou consultáveis por meio de tabelas EMR Hive, prossiga para o próximo tutorial para processar e analisar os dados. Consulte Process data.