Ce tutoriel vous guide pour ajouter des sources de données à DataWorks, configurer des tâches de synchronisation par lots et utiliser des nœuds E-MapReduce (EMR) Hive afin de créer des tables et d'interroger les données synchronisées.
Dans ce tutoriel, vous allez :
Ajouter trois sources de données (HttpFile, MySQL, OSS) à un espace de travail DataWorks
Créer un flux de travail comprenant deux nœuds de synchronisation par lots
Configurer les nœuds pour synchroniser les données utilisateur et les journaux d'accès vers OSS
Créer des tables externes EMR Hive mappées aux données OSS
Exécuter le flux de travail et vérifier les résultats à l'aide de requêtes ponctuelles
Nœuds créés dans ce tutoriel :
| Nom du nœud | Type | Objectif |
|---|---|---|
workshop_start_emr |
Nœud Zero-Load | Déclenche le flux de travail quotidiennement |
ods_user_info_d_2oss_emr |
Synchronisation hors ligne | Synchronise les données utilisateur MySQL vers OSS |
ods_raw_log_d_2oss_emr |
Synchronisation hors ligne | Synchronise les journaux d'accès HttpFile vers OSS |
ods_user_info_d_emr |
EMR Hive | Crée une table externe pour les données utilisateur |
ods_raw_log_d_emr |
EMR Hive | Crée une table externe pour les journaux d'accès |
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Un environnement préparé. Consultez Préparer les environnements.
Une règle de groupe de sécurité ajoutée dans la console Elastic Compute Service (ECS) qui autorise le port
10000de l'instance ECS à se connecter à DataWorks. Définissez Authorization Object sur le bloc CIDR du vSwitch associé au groupe de ressources. Consultez Ajouter une règle de groupe de sécurité.
Étape 1 : Ajouter des sources de données
Ajoutez trois sources de données à votre espace de travail DataWorks : une source HttpFile pour les journaux d'accès au site web, une source MySQL pour les informations utilisateur et une destination OSS pour stocker les données synchronisées.
Ajouter une source de données HttpFile
-
Accédez à la page Data Sources.
Connectez-vous à la console DataWorks. Dans la barre de navigation supérieure, sélectionnez la région souhaitée. Dans le volet de navigation de gauche, choisissez More > Management Center. Sur la page qui s'affiche, sélectionnez votre espace de travail dans la liste déroulante et cliquez sur Go to Management Center.
Dans le volet de navigation de gauche de la page SettingCenter, cliquez sur Data Sources.
Dans le coin supérieur gauche de la page Data Sources, cliquez sur Add Data Source. Dans la boîte de dialogue Add Data Source, cliquez sur HttpFile.
-
Sur la page Add HttpFile Data Source, configurez les paramètres suivants. Utilisez les valeurs d'exemple pour les environnements de développement et de production.
Paramètre Valeur Data Source Name user_behavior_analysis_httpfileData Source Description Cette source de données est en lecture seule dans les scénarios de synchronisation de données. Elle sert de source pour une tâche de synchronisation par lots afin d'accéder aux données de test fournies. URL https://dataworks-workshop-2024.oss-cn-shanghai.aliyuncs.com -
Recherchez un groupe de ressources souhaité et cliquez sur Test Network Connectivity dans les colonnes Connection Status (Development Environment) et Connection Status (Production Environment).
ImportantAu moins un groupe de ressources doit afficher l'état Connected. Sinon, vous ne pourrez pas utiliser l'interface sans code pour configurer une tâche de synchronisation de données pour cette source de données.
Cliquez sur Complete Creation.
Ajouter une source de données MySQL
Dans le volet de navigation de gauche de la page SettingCenter, cliquez sur Data Sources. Dans le coin supérieur gauche, cliquez sur Add Data Source.
Dans la boîte de dialogue Add Data Source, sélectionnez MySQL.
-
Sur la page Add MySQL Data Source, configurez les paramètres suivants. Utilisez les valeurs d'exemple pour les deux environnements.
Paramètre Valeur Data Source Name user_behavior_analysis_mysqlData Source Description Cette source de données est en lecture seule dans les scénarios de synchronisation de données. Elle sert de source pour une tâche de synchronisation par lots afin d'accéder aux données de test fournies. Configuration Mode Connection String Mode Connection Address Adresse IP de l'hôte : rm-bp1z69dodhh85z9qa.mysql.rds.aliyuncs.com; Port :3306Database Name workshopUsername workshopPassword workshop#2017Authentication Method No Authentication Recherchez un groupe de ressources souhaité et cliquez sur Test Network Connectivity dans les colonnes Connection Status (Development Environment) et Connection Status (Production Environment).
Cliquez sur Complete Creation.
Ajouter une source de données OSS
Cette source de données OSS sert de destination pour les deux tâches de synchronisation : les informations utilisateur provenant de MySQL et les journaux d'accès provenant de HttpFile y sont écrits.
Dans le volet de navigation de gauche de la page SettingCenter, cliquez sur Data Sources. Dans le coin supérieur gauche, cliquez sur Add Data Source.
Dans la boîte de dialogue Add Data Source, sélectionnez OSS.
-
Sur la page Add OSS Data Source, configurez les paramètres suivants.
ImportantLa clé secrète AccessKey n'est affichée qu'au moment de la création. Si elle est perdue ou compromise, supprimez la paire de clés et créez-en une nouvelle.
Paramètre Valeur Data Source Name test_gAccess Mode AccessKey Mode AccessKey ID Votre ID AccessKey. Accédez à la page AccessKey pour le copier. AccessKey secret Votre clé secrète AccessKey. Endpoint http://oss-cn-shanghai-internal.aliyuncs.comBucket dw-emr-demo(le bucket que vous avez créé lors de la préparation de l'environnement) -
Recherchez un groupe de ressources souhaité et cliquez sur Test Network Connectivity dans les colonnes Connection Status (Development Environment) et Connection Status (Production Environment).
RemarqueAu moins un groupe de ressources doit afficher l'état Connected. Sinon, vous ne pourrez pas utiliser l'interface sans code pour configurer une tâche de synchronisation de données pour cette source de données.
Cliquez sur Complete Creation.
Étape 2 : Créer le flux de travail
Sur la page Data Sources, cliquez sur l'icône
dans le coin supérieur gauche et choisissez All Products > Data Development And Task Operation > DataStudio.Dans le volet Scheduled Workflow, cliquez avec le bouton droit sur Business Flow et sélectionnez Create Workflow.
Dans la boîte de dialogue Create Workflow, définissez Workflow Name sur
workshop_emret cliquez sur Create.-
Double-cliquez sur le nouveau flux de travail pour ouvrir son onglet de configuration. Créez les nœuds suivants :
Cliquez sur Create Node et faites glisser Zero-Load Node depuis la section General vers le canevas. Définissez Name sur
workshop_start_emret cliquez sur Confirm.Cliquez sur Create Node et faites glisser Offline synchronization depuis la section Data Integration vers le canevas. Créez deux nœuds de synchronisation par lots :
ods_raw_log_d_2oss_emr(pour les journaux HttpFile) etods_user_info_d_2oss_emr(pour les données utilisateur MySQL). Cliquez sur Confirm pour chacun d'eux.
-
Sur le canevas du flux de travail, tracez des lignes directionnelles pour faire de
workshop_start_emrle nœud ancêtre des deux nœuds de synchronisation par lots.
Étape 3 : Configurer les nœuds
Configurer le nœud déclencheur du flux de travail
Le nœud zero-load workshop_start_emr déclenche l'exécution quotidienne du flux de travail.
Dans le volet Scheduled Workflow, double-cliquez sur le nœud
workshop_start_emr. Dans le volet droit de l'onglet de configuration du nœud, cliquez sur Properties.-
Configurez les propriétés de planification.
Section Paramètre Schedule Définissez l'heure de planification sur 00:30. Définissez Rerun sur Allow Regardless of Running Status.Scheduling dependencies Définissez workshop_start_emrcomme descendant du nœud racine de l'espace de travail (nomméWorkspace name_root). Le nœud racine déclenche l'exécution deworkshop_start_emr. Cliquez sur l'icône
pour enregistrer.
Configurer les nœuds de synchronisation par lots
Synchroniser les données utilisateur MySQL vers OSS (ods_user_info_d_2oss_emr)
Sur la page DataStudio, double-cliquez sur
ods_user_info_d_2oss_emrpour ouvrir la page de configuration du nœud.-
Définissez la source, le groupe de ressources et la destination, puis cliquez sur Next et terminez le test de connectivité.
Paramètre Valeur Source MySQL — Nom de la source de données : user_behavior_analysis_mysqlResource Group Votre groupe de ressources serverless Destination OSS — Nom de la source de données : test_g -
Configurez les détails de la synchronisation.
Paramètre Valeur Source: Table ods_user_info_dSource: Split key uid(type INTEGER ; utilisez une clé primaire ou une colonne indexée)Destination: Text type textDestination: Object Name (Path Included) ods_user_info_d/user_${bizdate}/user_${bizdate}.txt—ods_user_info_dest le dossier dans le bucket OSS ;${bizdate}est remplacé par la date du jour précédent au moment de l'exécution (par exemple,20191106lorsque le flux de travail s'exécute le 7 novembre 2019).Destination: Column Delimiter ``
-
Cliquez sur Properties dans le volet droit et configurez les paramètres de planification.
Section Paramètre Scheduling Parameter Cliquez sur Add Parameter. Définissez Parameter Name sur bizdateet Parameter Value sur$[yyyymmdd-1].Schedule Définissez Rerun sur Allow Regardless of Running Status. Dependencies Confirmez que la table de sortie suit le format Workspace name.Node name. Cliquez sur l'icône
pour enregistrer.
Synchroniser les journaux d'accès HttpFile vers OSS (ods_raw_log_d_2oss_emr)
Sur la page DataStudio, double-cliquez sur
ods_raw_log_d_2oss_emrpour ouvrir la page de configuration du nœud.-
Définissez la source, le groupe de ressources et la destination, puis cliquez sur Next et terminez le test de connectivité.
Paramètre Valeur Source HttpFile — Nom de la source de données : user_behavior_analysis_httpfileResource Group Votre groupe de ressources serverless Destination OSS — Nom de la source de données : test_g -
Configurez les détails de la synchronisation.
Paramètre Valeur 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_dest le dossier dans le bucket OSS ;${bizdate}est remplacé par la date du jour précédent au moment de l'exécution.Destination: Column Delimiter ``
-
Cliquez sur Properties dans le volet droit et configurez les paramètres de planification.
Section Paramètre Scheduling Parameter Cliquez sur Add Parameter. Définissez Parameter Name sur bizdateet Parameter Value sur$[yyyymmdd-1].Schedule Définissez Rerun sur Allow Regardless of Running Status. Dependencies Confirmez que la table de sortie suit le format Workspace name.Node name. Cliquez sur l'icône
pour enregistrer.
Créer des tables EMR Hive
Créez deux tables externes EMR Hive — ods_user_info_d_emr et ods_raw_log_d_emr — qui pointent vers les dossiers OSS où les données synchronisées sont stockées.
Dans le volet Scheduled Workflow, cliquez sur le flux de travail
workshop_emr, cliquez avec le bouton droit sur EMR et choisissez Create Node > EMR Hive.-
Créez deux nœuds EMR Hive :
ods_user_info_d_emretods_raw_log_d_emr. Tracez des lignes de dépendance afin que les deux nœuds EMR Hive s'exécutent après la fin des nœuds de synchronisation par lots.
-
Configurez et exécutez chaque nœud EMR Hive. ods_user_info_d_emr — table des informations utilisateur Double-cliquez sur le nœud
ods_user_info_d_emret saisissez le code SQL suivant :RemarqueLe chemin
LOCATIONdoit correspondre à la valeur Object Name (Path Included) définie dans le nœudods_user_info_d_2oss_emr.dw-emr-demoest le nom du bucket OSS que vous avez créé lors de la préparation de l'environnement.${bizdate}est remplacé par la date du jour précédent au moment de l'exécution.RemarqueLe chemin
LOCATIONdoit correspondre à la valeur Object Name (Path Included) définie dans le nœudods_raw_log_d_2oss_emr.dw-emr-demoest le nom du bucket OSS que vous avez créé lors de la préparation de l'environnement.Section Paramètre Scheduling Parameter Définissez Parameter Name sur bizdateet Parameter Value sur$[yyyymmdd-1].Schedule Définissez Rerun sur Allow Regardless of Running Status. Dependencies Confirmez que la table de sortie suit le format Workspace name.Node name.Resource Group Sélectionnez votre groupe de ressources 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}/';Cliquez sur Properties dans le volet droit et configurez les paramètres de planification : Cliquez sur l'icône
pour enregistrer et exécuter. ods_raw_log_d_emr — table des journaux d'accès Double-cliquez sur le nœud ods_raw_log_d_emret saisissez le code SQL suivant :-- 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}/';Appliquez les mêmes paramètres de planification que ci-dessus, puis enregistrez et exécutez.
Étape 4 : Exécuter le flux de travail et vérifier les résultats
Exécuter le flux de travail
Sur la page DataStudio, double-cliquez sur le flux de travail
workshop_emrsous Business Flow. Dans l'onglet de configuration du flux de travail, cliquez sur l'icône
dans la barre d'outils. Le flux de travail exécute tous les nœuds selon l'ordre des dépendances.-
Vérifiez l'état des nœuds.
Les nœuds dans l'état
s'exécutent normalement.Si les nœuds affichent l'état
avec l'erreur "java.net.ConnectException: Connection timed out (Connection timed out)", ajoutez une règle de groupe de sécurité dans la console ECS : autorisez le port10000et définissez Authorization Object sur le bloc CIDR du vSwitch. Pour trouver le bloc CIDR, accédez à la page Resource Groups, recherchez votre groupe de ressources et cliquez sur Network Settings > VPC Binding. Consultez Ajouter une règle de groupe de sécurité.
Vérifier les résultats
Dans le volet de navigation de gauche de la page DataStudio, cliquez sur l'icône
. Dans le volet Ad Hoc Query, cliquez avec le bouton droit sur Ad Hoc Query et choisissez Create Node > EMR Hive.-
Exécutez les requêtes suivantes pour confirmer que les données ont été écrites avec succès. Remplacez
<data_timestamp>par la date du jour précédent au formatyyyymmdd. Par exemple, si le flux de travail s'est exécuté le 7 novembre 2019, utilisez20191106.SELECT * FROM ods_user_info_d_emr WHERE dt=<data_timestamp>; SELECT * FROM ods_raw_log_d_emr WHERE dt=<data_timestamp>; -
Pour afficher les journaux d'exécution, cliquez avec le bouton droit sur le nœud
ods_user_info_d_emrouods_raw_log_d_emret sélectionnez View Logs. Une synchronisation réussie se présente comme suit :
Étapes suivantes
Maintenant que vous avez synchronisé les données dans OSS et les avez rendues interrogables via des tables EMR Hive, passez au tutoriel suivant pour calculer et analyser les données. Consultez Traiter les données.