全部產品
Search
文件中心

DataWorks:準備資料

更新時間:Oct 13, 2024

在資料準備階段,您需要同步未經處理資料至MaxCompute。

前提條件

準備資料來源

  1. 通過RDS建立MySQL執行個體,擷取RDS執行個體ID。詳情請參見快速建立RDS MySQL執行個體

  2. 在RDS控制台添加白名單。

    說明

    通過Serverless資源群組調度RDS的資料同步任務時需注意:

    • 通過內網訪問,請將資源群組綁定的交換器網段IP添加到資料來源的白名單列表。

    • 通過公網訪問,將Serverless資源群組綁定VPC配置的EIP添加至資料來源的白名單列表。

    詳情請參見:網路連通方案

  3. 下載本教程使用的未經處理資料indicators_datasteal_flag_datatrend_data

  4. 上傳未經處理資料至RDS資料來源,詳情請參見將Excel的資料匯入資料庫

新增資料來源

說明

本次實驗需要建立MySQL資料來源。

  1. 進入管理中心頁面。

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

  2. 建立MySQL資料來源。

    1. 單擊左側導覽列的資料來源 > 資料來源列表,進入資料來源列表頁面。

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

  3. 配置資料來源資訊。

    建立MySQL資料來源對話方塊,配置各項參數。本文以建立阿里雲執行個體模式類型為例。image.png

    核心參數說明如下。

    參數

    描述

    適用環境

    分別配置開發環境生產環境的資料來源。

    配置模式

    選擇阿里雲執行個體模式

    所屬雲帳號

    選擇當前雲帳號

    地區

    選擇相應地區。

    執行個體

    選擇已建立的RDS MySQL執行個體。選擇執行個體後,可單擊擷取最新地址,查看執行個體相關資訊。

    若無可用執行個體,您可進入RDS控制台建立新的執行個體。

    資料庫登入資訊

    此處配置為該資料來源對應的預設資料庫名稱,您需要輸入登入資料庫的使用者名稱稱及密碼,密碼中避免使用@符號。

    後續配置同步任務的說明如下:

    • 配置整庫同步(包含即時和離線),您可以選擇相應RDS執行個體下所有具有許可權的資料庫。

    • 配置離線同步任務,當您選擇使用多個資料庫時,則每個資料庫均需要配置一個資料來源。

    認證選項

    選擇無認證

    備庫設定

    如果資料來源具備唯讀執行個體(備庫),可以在配置任務時開啟備庫設定,並選擇備庫ID。設定備庫的優勢是防止幹擾主庫,不影響主庫效能。如果有多個唯讀執行個體,則會任選一個可用的來讀取。

    說明

    此功能僅支援Serverless資源群組。

  4. 測試資源群組連通性。

    Data Integration資料調度頁簽下,分別單擊相應資源群組後的測試連通性,連通狀態為可連通時,表示連通成功。

    說明
    • 資料同步時,一個任務只能使用一種資源群組。

    • 您需要測試每種資源群組的連通性,以保證同步任務使用的資源群組能夠與資料來源連通,否則將無法正常執行資料同步任務。

  5. 測試連通性通過後,單擊完成建立,資料來源建立完成。

建立商務程序

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

  2. 按右鍵商務程序,選擇建立商務程序

  3. 建立商務程序對話方塊中,輸入業務名稱描述

    說明

    業務名稱的長度不能超過128個字元,且必須是大小寫字母、中文、數字、底線(_)以及小數點(.)。

  4. 單擊建立

  5. 進入商務程序開發面板,並向面板中拖入一個虛擬節點(start)和三個離線同步節點(電量下降趨勢資料同步、竊電標誌資料同步和指標資料同步)分別填寫相應的配置後,單擊提交start

  6. 拖拽連線將start節點設定為三個離線同步節點的上遊節點。商務程序

配置start節點

  1. 雙擊虛擬節點,單擊右側的調度配置

  2. 設定start節點的上遊節點為工作空間根節點。

    由於新版本給每個節點都設定了輸入輸出節點,所以需要給start節點設定一個輸入。此處設定其上遊節點為工作空間根節點,通常命名為工作空間名_root根節點

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

建立表

  1. 按右鍵建立的商務程序,選擇建立表 > MaxCompute >

  2. 建立表對話方塊中,選擇引擎執行個體、路徑,輸入表名稱,單擊建立

    此處需要建立3張表,分別儲存同步過來的電量下降趨勢資料、指標資料和竊電標誌資料(trend_data、indicators_data和steal_flag_data)。

    說明

    表名不能超過64個字元,且必須以字母開頭,不能包含中文或特殊字元。

  3. 開啟建立的表,單擊DDL模式,分別輸入以下相應的建表語句。

    --電量下降趨勢表
    CREATE TABLE trend_data (
        uid BIGINT,
        trend BIGINT
    )
    PARTITIONED BY (dt string);
    --指標資料
    CREATE TABLE indicators_data (
        uid BIGINT,
        xiansun BIGINT,
        warnindicator BIGINT
    )
    COMMENT '*'
    PARTITIONED BY (ds string)
    LIFECYCLE 36000;
    --竊電標誌資料
    CREATE TABLE steal_flag_data (
        uid BIGINT,
        flag BIGINT
    )
    COMMENT '*'
    PARTITIONED BY (ds string)
    LIFECYCLE 36000;
  4. 建表語句輸入完成後,單擊產生表結構確認覆蓋當前操作。

  5. 返回建表頁面後,在基本屬性中輸入表的中文名。

  6. 完成設定後,分別單擊提交到開發環境提交到生產環境提交環境

配置離線同步節點

配置電量下降趨勢資料同步節點。

  1. 雙擊電量下降趨勢資料同步節點,進入節點配置頁面。

  2. 選擇資料來源。

    資料來源

    參數

    描述

    資料來源

    選擇MySQL > workshop

    選擇MySQL資料來源中的表trending

    資料過濾

    您將要同步資料的篩選條件,暫時不支援limit關鍵字過濾。SQL文法與選擇的資料來源一致,此處可以不填。

    切分鍵

    讀取資料時,根據配置的欄位進行資料分區,實現並發讀取,可以提升資料同步效率。此處可以不填。

  3. 選擇資料去向。

    資料去向

    參數

    描述

    資料來源

    選擇ODPS,然後選擇MaxCompute資料來源名稱。

    選擇ODPS資料來源中的表trend_data

    分區資訊

    輸入要同步的分區列,此處預設為dt=${bdp.system.bizdate}

    清理規則

    選擇寫入前清理已有資料

    Null 字元串作為null

    選擇

  4. 配置欄位對應。欄位對應

  5. 配置通道控制

    通道控制

    參數

    描述

    任務期望最大並發數

    資料同步任務內,可以從源並行讀取或並行寫入資料存放區端的最大線程數。嚮導模式通過介面化配置並發數,指定任務所使用的並行度。

    同步速率

    設定同步速率可以保護讀取端資料庫,以避免抽取速度過大,給源庫造成太大的壓力。同步速率建議限流,結合源庫的配置,請合理配置抽取速率。

    錯誤記錄數

    錯誤記錄數,表示髒資料的最大容忍條數。

  6. 確認當前節點的配置無誤後,單擊左上方的儲存表徵圖。

提交商務程序

  1. 開啟商務程序配置面板,單擊左上方的提交進行提交。

  2. 選擇提交對話方塊中需要提交的節點,輸入備忘,勾選忽略輸入輸出不一致的警示提交

  3. 單擊提交,待顯示提交成功即可。

確認資料是否成功匯入MaxCompute

  1. 資料開發頁面的左側導覽列,單擊臨時查詢,進入臨時查詢面板。

  2. 按右鍵臨時查詢,選擇建立節點 > ODPS SQL

  3. 編寫並執行SQL語句,查看匯入表trend_data、indicators_data和steal_flag_data的記錄數。

    運行

    SQL語句如下所示,其中分區列需要更新為業務日期。例如,任務啟動並執行日期為20190809,則業務日期為201900808。

    --查看是否成功寫入MaxCompute
    SELECT COUNT(*) FROM trend_data WHERE dt=業務日期;
    SELECT COUNT(*) FROM indicators_data WHERE ds=業務日期;
    SELECT COUNT(*) FROM steal_flag_data WHERE ds=業務日期;

後續步驟

現在,您已經學習了如何通過資料同步採集資料,您可以繼續下一個教程。在該教程中,您將學習如何對採集的資料進行計算與分析。