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:
Adicionar três fontes de dados (HttpFile, MySQL, OSS) a um workspace do DataWorks
Criar um workflow com dois nós de sincronização em lote
Configurar os nós para sincronizar dados de usuários e logs de acesso no OSS
Criar tabelas externas do EMR Hive mapeadas para os dados no OSS
Executar o workflow e verificar os resultados com consultas ad hoc
Nós criados neste tutorial:
|
Nome do nó |
Tipo |
Finalidade |
|
|
Zero-Load Node |
Aciona o workflow diariamente |
|
|
Offline synchronization |
Sincroniza dados de usuários do MySQL no OSS |
|
|
Offline synchronization |
Sincroniza logs de acesso HttpFile no OSS |
|
|
EMR Hive |
Cria uma tabela externa para dados de usuários |
|
|
EMR Hive |
Cria uma tabela externa para logs de acesso |
Pré-requisitos
Antes de começar, verifique se você tem:
Um ambiente preparado. Consulte Preparar ambientes.
Uma regra de grupo de segurança adicionada no console do Elastic Compute Service (ECS) que permita a conexão da porta
10000da instância ECS com o DataWorks. Defina o Authorization Object como o bloco CIDR do vSwitch associado ao grupo de recursos. Consulte Adicionar uma regra de grupo de segurança.
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
-
Acesse a página Data Sources.
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.
No painel de navegação à esquerda da página SettingCenter, clique em Data Sources.
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.
-
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_httpfileData 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 -
Localize o grupo de recursos desejado e clique em Test Network Connectivity nas colunas Connection Status (Development Environment) e Connection Status (Production Environment).
ImportantePelo 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.
Clique em Complete Creation.
Adicionar uma fonte de dados MySQL
No painel de navegação à esquerda da página SettingCenter, clique em Data Sources. No canto superior esquerdo, clique em Add Data Source.
Na caixa de diálogo Add Data Source, selecione MySQL.
-
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_mysqlData 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:3306Database Name
workshopUsername
workshopPassword
workshop#2017Authentication Method
No Authentication
Localize o grupo de recursos desejado e clique em Test Network Connectivity nas colunas Connection Status (Development Environment) e Connection Status (Production Environment).
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.
No painel de navegação à esquerda da página SettingCenter, clique em Data Sources. No canto superior esquerdo, clique em Add Data Source.
Na caixa de diálogo Add Data Source, selecione OSS.
-
Na página Add OSS Data Source, configure os parâmetros abaixo.
ImportanteO 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_gAccess 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.comBucket
dw-emr-demo(o bucket criado durante a preparação do ambiente) -
Encontre o grupo de recursos desejado e clique em Test Network Connectivity nas colunas Connection Status (Development Environment) e Connection Status (Production Environment).
NotaPelo 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.
Clique em Complete Creation.
Etapa 2: Criar o workflow
Na página Data Sources, clique no ícone
no canto superior esquerdo e escolha All Products > Data Development And Task Operation > DataStudio.No painel Scheduled Workflow, clique com o botão direito em Business Flow e selecione Create Workflow.
Na caixa de diálogo Create Workflow, defina o Workflow Name como
workshop_emre clique em Create.-
Dê um duplo clique no novo workflow para abrir sua aba de configuração. Crie os seguintes nós:
Clique em Create Node e arraste Zero-Load Node da seção General para a tela. Defina o Name como
workshop_start_emre clique em Confirm.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) eods_user_info_d_2oss_emr(para dados de usuários MySQL). Clique em Confirm para cada um.
-
Na tela do workflow, desenhe linhas direcionadas para tornar
workshop_start_emro nó ancestral de ambos os nós de sincronização em lote.
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.
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.-
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_emrcomo descendente do nó raiz do workspace (chamadoWorkspace name_root). O nó raiz aciona a execução deworkshop_start_emr. 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)
Na página DataStudio, dê um duplo clique em
ods_user_info_d_2oss_emrpara abrir a página de configuração do nó.-
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_mysqlResource Group
Seu grupo de recursos serverless
Destination
OSS — Data Source Name:
test_g -
Configure os detalhes da sincronização.
Parâmetro
Valor
Source: Table
ods_user_info_dSource: Split key
uid(tipo INTEGER; use uma chave primária ou coluna indexada)Destination: Text type
textDestination: 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,20191106quando o workflow executa em 7 de novembro de 2019).Destination: Column Delimiter
``
-
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
bizdatee 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. Clique no ícone
para salvar.
Sincronizar logs de acesso HttpFile no OSS (ods_raw_log_d_2oss_emr)
Na página DataStudio, dê um duplo clique em
ods_raw_log_d_2oss_emrpara abrir a página de configuração do nó.-
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_httpfileResource Group
Seu grupo de recursos serverless
Destination
OSS — Data Source Name:
test_g -
Configure os detalhes da sincronização.
Parâmetro
Valor
Source: File Path
/user_log.txtSource: Text type
textSource: Column Delimiter
``
Source: Compression format
None
Source: Skip Header
No
Destination: Text type
textDestination: 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
``
-
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
bizdatee 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. 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.
No painel Scheduled Workflow, clique no workflow
workshop_emr, clique com o botão direito em EMR e escolha Create Node > EMR Hive.-
Crie dois nós EMR Hive:
ods_user_info_d_emreods_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.
-
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_emre insira o seguinte SQL:NotaO caminho
LOCATIONdeve 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.NotaO caminho
LOCATIONdeve 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
bizdatee 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
para salvar e executar. ods_raw_log_d_emr — tabela de logs de acesso Dê um duplo clique no nó ods_raw_log_d_emre 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
Na página DataStudio, dê um duplo clique no workflow
workshop_emrem Business Flow. Na aba de configuração do workflow, clique no ícone
na barra de ferramentas. O workflow executa todos os nós na ordem de dependência.-
Verifique o status dos nós.
Nós no estado
estão executando normalmente.Se os nós exibirem o estado
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 porta10000e 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
No painel de navegação à esquerda da página DataStudio, clique no ícone
. No painel Ad Hoc Query, clique com o botão direito em Ad Hoc Query e escolha Create Node > EMR Hive.-
Execute as consultas a seguir para confirmar que os dados foram gravados com sucesso. Substitua
<data_timestamp>pela data do dia anterior no formatoyyyymmdd. Por exemplo, se o workflow executou em 7 de novembro de 2019, use20191106.SELECT * FROM ods_user_info_d_emr WHERE dt=<data_timestamp>; SELECT * FROM ods_raw_log_d_emr WHERE dt=<data_timestamp>; -
Para visualizar os logs de execução, clique com o botão direito no nó
ods_user_info_d_emrouods_raw_log_d_emre selecione View Logs. Uma sincronização bem-sucedida apresenta o seguinte aspecto:
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.