データ同期タスク

最終更新日: Nov 26, 2017

現在、データ同期ジョブによってサポートされているデータソースタイプには、MaxCompute、RDS(MySQL、SQL Server、PostgreSQL)、Oracle、FTP、ADS、OSS、OCS、およびDRDS があります。

1

たとえば、RDSからMaxComputeへのデータ同期をとると、詳細な説明は次のようになります。

ステップ1:データテーブルを作成

MaxComputeテーブルの作成方法の詳細については、テーブルを作成を参照してください。

ステップ2:データソースを作成

注意

プロジェクト管理者ロールを持つユーザーだけが新しいデータソースの作成を許可されます。

準備

現在、中国東部1(杭州)のみリージョン RDSデータソースとしてサポートされており、北京はリージョンまだサポートされていません。また、杭州リージョンのRDSデータソースをテスト中に接続できない場合は、データ同期サーバーのIPアドレスのホワイトリストをRDSに追加する必要があります。

10.152.69.0/24,10.153.136.0/24,10.143.32.0/24,120.27.160.26,10.46.67.156,120.27.160.81,10.46.64.81,121.43.110.160,10.117.39.238,121.43.112.137,10.117.28.203,118.178。 84.74,10.27.63.41,118.178.56.228,10.27.63.60,118.178.59.233,10.27.63.38,118.178.142.154,10.27.63.15

特定の手順は次のとおりです。

  1. Alibaba Cloud Dataplusプラットフォーム> DataWorks Kit > コンソール に移動し、対応するプロジェクトのアクションバーにワークゾーンを入力をクリックします。

  2. 上部のメニューバーでプロジェクト管理をクリックし、左側のナビゲーションバーでデータソースの管理をクリックします。

  3. 新しいデータソースをクリックします。

    1

  4. [新規データソース]ポップアップボックスに設定項目を入力します。

    1

    上記の図の構成項目の具体的な説明は次のとおりです。

    • データソース名:データソース名は、文字、数字、およびアンダースコアで構成されます。文字またはアンダースコアで始まり、長さが30文字を超えてはいけません。
    • データソースの説明:データソースの簡単な説明。説明は1,024文字を超えないようにしてください。
    • データソースタイプ:現在選択されているデータソースタイプ(RDS> MySQL> RDS)。
    • RDSインスタンスID:MySQLデータソースRDSインスタンスのID。
    • RDSインスタンス購入者ID:MySQLデータソースRDSインスタンスの購入者ID。

    注意:データソースを設定するためにJDBCフォームを選択した場合、JDBC接続情報の形式は jdbc:mysql:// IP:Port/databaseです。

    • データベース名:データ・ソースのデータベース名。
    • ユーザー名/パスワード:データベースのユーザー名とパスワード。
  5. 接続テストをクリックします。

  6. テスト結果が正常に接続されている場合は、[保存]ボタンをクリックして設定情報を保存します。

他のタイプのデータソース(MaxCompute、RDS、Oracle、FTP、ADS、OSS、OCS、およびDRDS)の詳細な設定については、データソース設定を参照してください。

ステップ3:新しいジョブを作成

例として、「ウィザードモード」の新しいタスクを実行します。

  1. データ統合インターフェースで、左側のナビゲーションバーをクリックしてタスクを同期させます。
  2. インターフェースのウィザードモードをクリックして、タスク構成ページを表示します。

    1

ステップ4:データ同期ジョブを設定

同期ジョブノードには、 “データソースとターゲットの選択” “フィールドマッピング” “チャンネルコントロール” プレビュー&セーブの5つの設定項目があります。

  1. データソースを選択する

データソース情報元(データソースはステップ2で作成されています)を選択し、データテーブルを選択します。

1

  • 抽出フィルタリング:対応するSQL構文に基づいてWHEREフィルタを指定できます(WHEREキーワードを指定する必要はありません)。WHEREフィルタは、増分同期の条件として使用されます。

    WHEREフィルタは、ソースデータのフィルタリングに使用されます。指定された列、表、およびWHEREフィルターが連結され、データ抽出用のSQLコマンドが作成されます。WHEREフィルタは、完全同期と増分同期に使用できます。具体的な説明は次のとおりです。

    • 完全同期:
      完全同期は、通常、初めてデータをインポートするときに実行されます。WHEREフィルタを設定する必要はありません。テスト中に大きなデータサイズを避けるために、WHEREフィルタの制限を10に設定できます。
      • インクリメンタル同期:
        実際のサービスシナリオでは、増分同期は通常、現在の日に生成されたデータを同期させます。WHEREフィルタをコンパイルする前に、通常、テーブル内のインクリメント(タイムスタンプ)を記述するフィールドを決定する必要があります。たとえば、表Aの場合、増分を表すフィールドが「creat_time」である場合、WHEREフィルタで「creat_time> $ yesterday」をコンパイルし、パラメータ設定でパラメータに値を割り当てる必要があります。
  • 分割キー:データ同期ジョブがRDS / Oracle / MaxComputeの場合、分割キー構成がページに表示されます。

    整数フィールドのみをサポートしています。データの読み込み中は、設定されたフィールドに基づいてデータが分割され、同時読み取りが可能になり、データの同期効率が向上します。分割キー構成項目は、同期ジョブがMaxComputeにRDS / Oracleデータをインポートする場合にのみ表示されます。

    ソースがMySQLデータソースである場合、データ同期ジョブはデータベースベースおよびテーブルベースのデータのインポートもサポートします(データが同じデータベースに格納されているか異なるデータベースに格納されているかにかかわらず、テーブル構造が一貫している必要があることを前提としています) 。

    データベースベースおよびテーブルベースのデータインポートでは、以下のシナリオがサポートされています。

    • 同じデータベース内の複数のテーブル:テーブルの検索をクリックしてテーブルを検索し、同期するテーブルを追加します。

    • 異なるデータベースの複数のテーブル:最初に追加をクリックしてソースデータベースを選択し、テーブル検索をクリックしてテーブルを追加します。

  1. データターゲットを選択する

テーブルの高速設定をクリックすると、ソーステーブルの集計ステートメントをMaxCompute SQL構文に準拠するDDLステートメントに変換して、ターゲットテーブルを作成することができます。必要な選択を行ったら、[次へ]をクリックします。

1

  • パーティション情報:パーティション化は、一部のデータによって導入された特別な列を簡単に検索するのに役立ちます。パーティションを指定することで、目的のデータをすばやく見つけることができます。定数パーティションと可変パーティションがサポートされています。
  • クリアルール:

    • 書き込む前に既存のデータをクリア:データをインポートする前に、テーブルまたはパーティション内のすべてのデータをクリアする必要があります。これは上書き挿入と同じです。

    • 書き込み前に既存のデータを保持:データをインポートする前にデータを消去する必要はありません。新しいデータは常に各ランで追加されます。これは 挿入する と同等です。

    下の図に示すように、パラメータ設定のパラメータに値を割り当てます。1

    1. フィールドマッピング

フィールドマッピング関係を設定する必要があります。左側のソーステーブルフィールドは、右側のターゲットテーブルフィールドと1対1で対応しています。

1

  • 追加/削除:フィールドを追加するには、ラインを追加をクリックします。上の行にカーソルを移動して移動し、 削除 **アイコンをクリックすると、現在のフィールドが削除されます。

ユーザー定義の変数と定数の書き込みメソッド:MaxComputeテーブルのフィールドに定数または変数をインポートするには、 挿入 ボタンをクリックして、一重引用符で囲んだ定数または変数の値を入力するだけです。たとえば、’${yesterday}’変数の場合、yesterday = $ [yyyymmdd]などのパラメータ設定コンポーネントを使用して変数に値を割り当てることができます。

  1. チャネル制御

Channel Control は、図に示すように、ジョブの最大速度とダーティデータチェックルールを設定するために使用されます。

1

  • ジョブの最大速度は、現在のデータ同期ジョブの速度を指し、最大値は10 MB /秒です(チャネルトラフィック測定値はデータ同期ジョブの測定値であり、実際のネットワークインターフェイスカードのトラフィック)。

ダーティデータチェックルール(RDSおよびOracleにデータを書き込むために使用可能):

  • エラーレコードの数(ダーティデータの量)が設定数を超えると、データ同期ジョブは終了します。
  1. プレビューと保存

上記の設定が完了したら、次へをクリックして、正しい場合は 保存 をクリックします。

1

ステップ5:データ同期ジョブを送信し、ワークフローをテスト

  1. 上部のメニューバーをクリックしてジョブを送信します。

  2. ジョブが正常に送信されたら、[テスト実行]をクリックします。

    この例のソーステーブルのいくつかのcreatetime値は2017-01-04であるため、設定で使用されるスケジューリング時間パラメータは$ [yyyy-mm-dd-1]と$ {bdp.system.bizdate}ですが、ターゲット表のパーティション値を20170104に設定し、2017-01-04の値をテストのcreatetimeパラメーターに割り当てます。次の図に示すように、2017-01-04をテストの営業時間として選択する必要があります。

    1

テストタスクが正常に実行されたら、 [O&Mセンターに戻る ]をクリックしてタスクの進行状況を表示できます。

1

  1. 同期データを表示します。

    1