日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

RDS遷移至MaxCompute實現(xiàn)動態(tài)分區(qū)

本文為您介紹如何使用DataWorks數(shù)據(jù)集成同步功能自動創(chuàng)建分區(qū),動態(tài)地將RDS中的數(shù)據(jù)遷移至MaxCompute大數(shù)據(jù)計算服務。

前提條件

自動創(chuàng)建分區(qū)

準備工作完成后,需要將RDS中的數(shù)據(jù)定時每天同步到MaxCompute中,自動創(chuàng)建按天日期的分區(qū)。詳細的數(shù)據(jù)同步任務的操作和配置請參見DataWorks數(shù)據(jù)開發(fā)和運維

  1. 登錄DataWorks控制臺

  2. 在MaxCompute上創(chuàng)建目標表。

    1. 在左側導航欄,單擊工作空間列表

    2. 單擊相應工作空間操作列的快速進入 > 數(shù)據(jù)開發(fā)

    3. 右鍵單擊已創(chuàng)建的業(yè)務流程,選擇新建 > MaxCompute >

    4. 新建表頁面,選擇引擎類型并輸入表名

    5. 在表的編輯頁面,單擊DDL模式

    6. DDL對話框,輸入如下建表語句,單擊生成表結構

      CREATE TABLE IF NOT EXISTS ods_user_info_d (
      uid STRING COMMENT '用戶ID',
      gender STRING COMMENT '性別',
      age_range STRING COMMENT '年齡段',
      zodiac STRING COMMENT '星座'
      )
      PARTITIONED BY (
      dt STRING
      );                           
    7. 單擊提交到生產(chǎn)環(huán)境

  3. 新建離線同步節(jié)點。

    1. 進入數(shù)據(jù)開發(fā)頁面,右鍵單擊指定業(yè)務流程,選擇新建節(jié)點 > 數(shù)據(jù)集成 > 離線同步

    2. 新建節(jié)點對話框中,輸入節(jié)點名稱,并單擊確認

    3. 選擇數(shù)據(jù)來源和數(shù)據(jù)去向。

      **

  4. 配置分區(qū)參數(shù)。

    1. 在右側導航欄上,單擊調度配置

    2. 調度參數(shù)區(qū)域,設置參數(shù)。參數(shù)值默認為系統(tǒng)自帶的時間參數(shù)${bizdate},格式為yyyymmdd。

      說明

      默認參數(shù)值與數(shù)據(jù)去向中的分區(qū)信息值對應。調度執(zhí)行遷移任務時,目標表的分區(qū)值會被自動替換為任務執(zhí)行日期的前一天,默認情況下,您會在當前執(zhí)行前一天的業(yè)務數(shù)據(jù),這個日期也叫做業(yè)務日期。如果您需要使用當天任務運行的日期作為分區(qū)值,則需自定義參數(shù)值。

      自定義參數(shù)設置:用戶可以自主選擇某一天和格式配置,如下所示:

      • 后N年:$[add_months(yyyymmdd,12*N)]

      • 前N年:$[add_months(yyyymmdd,-12*N)]

      • 前N月:$[add_months(yyyymmdd,-N)]

      • 后N周:$[yyyymmdd+7*N]

      • 后N月:$[add_months(yyyymmdd,N)]

      • 前N周:$[yyyymmdd-7*N]

      • 后N天:$[yyyymmdd+N]

      • 前N天:$[yyyymmdd-N]

      • 后N小時:$[hh24miss+N/24]

      • 前N小時:$[hh24miss-N/24]

      • 后N分鐘:$[hh24miss+N/24/60]

      • 前N分鐘:$[hh24miss-N/24/60]

      說明
      • 使用中括號([])編輯自定義變量參數(shù)的取值計算公式,例如 key1=$[yyyy-mm-dd]

      • 默認情況下,自定義變量參數(shù)的計算單位為天。例如 $[hh24miss-N/24/60] 表示 (yyyymmddhh24miss-(N/24/60 * 1天)) 的計算結果,然后按 hh24miss 的格式取時分秒。

      • 使用add_months的計算單位為月。例如 $[add_months(yyyymmdd,12 N)-M/24/60] 表示 (yyyymmddhh24miss-(12 * N * 1月))-(M/24/60 * 1天) 的結果,然后按 yyyymmdd 的格式取年月日。

      詳細的參數(shù)設置請參見調度參數(shù)支持的格式

  5. 單擊**圖標運行代碼。

  6. 您可以在運行日志查看運行結果。

補數(shù)據(jù)實驗

如果您的數(shù)據(jù)中存在大量運行日期之前的歷史數(shù)據(jù),需要實現(xiàn)自動同步和自動分區(qū)。您可以通過DataWorks的運維中心,選擇當前的同步數(shù)據(jù)節(jié)點,使用補數(shù)據(jù)功能實現(xiàn)。

  1. 在RDS端按照日期篩選出歷史數(shù)據(jù)。

    您可以在同步節(jié)點數(shù)據(jù)來源區(qū)域設置數(shù)據(jù)過濾條件。

  2. 執(zhí)行補數(shù)據(jù)操作。詳情請參見執(zhí)行補數(shù)據(jù)并查看補數(shù)據(jù)實例(新版)

  3. 在運行的日志中查看對RDS數(shù)據(jù)的抽取結果。

    從運行結果中可以看到MaxCompute已自動創(chuàng)建分區(qū)。

  4. 運行結果驗證。在MaxCompute客戶端執(zhí)行如下命令,查看數(shù)據(jù)寫入情況。

    SELECT count(*) from ods_user_info_d where dt = 20180913;

Hash實現(xiàn)非日期字段分區(qū)

如果您的數(shù)據(jù)量較大,或沒有按照日期字段對第一次全量的數(shù)據(jù)進行分區(qū),而是按照省份等非日期字段分區(qū),則此時數(shù)據(jù)集成操作將不能實現(xiàn)自動分區(qū)。這種情況下,您可以按照RDS中某個字段進行Hash,將相同的字段值自動存放到這個字段對應值的MaxCompute分區(qū)中。

  1. 將數(shù)據(jù)全量同步到MaxCompute的一個臨時表,創(chuàng)建一個SQL腳本節(jié)點。執(zhí)行如下命令。

    drop table if exists ods_user_t;
    CREATE TABLE ods_user_t ( 
            dt STRING,
            uid STRING,
            gender STRING,
            age_range STRING,
            zodiac STRING);
    --將MaxCompute表中的數(shù)據(jù)存入臨時表。
    insert overwrite table ods_user_t select dt,uid,gender,age_range,zodiac from ods_user_info_d;         
  2. 創(chuàng)建同步任務的節(jié)點mysql_to_odps,即簡單的同步任務。將RDS數(shù)據(jù)全量同步到MaxCompute,無需設置分區(qū)。

  3. 使用SQL語句進行動態(tài)分區(qū)到目標表,命令如下。

    drop table if exists ods_user_d;
    //創(chuàng)建一個ODPS分區(qū)表(最終目的表)。
        CREATE TABLE ods_user_d (
        uid STRING,
            gender STRING,
            age_range STRING,
            zodiac STRING
    )
    PARTITIONED BY (
        dt STRING
    );
    //執(zhí)行動態(tài)分區(qū)SQL,按照臨時表的字段dt自動分區(qū),dt字段中相同的數(shù)據(jù)值,會按照這個數(shù)據(jù)值自動創(chuàng)建一個分區(qū)值。
    //例如dt中有些數(shù)據(jù)是20181025,會自動在ODPS分區(qū)表中創(chuàng)建一個分區(qū),dt=20181025。
    //動態(tài)分區(qū)SQL如下。
    //可以注意到SQL中select的字段多寫了一個dt,就是指定按照這個字段自動創(chuàng)建分區(qū)。
    insert overwrite table ods_user_d partition(dt)select dt,uid,gender,age_range,zodiac from ods_user_t;
    //導入完成后,可以把臨時表刪除,節(jié)約存儲成本。
    drop table if exists ods_user_t;

    在MaxCompute中您可以通過SQL語句完成數(shù)據(jù)同步。

  4. 將三個節(jié)點配置成一個工作流,按順序執(zhí)行。

  5. 查看執(zhí)行過程。您可以重點觀察最后一個節(jié)點的動態(tài)分區(qū)過程。

    **

  6. 運行結果驗證。在MaxCompute客戶端執(zhí)行如下命令,查看數(shù)據(jù)寫入情況。

    SELECT count(*) from ods_user_d where dt = 20180913;