Todos os produtos
Search
Central de documentação

DataWorks:Processar dados

Última atualização: Jul 13, 2026

Este tópico descreve como usar nós do MaxCompute no DataWorks para processar a tabela de informações de usuário ods_user_info_d e os dados de log de acesso ods_raw_log_d sincronizados com o MaxCompute, gerando os dados finais de perfil de usuário. Após a leitura, você aprenderá a utilizar o DataWorks e o MaxCompute para calcular e analisar dados sincronizados, concluindo um cenário simples de processamento em um data warehouse.

Pré-requisitos

Antes de começar, conclua as etapas em Sincronizar dados.

Etapa 1: Criar um fluxo de trabalho de processamento de dados

Após sincronizar seus dados com o MaxCompute na etapa de Sincronizar dados, processe-os para gerar um perfil básico de usuário.

  1. No painel de navegação à esquerda do DataStudio, clique no ícone image para abrir a página de desenvolvimento de dados. Na seção Project Directory, localize o fluxo de trabalho criado e clique em seu nome para abrir a tela do fluxo.

    A tabela a seguir descreve os nós de exemplo e suas funções neste tutorial.

    Tipo

    Nome

    Descrição

    image MaxCompute SQL

    dwd_log_info_di

    Utiliza funções integradas e UDFs, como getregion, para dividir dados brutos de log da tabela ods_raw_log_d e gravá-los em múltiplos campos na tabela dwd_log_info_di.

    image MaxCompute SQL

    dws_user_info_all_di

    Consolida a tabela de informações básicas do usuário (ods_user_info_d) e a tabela de dados de log processados inicialmente (dwd_log_info_di), gravando os resultados na tabela dws_user_info_all_di.

    image MaxCompute SQL

    ads_user_info_1d

    Processa adicionalmente os dados da tabela dws_user_info_all_di e grava os resultados na tabela ads_user_info_1d para gerar perfis básicos de usuário.

  2. image
    Nota

    Em um fluxo de trabalho, é possível desenhar linhas manualmente para definir a dependência de agendamento entre nós. Alternativamente, o sistema identifica dependências automaticamente ao analisar o código nos nós filhos. Este tutorial utiliza o método de conexão manual. Para mais informações sobre análise de código, consulte Análise automática de dependências.

Etapa 2: Registrar uma UDF

Para garantir a execução adequada das tarefas subsequentes de processamento de dados, registre a UDF do MaxCompute (getregion). Essa função analisa a estrutura de dados de log sincronizada com o MaxCompute durante a fase de Sincronização de Dados e a converte em uma tabela.

Importante
  • Este tutorial fornece o resource necessário para a função que mapeia endereços IP para regiões. Baixe o resource fornecido para sua máquina local e faça upload dele para seu workspace do DataWorks antes de registrar a função.

  • A função e os resources de IP de exemplo destinam-se apenas a fins de tutorial. Para casos de uso em produção que exigem mapeamento de endereços IP para localizações geográficas, obtenha services de conversão de IP de um provedor profissional.

**Fazer upload de um resource (ip2region.jar)**

  1. Baixe o pacote ip2region.jar.

    Nota

    O resource de exemplo ip2region.jar destina-se apenas ao uso neste tutorial.

  2. No painel de navegação à esquerda da página do DataStudio, clique no ícone image para abrir a página RESOURCE MANAGEMENT. Clique em image > New Resource > MaxCompute Jar. Após definir um nome para o resource, a página de upload será exibida.

    Nota

    O nome do resource não precisa corresponder ao nome do arquivo carregado.

  3. Em Document Source, selecione Local, clique em Click Upload e escolha o arquivo ip2region.jar baixado localmente.

  4. Em Data Source, selecione o recurso de computação MaxCompute vinculado na etapa de Preparar ambiente.

  5. Na barra de ferramentas do nó, clique em Save e, em seguida, clique em Publish. Siga as instruções no painel de publicação para publicar o resource nos projetos MaxCompute dos ambientes de desenvolvimento e produção.

**Registrar a UDF (getregion)**

  1. Na página Resource Management, clique em image > New Function > MaxCompute Function, defina um nome para o resource e você será direcionado à página Register Function (neste tutorial, a função recebe o nome de getregion).

  2. Na página Create Function, configure os parâmetros descritos na tabela a seguir. Mantenha os valores padrão para todos os outros parâmetros.

    Parâmetro

    Descrição

    Function type

    Selecione OTHER.

    Data Source

    Selecione o recurso de computação MaxCompute associado na etapa de Preparar o ambiente.

    Class Name

    Insira org.alidata.odps.udf.Ip2Region.

    Resource List

    Selecione ip2region.jar.

    Description

    Converte um endereço IP em uma região.

    Command Format

    Insira getregion('ip').

    Parameter Description

    Endereço IP.

  3. Clique em Save na barra de ferramentas do nó e, em seguida, clique em Publish. No painel de publicação, siga as instruções para publicar a função nos projetos MaxCompute dos ambientes de desenvolvimento e produção.

Etapa 3: Configurar os nós de processamento de dados

O processamento de dados exige a implementação da lógica de cada camada por meio do agendamento de jobs SQL do MaxCompute. Este tutorial fornece o código SQL de exemplo completo para que você configure sequencialmente os nós dwd_log_info_di, dws_user_info_all_di e ads_user_info_1d.

**Configurar o nó dwd_log_info_di**

No código de exemplo deste nó, o SQL utiliza a função criada para processar campos da tabela upstream ods_raw_log_d e grava os resultados na tabela dwd_log_info_di.

  1. No painel de navegação à esquerda do DataStudio, clique no ícone image para abrir a página de desenvolvimento de dados. Na seção Project Directory, localize o fluxo de trabalho criado e clique em seu nome para abrir a tela do fluxo.

  2. Na página de orquestração do fluxo de trabalho, passe o mouse sobre o nó dwd_log_info_di e clique em Open Node.

  3. Cole o código a seguir no editor de código do nó.

    Código de exemplo para o nó dwd_log_info_di

    -- Create the dwd_log_info_di table.
    CREATE TABLE IF NOT EXISTS dwd_log_info_di (
     ip STRING COMMENT 'The IP address.',
     uid STRING COMMENT 'The user ID.',
     time STRING COMMENT 'The time in yyyymmddhh:mi:ss format.',
     status STRING COMMENT 'The status code returned by the server.',
     bytes STRING COMMENT 'The number of bytes returned to the client.',
     region STRING COMMENT 'The region, obtained from the IP address.',
     method STRING COMMENT 'The HTTP request type.',
     url STRING COMMENT 'The URL.',
     protocol STRING COMMENT 'The HTTP protocol version.',
     referer STRING COMMENT 'The referrer URL.',
     device STRING COMMENT 'The client type.',
     identity STRING COMMENT 'The access type. Valid values: crawler, feed, user, and unknown.'
    )
    PARTITIONED BY (
     dt STRING
    )
    LIFECYCLE 14;
    
    -- Process the data.
    -- Scenario: The following SQL statements use the getregion function to parse the IP address in the raw log data. 
    -- It also uses methods like regular expressions to split the raw data into analyzable fields and writes them to the dwd_log_info_di table.
    -- The getregion function, which is used to resolve IP addresses into regions, is provided for this tutorial.
    -- Note:
    --     1. Before you use a UDF in a DataWorks node, you must upload the required resource to DataWorks and then register the function by using that resource.
    --        The resource used to register the getregion function in this tutorial is ip2region.jar.
    --     2. DataWorks provides scheduling parameters that allow you to write daily incremental data to the corresponding data timestamp partition of a destination table.
    --        In a real-world development scenario, you can define code variables in the ${variable_name} format and assign scheduling parameters as values on the Properties tab. This enables dynamic parameter substitution when the task is run.
    INSERT OVERWRITE TABLE dwd_log_info_di PARTITION (dt='${bizdate}')
    SELECT ip 
      , uid
      , time
      , status
      , bytes 
      , getregion(ip) AS region -- Use the UDF to obtain the region from the IP address.
      , regexp_substr(request, '(^[^ ]+ )') AS method -- Use a regular expression to split the request into three fields.
      , regexp_extract(request, '^[^ ]+ (.*) [^ ]+$') AS url
      , regexp_substr(request, '([^ ]+$)') AS protocol 
      , regexp_extract(referer, '^[^/]+://([^/]+){1}') AS referer -- Use a regular expression to clean the referer and get a more precise URL.
      , CASE
        WHEN TOLOWER(agent) RLIKE 'android' THEN 'android' -- Obtain client and access type information from the agent.
        WHEN TOLOWER(agent) RLIKE 'iphone' THEN 'iphone'
        WHEN TOLOWER(agent) RLIKE 'ipad' THEN 'ipad'
        WHEN TOLOWER(agent) RLIKE 'macintosh' THEN 'macintosh'
        WHEN TOLOWER(agent) RLIKE 'windows phone' THEN 'windows_phone'
        WHEN TOLOWER(agent) RLIKE 'windows' THEN 'windows_pc'
        ELSE 'unknown'
      END AS device
      , CASE
        WHEN TOLOWER(agent) RLIKE '(bot|spider|crawler|slurp)' THEN 'crawler'
        WHEN TOLOWER(agent) RLIKE 'feed'
        OR regexp_extract(request, '^[^ ]+ (.*) [^ ]+$') RLIKE 'feed' THEN 'feed'
        WHEN TOLOWER(agent) NOT RLIKE '(bot|spider|crawler|feed|slurp)'
        AND agent RLIKE '^[Mozilla|Opera]'
        AND regexp_extract(request, '^[^ ]+ (.*) [^ ]+$') NOT RLIKE 'feed' THEN 'user'
        ELSE 'unknown'
      END AS identity
      FROM (
        SELECT SPLIT(col, '##@@')[0] AS ip
        , SPLIT(col, '##@@')[1] AS uid
        , SPLIT(col, '##@@')[2] AS time
        , SPLIT(col, '##@@')[3] AS request
        , SPLIT(col, '##@@')[4] AS status
        , SPLIT(col, '##@@')[5] AS bytes
        , SPLIT(col, '##@@')[6] AS referer
        , SPLIT(col, '##@@')[7] AS agent
      FROM ods_raw_log_d  
      WHERE dt ='${bizdate}'
    ) a;
  4. Configure os parâmetros de depuração.

    No lado direito do editor de nós MaxCompute SQL, clique em Run Configuration e defina os parâmetros abaixo para executar um teste com os parâmetros relevantes de Run Configuration durante a depuração na Etapa 4.

    Parâmetro

    Descrição

    Computing Resources

    Selecione o recurso de computação MaxCompute e sua cota correspondente associados na etapa de Preparar o ambiente.

    Resource Group

    Selecione o grupo de recursos serverless adquirido na etapa de Preparar o ambiente.

    Script Parameters

    Nenhuma configuração é necessária. O código de exemplo fornecido neste tutorial usa ${bizdate} para representar o timestamp dos dados. Na Etapa 4, ao depurar e executar o fluxo de trabalho, defina This operation value como uma constante específica, como 20250223. A tarefa substituirá a variável por essa constante durante a execução.

  5. (Opcional) Configure as propriedades de agendamento.

    Para este tutorial, mantenha os valores padrão dos parâmetros de configuração de agendamento. No lado direito da página MaxCompute SQL, clique em Scheduling Configuration. Para obter mais informações sobre os parâmetros de configuração de agendamento, consulte Configuração de agendamento de nó.

    • Scheduling Parameters: Estes parâmetros são configurados no nível do fluxo de trabalho neste tutorial. Não é necessário configurá-los para cada nó individualmente; utilize-os diretamente em suas tarefas ou código.

    • Scheduling Policy: No parâmetro Delayed execution time, especifique o tempo de atraso para a execução de um nó filho após a execução do fluxo de trabalho. Esta configuração não é definida neste tutorial.

  6. Na barra de ferramentas do nó, clique em Save.

**Configurar o nó dws_user_info_all_di**

Este nó consolida a tabela de informações básicas do usuário (ods_user_info_d) e a tabela de dados de log processados inicialmente (dwd_log_info_di), gravando os dados na tabela dws_user_info_all_di.

  1. Na página de orquestração do fluxo de trabalho, passe o mouse sobre o nó dws_user_info_all_di e clique em Open Node.

  2. Cole o código a seguir no editor de código do nó.

    Código de exemplo para o nó dws_user_info_all_di

    -- Create the dws_user_info_all_di table.
    CREATE TABLE IF NOT EXISTS dws_user_info_all_di (
     uid STRING COMMENT 'The user ID.',
     gender STRING COMMENT 'The gender.',
     age_range STRING COMMENT 'The age range.',
     zodiac STRING COMMENT 'The zodiac sign.',
     region STRING COMMENT 'The region, obtained from the IP address.',
     device STRING COMMENT 'The client type.',
     identity STRING COMMENT 'The access type. Valid values: crawler, feed, user, and unknown.',
     method STRING COMMENT 'The HTTP request type.',
     url STRING COMMENT 'The URL.',
     referer STRING COMMENT 'The referrer URL.',
     time STRING COMMENT 'The time in yyyymmddhh:mi:ss format.'
    )
    PARTITIONED BY (
     dt STRING
    )
    LIFECYCLE 14;
    
    -- Process the data.
    -- Scenario: Aggregates the processed log data from dwd_log_info_di and the user information from ods_user_info_d, and writes the results to the dws_user_info_all_di table.
    -- Note: DataWorks provides scheduling parameters that allow you to write daily incremental data to the corresponding data timestamp partition of a destination table.
    --       In a real-world development scenario, you can define code variables in the ${variable_name} format and assign scheduling parameters as values on the Properties tab. This enables dynamic parameter substitution when the task is run.
    INSERT OVERWRITE TABLE dws_user_info_all_di  PARTITION (dt='${bizdate}')
    SELECT COALESCE(a.uid, b.uid) AS uid
      , b.gender
      , b.age_range
      , b.zodiac
      , a.region
      , a.device
      , a.identity
      , a.method
      , a.url
      , a.referer
      , a.time
    FROM (
      SELECT *
      FROM dwd_log_info_di  
      WHERE dt = '${bizdate}'
    ) a
    LEFT OUTER JOIN (
      SELECT *
      FROM ods_user_info_d
      WHERE dt = '${bizdate}'
    ) b
    ON a.uid = b.uid;
  3. Configure os parâmetros de depuração.

    No lado direito do editor de nós MaxCompute SQL, clique em Run Configuration e defina os parâmetros abaixo para executar um teste com os parâmetros relevantes de Run Configuration durante a depuração na Etapa 4.

    Parâmetro

    Descrição

    Computing Resources

    Selecione o recurso de computação MaxCompute e sua cota correspondente associados na etapa de Preparar o ambiente.

    Resource Group

    Selecione o grupo de recursos serverless adquirido na etapa de Preparar o ambiente.

    Script Parameters

    Nenhuma configuração é necessária. O código de exemplo fornecido neste tutorial usa ${bizdate} para representar o timestamp dos dados. Na Etapa 4, ao depurar e executar o fluxo de trabalho, defina This operation value como uma constante específica, como 20250223. A tarefa substituirá a variável por essa constante durante a execução.

  4. (Opcional) Configure as propriedades de agendamento.

    Para este tutorial, mantenha os valores padrão dos parâmetros de configuração de agendamento. No lado direito da página MaxCompute SQL, clique em Scheduling Configuration. Para obter mais informações sobre os parâmetros de configuração de agendamento, consulte Configuração de agendamento de nó.

    • Scheduling Parameters: Estes parâmetros são configurados no nível do fluxo de trabalho neste tutorial. Não é necessário configurá-los para cada nó individualmente; utilize-os diretamente em suas tarefas ou código.

    • Scheduling Policy: No parâmetro Delayed execution time, especifique o tempo de atraso para a execução de um nó filho após a execução do fluxo de trabalho. Esta configuração não é definida neste tutorial.

  5. Na barra de ferramentas do nó, clique em Save.

**Configurar o nó ads_user_info_1d**

Este nó processa adicionalmente os dados da tabela dws_user_info_all_di, grava os dados na tabela ads_user_info_1d e gera um perfil básico de usuário.

  1. Na página de orquestração do fluxo de trabalho, passe o mouse sobre o nó ads_user_info_1d e clique em Open Node.

  2. Cole o código a seguir no editor de código do nó.

    Código de exemplo para o nó ads_user_info_1d

    -- Create the ads_user_info_1d table.
    CREATE TABLE IF NOT EXISTS ads_user_info_1d (
     uid STRING COMMENT 'The user ID.',
     region STRING COMMENT 'The region, obtained from the IP address.',
     device STRING COMMENT 'The client type.',
     pv BIGINT COMMENT 'The number of page views.',
     gender STRING COMMENT 'The gender.',
     age_range STRING COMMENT 'The age range.',
     zodiac STRING COMMENT 'The zodiac sign.'
    )
    PARTITIONED BY (
     dt STRING
    )
    LIFECYCLE 14;    
    
    -- Process the data.
    -- Scenario: Further processes the user access information from the wide table dws_user_info_all_di to generate basic user profile data and writes it to the ads_user_info_1d table.
    -- Note: DataWorks provides scheduling parameters that allow you to write daily incremental data to the corresponding data timestamp partition of a destination table.
    --       In a real-world development scenario, you can define code variables in the ${variable_name} format and assign scheduling parameters as values on the Properties tab. This enables dynamic parameter substitution when the task is run.
    INSERT OVERWRITE TABLE ads_user_info_1d  PARTITION (dt='${bizdate}')
    SELECT uid
      , MAX(region)
      , MAX(device)
      , COUNT(0) AS pv
      , MAX(gender)
      , MAX(age_range)
      , MAX(zodiac)
    FROM dws_user_info_all_di
    WHERE dt = '${bizdate}'
    GROUP BY uid; 
  3. Configure os parâmetros de depuração.

    No lado direito do editor de nós MaxCompute SQL, clique em Run Configuration e defina os parâmetros abaixo para executar um teste com os parâmetros relevantes de Run Configuration durante a depuração na Etapa 4.

    Parâmetro

    Descrição

    Computing Resources

    Selecione o recurso de computação MaxCompute e sua cota correspondente associados na etapa de Preparar o ambiente.

    Resource Group

    Selecione o grupo de recursos serverless adquirido na etapa de Preparar o ambiente.

    Script Parameters

    Nenhuma configuração é necessária. O código de exemplo fornecido neste tutorial usa ${bizdate} para representar o timestamp dos dados. Na Etapa 4, ao depurar e executar o fluxo de trabalho, defina This operation value como uma constante específica, como 20250223. A tarefa substituirá a variável por essa constante durante a execução.

  4. (Opcional) Configure as propriedades de agendamento.

    Para este tutorial, mantenha os valores padrão dos parâmetros de configuração de agendamento. No lado direito da página MaxCompute SQL, clique em Scheduling Configuration. Para obter mais informações sobre os parâmetros de configuração de agendamento, consulte Configuração de agendamento de nó.

    • Scheduling Parameters: Estes parâmetros são configurados no nível do fluxo de trabalho neste tutorial. Não é necessário configurá-los para cada nó individualmente; utilize-os diretamente em suas tarefas ou código.

    • Scheduling Policy: No parâmetro Delayed execution time, especifique o tempo de atraso para a execução de um nó filho após a execução do fluxo de trabalho. Esta configuração não é definida neste tutorial.

  5. Na barra de ferramentas do nó, clique em Save.

Etapa 4: Processar dados

  1. Processe os dados.

    Na barra de ferramentas do fluxo de trabalho, clique em Run. Defina os valores para as variáveis de parâmetro definidas em cada nó para esta execução (este tutorial usa 20250223; modifique conforme necessário). Clique em OK e aguarde a conclusão da execução.

  2. Consulte o resultado do processamento de dados.

    1. No painel de navegação à esquerda do Data Studio, clique em image para acessar a página de desenvolvimento de dados. Na seção de diretório pessoal, clique em image para criar um arquivo com o sufixo .sql (você pode personalizar o nome do arquivo).

    2. Na parte inferior da página, verifique se o modo de linguagem está definido como MaxCompute SQL, conforme mostrado abaixo.image

    3. No editor SQL, insira a seguinte instrução SQL para verificar o número de registros na tabela de resultados finais ads_user_info_1d e confirmar se os dados foram processados.

      -- You need to change the partition filter condition to the actual data timestamp for your run. 
      -- In this tutorial, the bizdate (data timestamp) debugging parameter was set to 20250223.
      SELECT count(*) FROM ads_user_info_1d WHERE dt='<your_data_timestamp>';
      • Se a consulta retornar dados, o processamento foi concluído com êxito.

      • Caso nenhum dado seja retornado, certifique-se de que o valor de This operation value configurado durante a execução do fluxo de trabalho corresponde à data de negócios especificada em dt na consulta. Clique no fluxo de trabalho, clique em Runtime Logs no lado direito, clique em View na coluna Operation do histórico de execuções e verifique o valor da data de negócios (partition=[pt=xxx]) no log de execução do fluxo de trabalho.

Etapa 5: Implantar o fluxo de trabalho

Uma tarefa só pode ser agendada automaticamente após ser implantada no ambiente de produção. Siga estas etapas para implantar o fluxo de trabalho.

Nota

Neste tutorial, os parâmetros de agendamento são configurados nas propriedades de agendamento do fluxo de trabalho. Não é necessário configurá-los para cada nó antes da implantação.

  1. Na barra de navegação à esquerda do Data Studio, clique em image para acessar a página do DataStudio. Em seguida, na área Project Directory, localize o fluxo de trabalho criado e clique nele para abrir a página de orquestração.

  2. Clique em Publish na barra de ferramentas do nó para abrir o painel Publish.

  3. Clique em Start Release Production. Na caixa de diálogo de confirmação exibida, escolha um método de implantação conforme suas necessidades:

    • Full deployment: Implanta o fluxo de trabalho atual e todos os seus nós de tarefa internos.

    • Incremental deployment: Implanta apenas o fluxo de trabalho atual e os nós de tarefa internos modificados desde a última implantação. Ideal para otimizações iterativas e pequenas atualizações.

  4. Após confirmar o método de implantação, o sistema executa automaticamente o processo, implantando o fluxo de trabalho e os nós de tarefa selecionados nos ambientes de desenvolvimento e produção sequencialmente. Para concluir a implantação no ambiente de produção, clique em Confirm Release.

Etapa 6: Executar tarefas em produção

Após a implantação de uma tarefa, uma instância é gerada para execução no dia seguinte. Utilize Supplementary data para retrocarregar dados do fluxo de trabalho implantado e verificar se a tarefa executa corretamente no ambiente de produção. Para mais informações, consulte O&M de instância de retrocarga de dados.

  1. Após a implantação bem-sucedida da tarefa, clique em Operation and Maintenance Center no canto superior direito.

    Alternativamente, clique no ícone 图标 no canto superior esquerdo e escolha All Products > Data Development and O&M > Operation and Maintenance Center (Workflow).

  2. Na barra de navegação à esquerda, clique em Auto Triggered Task O&M > Auto Triggered Node. Na página Auto Triggered Node, clique no nó virtual workshop_start.

  3. No DAG à direita, clique com o botão direito no nó workshop_start e selecione Supplementary data > Current and Descendant Nodes Retroactively.

  4. Selecione as tarefas que requerem retrocarga de dados, defina o timestamp dos dados e clique em Submit and Redirect.

  5. Na página de retrocarga de dados, clique em Refresh até que todas as tarefas SQL sejam executadas com êxito.

Nota

Ao concluir o tutorial, para evitar custos adicionais, defina o período de validade do agendamento do nó ou freeze o nó raiz do processo de negócios (o nó virtual workshop_start).

Próximas etapas

  • Visualizar dados: Após concluir a análise de perfil de usuário, utilize o módulo de análise de dados para exibir os dados processados em gráficos. Isso facilita a extração rápida de informações essenciais e a obtenção de insights sobre tendências de negócios.

  • Monitorar qualidade de dados: Configure regras de monitoramento de qualidade de dados para as tabelas geradas durante o processamento. Assim, é possível identificar e bloquear dados incorretos antecipadamente, evitando a propagação de seus impactos.

  • Gerenciar dados: Após a conclusão do fluxo de trabalho de análise de perfil de usuário, as tabelas de dados correspondentes são criadas no MaxCompute. Visualize essas tabelas no Data Map e verifique a linhagem para compreender as relações entre elas.

  • Service de dados API: Após obter os dados finais processados, utilize o módulo de service de dados para compartilhá-los por meio de APIs padronizadas. Dessa forma, você fornece dados para outros módulos de negócios que consomem informações via API.