全部產品
Search
文件中心

E-MapReduce:同步資料

更新時間:Feb 21, 2025

本文為您介紹如何建立HttpFile和MySQL資料來源來訪問本教程所提供的使用者資訊與網站日誌資料,配置資料同步鏈路至私人OSS資料來源,並通過EMR Hive節點建表查詢同步後的資料,完成資料同步的操作過程。

前提條件

  • 開始本文的操作前,請準備好需要使用的環境。詳情請參見準備環境

  • 為確保網路互連,請在ECS管理主控台添加安全性群組規則,開放ECS的10000連接埠,設定授權對象為資源群組VPC的交換器網段。詳情請參見添加安全性群組規則

步驟一:建立資料來源

根據本次實驗類比的情境,您需要建立以下三個資料來源,並將其註冊到DataWorks工作空間,才能進行後續操作。

  • HttpFile資料來源:用於訪問本教程提供的使用者訪問網站記錄資料。

  • MySQL資料來源:用於訪問本教程提供的使用者資訊資料。

  • OSS資料來源:用於接收來自HttpFile資料來源和MySQL資料來源所擷取的測試資料。

建立HttpFile資料來源

  1. 進入資料來源頁面。

    1. 登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的更多 > 管理中心,在下拉框中選擇對應工作空間後單擊進入管理中心

    2. 進入工作空間管理中心頁面後,單擊左側導覽列的資料來源,進入資料來源頁面。

  2. 單擊新增資料來源,在新增資料來源對話方塊中,搜尋選擇資料來源類型為HttpFile

  3. 建立HttpFile資料來源頁面,配置各項參數。在本教程中開發環境和生產環境都按樣本值填寫。

    參數

    描述

    資料來源名稱

    輸入資料來源名稱,本教程請填寫user_behavior_analysis_httpfile

    資料來源描述

    輸入DataWorks案例體驗專用資料來源,在離線同步配置時讀取該資料來源即可訪問平台提供的測試資料,該資料來源只支援Data Integration情境讀取,其他模組不支援使用。

    URL網域名稱

    開發環境和生產環境的URL網域名稱均為https://dataworks-workshop-2024.oss-cn-shanghai.aliyuncs.com

  4. 單擊指定的資源群組連通狀態(開發環境)連通狀態(生產環境)列的測試連通性,等待介面提示測試完成,連通狀態為可連通

    重要

    需確保至少一個資源群組為可連通狀態,否則此資料來源無法使用嚮導模式建立同步任務。

  5. 單擊完成建立

建立MySQL資料來源

  1. 管理中心頁面,單擊進入資料來源頁面後單擊新增資料來源

  2. 新增資料來源對話方塊中,搜尋選擇資料來源類型為MySQL

  3. 建立MySQL資料來源頁面,配置各項參數。在本教程中開發環境和生產環境都按樣本值填寫。

    參數

    描述

    資料來源名稱

    輸入資料來源名稱,本教程請填寫user_behavior_analysis_mysql

    資料來源描述

    輸入DataWorks案例體驗專用資料來源,在離線同步配置時讀取該資料來源即可訪問平台提供的測試資料,該資料來源只支援Data Integration情境讀取,其他模組不支援使用。

    配置模式

    選擇串連串模式

    串連地址

    • 主機地址IP:rm-bp1z69dodhh85z9qa.mysql.rds.aliyuncs.com

    • 連接埠號碼:3306

    資料庫名稱

    輸入資料庫名,本教程請填寫workshop·

    使用者名稱

    輸入使用者名稱,本教程請填寫workshop

    密碼

    輸入密碼,本教程請填寫workshop#2017

    認證選項

    無認證。

  4. 單擊指定的資源群組連通狀態(開發環境)連通狀態(生產環境)列的測試連通性,等待介面提示測試完成,連通狀態為可連通

  5. 單擊完成建立

建立OSS資料來源

本次實驗將MySQL資料來源的使用者資訊和HttpFile資料來源的日誌資訊同步至OSS資料來源。

  1. 管理中心頁面,單擊進入資料來源頁面後單擊新增資料來源

  2. 新增資料來源對話方塊中,搜尋選擇資料來源類型為OSS

  3. 建立OSS資料來源頁面,配置各項參數。在本教程中開發環境和生產環境都按樣本值填寫。

    參數

    描述

    資料來源名稱

    輸入資料來源的名稱,本樣本為test_g

    資料來源描述

    對資料來源進行簡單描述。

    訪問模式

    選擇Access Key模式

    AccessKey ID

    當前登入帳號的AccessKey ID,您可以進入AccessKey頁面複製AccessKey ID。

    AccessKey Secret

    輸入當前登入帳號的AccessKey Secret。

    重要

    AccessKey Secret只在建立時顯示,不支援後續再次查看,請妥善保管。如果AccessKey泄露或丟失,請刪除並建立新的AccessKey

    Endpoint

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

    Bucket

    您準備環境時建立EMR叢集配置的OSS Bucket的名稱,樣本為dw-emr-demo

  4. 單擊指定資源群組連通狀態(開發環境)連通狀態(生產環境)列的測試連通性,等待介面提示測試完成,連通狀態為可連通

    說明

    需確保至少一個資源群組為可連通狀態,否則此資料來源無法使用嚮導模式建立同步任務。

  5. 單擊完成建立

步驟二:搭建同步鏈路

  1. 單擊左上方的表徵圖表徵圖,選擇全部產品 > 資料開發與營運 > DataStudio(資料開發)

  2. 資料開發面板,按右鍵商務程序,選擇建立商務程序

  3. 建立商務程序對話方塊中,輸入業務名稱workshop_emr,然後單擊建立

  4. 進入商務程序開發面板,建立虛擬節點和離線同步節點。

    1. 單擊建立節點,選擇虛擬節點拖拽至右側的編輯頁面。在建立節點對話方塊中,輸入節點名稱workshop_start_emr,單擊確認

    2. 單擊建立節點,選擇離線同步節點拖拽至右側的編輯頁面。節點名稱分別為ods_raw_log_d_2oss_emrods_user_info_d_2oss_emr,用於後續同步MySQL使用者資訊與HttpFile日誌資訊,最後單擊確認

  5. 在商務程序開發面板,通過拖拽連線,將workshop_start_emr節點設定為兩個離線同步節點的上遊節點。

    image

步驟三:配置同步任務

配置商務程序初始節點

  1. 資料開發頁面,雙擊相應商務程序下的虛擬節點。開啟該節點的編輯頁面,單擊右側的調度配置

  2. 配置調度配置。

    調度配置

    圖片展示

    說明

    調度時間配置

    image

    • 虛擬節點配置調度時間為00:30,該虛擬節點會在每日00:30啟動當前商務程序並執行。

    • 設定重跑屬性運行成功或失敗皆可重跑

    調度依賴配置

    image

    由於虛擬節點workshop_start_emr無上遊依賴,此時可以直接依賴工作空間根節點,由工作空間根節點觸發workshop_start_emr節點執行。

    工作空間根節點命名為:工作空間名_root

  3. 配置完成後,單擊左上方的儲存表徵圖。

配置離線同步節點

  1. 同步MySQL資料來源的使用者資訊至自建的OSS。

    1. 資料開發頁面,雙擊ods_user_info_d_2oss_emr節點,進入節點配置頁面。

    2. 配置同步網路連結。

      完成以下網路與資源配置後,單擊下一步,並根據介面提示完成連通性測試。

      參數

      描述

      資料來源

      • 資料來源:MySQL。

      • 資料來源名稱:user_behavior_analysis_mysql。

      我的資源群組

      選擇已購買的Serverless資源群組

      資料去向

      • 資料去向:OSS。

      • 資料來源名稱:選擇前文建立的私人OSS資料來源,此處樣本為test_g。

    3. 配置同步任務。

      參數

      描述

      資料來源

      • :選擇資料來源中的ods_user_info_d

      • 切分鍵:建議使用主鍵或有索引的列作為切分鍵,僅支援類型為整型的欄位。此處設定切分鍵為uid

      資料去向

      • 文本類型:選擇text類型。

      • 檔案名稱(含路徑):根據您自建OSS的目錄進行輸入,樣本為ods_user_info_d/user_${bizdate}/user_${bizdate}.txt。其中ods_user_info_d為您自建的目錄名,$bizdate表示擷取前一天的日期。

      • 資料行分隔符號:輸入資料行分隔符號為|

    4. 配置調度配置。

      配置頁面單擊右側調度配置,可進入調度配置面板配置調度與節點資訊。以下為配置的內容。

      配置項

      配置內容

      圖示

      調度參數

      調度參數地區添加:

      • 參數名:bizdate

      • 參數值:$[yyyymmdd-1]

      image

      時間屬性

      設定重跑屬性運行成功或失敗皆可重跑

      image

      調度依賴

      調度依賴確認產出表已作為本節點輸出。

      格式為WorkSpaceName.節點名

      image

    5. 配置完成後,單擊工具列中的儲存表徵圖。

  1. 同步HttpFile資料來源的日誌資訊至自建的OSS。

    1. 資料開發頁面,雙擊ods_raw_log_d_2oss_emr節點,進入節點配置頁面。

    2. 配置同步網路連結。

      完成以下網路與資源配置後,單擊下一步,並根據介面提示完成連通性測試。

      參數

      描述

      資料來源

      • 資料來源:HttpFile。

      • 資料來源名稱:user_behavior_analysis_httpfile。

      我的資源群組

      選擇已購買的Serverless資源群組

      資料去向

      • 資料去向:OSS。

      • 資料來源名稱:選擇前文建立的私人OSS資料來源,此處樣本為test_g。

    3. 配置同步任務。

      參數

      描述

      資料來源

      • 檔案路徑/user_log.txt

      • 文本類型:選擇text類型。

      • 資料行分隔符號:輸入資料行分隔符號為|

      • 壓縮格式:包括None、Gzip、Bzip2和Zip四種類型,此處選擇None

      • 是否跳過表頭:選擇No。

      資料去向

      • 文本類型:選擇text類型。

      • 檔案名稱(含路徑):根據您自建OSS的目錄進行輸入,樣本為ods_raw_log_d/log_${bizdate}/log_${bizdate}.txt,其中ods_raw_log_d為您自建的目錄名,$bizdate表示擷取前一天的日期。

      • 資料行分隔符號:輸入資料行分隔符號為|

    4. 配置調度配置。

      配置頁面單擊右側調度配置,可進入調度配置面板配置調度與節點資訊。以下為配置的內容。

      配置項

      配置內容

      圖示

      調度參數

      調度參數地區添加:

      • 參數名:bizdate

      • 參數值:$[yyyymmdd-1]

      image

      時間屬性

      設定重跑屬性運行成功或失敗皆可重跑

      image

      調度依賴

      調度依賴確認產出表已作為本節點輸出。

      格式為WorkSpaceName.節點名

      image

    5. 配置完成後,單擊工具列中的儲存表徵圖,進行儲存。

建立EMR表擷取同步資料

建立兩張表ods_user_info_d_emrods_raw_log_d_emr,分別用於查詢同步後的原始的MySQL使用者資料和OSS日誌資料。

  1. 資料開發頁面開啟建立的商務程序,按右鍵EMR,選擇建立節點 > EMR Hive

  2. 建立節點對話方塊中,輸入節點名稱,單擊確認

    此處需要建立兩個EMR Hive節點(ods_user_info_d_emrods_raw_log_d_emr),用於建立對應的兩張表,並根據下圖,在商務程序開發面板通過拉線配置節點的上下遊依賴關係。

    image

  3. 分別在EMR Hive節點中輸入建表語句,並在調度配置調度資源群組選擇為已購買的Serverless資源群組,然後單擊儲存運行各建表語句。

    • 建立ods_user_info_d_emr表。

      雙擊ods_user_info_d_emr節點,進入編輯頁面,編輯建立ods_user_info_d_emr表任務。

      1. 編輯SQL代碼。

        CREATE EXTERNAL TABLE IF NOT EXISTS ods_user_info_d_emr
        (
            `uid` STRING COMMENT '使用者ID',
            `gender` STRING COMMENT '性別',
            `age_range` STRING COMMENT '年齡段',
            `zodiac` STRING COMMENT '星座'
        ) 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}/';
        說明

        上述代碼中的location為樣本路徑,與之前配置離線同步任務時的資料去向相同,需要輸入您建立的檔案路徑名稱,其中dw-emr-demo是您準備環境時建立的OSS Bucket網域名稱。

      2. 配置調度配置

        配置項

        配置內容

        圖示

        調度參數

        調度參數地區添加:

        • 參數名:bizdate

        • 參數值:$[yyyymmdd-1]

        image

        時間屬性

        設定重跑屬性運行成功或失敗皆可重跑

        image

        調度依賴

        調度依賴確認產出表已作為本節點輸出。

        格式為WorkSpaceName.節點名

        image

      3. 完成配置後,單擊image儲存節點。

    • 建立ods_raw_log_d_emr表。

      雙擊ods_raw_log_d_emr節點,編輯建立ods_raw_log_d_emr表任務。

      1. 編輯SQL代碼

        --建立OSS日誌對應目標表
        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}/';
        說明

        上述代碼中的location為樣本路徑,與之前配置離線同步任務時的資料去向相同,需要輸入您建立的檔案路徑名稱,其中dw-emr-demo是您準備環境時建立的OSS Bucket的名稱。

      2. 配置調度配置

        配置項

        配置內容

        圖示

        調度參數

        調度參數地區添加:

        • 參數名:bizdate

        • 參數值:$[yyyymmdd-1]

        image

        時間屬性

        設定重跑屬性運行成功或失敗皆可重跑

        image

        調度依賴

        調度依賴確認產出表已作為本節點輸出。

        格式為WorkSpaceName.節點名

        image

      3. 完成配置後,單擊image儲存節點。

步驟四:運行並查看結果

運行商務程序

  1. 在資料開發頁面,雙擊商務程序下的workshop_emr,開啟商務程序面板後,單擊工具列中的image.png表徵圖,按照上下遊依賴關係運行商務程序。

  2. 確認執行情況。

    • 查看任務運行狀態:

      • 節點處於image.png狀態,即代表同步執行過程無問題。

      • 節點處於image狀態,如出現java.net.ConnectException: Connection timed out (Connection timed out)報錯,您需在ECS管理主控台添加安全性群組規則,開放ECS的10000連接埠,設定授權對象為資源群組VPC的交換器網段。您可以在資源群組列表單擊對應資源群組的網路設定擷取交換器網段。關於如何添加安全性群組規則請參見添加安全性群組規則

    • 查看任務執行日誌:按右鍵ods_user_info_d_emr、ods_raw_log_d_emr節點,選擇查看日誌。當日誌中出現如下字樣,表示同步節點運行成功,並成功同步資料。

      image.png

查詢同步結果

  1. 建立臨時查詢檔案

    資料開發頁面的左側導覽列,單擊image.png,進入臨時查詢面板。按右鍵臨時查詢,選擇建立節點>EMR Hive

  2. 查詢同步結果表。

    執行如下SQL語句,確認同步資料寫入結果。查看匯入ods_raw_log_d_emr和ods_user_info_d_emr的記錄數。

    --查詢語句中的分區列需要更新為業務日期。例如,任務啟動並執行日期為20191107,則業務日期為20191106,即任務運行日期的前一天。
    SELECT * from ods_user_info_d_emr where dt=業務日期; 
    SELECT * from ods_raw_log_d_emr where dt=業務日期; 

後續步驟

現在,您已經學習了如何進行日誌資料同步,完成資料的同步,您可以繼續下一個教程。在該教程中,您將學習如何對同步的資料進行計算與分析。詳情請參見加工資料