すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:Oracle から MaxCompute へのデータ移行に関するベストプラクティス

最終更新日:Mar 26, 2026

このトピックでは、DataWorks の Data Integration 機能を使用して Oracle から MaxCompute へデータを移行する方法について説明します。

前提条件

  • DataWorks 環境を準備します。

    1. MaxCompute を有効化します。

    2. ワークスペースを作成します。このトピックでは、基本モードのワークスペースを例として使用します。

    3. DataWorks でビジネスフローを作成します。詳細については、「ビジネスフローの作成」をご参照ください。

  • Oracle 環境を準備します。

    このトピックでは、Oracle が Elastic Compute Service (ECS) インスタンスにインストールされており、以下の構成となっています。ネットワーク接続を確保するため、ECS インスタンスにパブリック IP アドレスを割り当て、Oracle データベースのデフォルトポートである 1521 番ポートへのトラフィックを許可するようセキュリティグループルールを設定する必要があります。詳細については、「セキュリティグループルールの変更」をご参照ください。

    上図に示すとおり、このトピックでは中国 (杭州) リージョンの VPC 内にある ecs.c5.xlarge ECS インスタンスを使用します。

背景情報

このトピックでは、DataWorks Oracle Reader を使用して Oracle からテストデータを読み取ります。詳細については、「Oracle Reader」をご参照ください。

Oracle でのテストデータの準備

  1. Oracle のグラフィカルユーザーインターフェイス (GUI) を開き、DTSTEST.GOOD_SALE という名前のテーブルを作成します。このテーブルには、create_time、category、brand、buyer_id、trans_num、trans_amount、click_cnt の 7 つのカラムを含める必要があります。

  2. テストデータを挿入します。この例では、手動でデータを挿入します。

    insert into good_sale values('28-Dec-19','Kitchenware','BrandA','hanmeimei','6','80.6','4');
    insert into good_sale values('21-Dec-19','FreshFood','BrandB','lilei','7','440.6','5');
    insert into good_sale values('29-Dec-19','Apparel','BrandC','lily','12','351.9','9');
    commit;
  3. データを挿入した後、次の文を実行してテーブルのデータを確認します。

    select * from good_sale;

DataWorks を使用した Oracle から MaxCompute へのデータ移行

  1. DataWorks コンソールにログインします。上部のナビゲーションバーで目的のリージョンを選択し、左側のナビゲーションウィンドウで データ開発・運用 > データ開発 を選択します。表示されたページでドロップダウンリストから目的のワークスペースを選択し、データ開発に移動 をクリックします。

  2. Data Studio ページで、Oracle から移行されたデータを格納するための宛先テーブルを作成します。

    1. ビジネスフローを右クリックし、新規テーブル > MaxCompute > テーブル を選択します。

    2. テーブル作成 ページで、テーブルの基本情報を構成します。

    3. テーブルエディターページの上部で、DDL モード をクリックします。

    4. DDL ダイアログボックスで、テーブル作成文を入力し、テーブルスキーマを生成 をクリックします。

      CREATE TABLE good_sale 
      (
          create_time     string,
          category        string,
          brand           string,
          buyer_id        string,
          trans_num       bigint,
          trans_amount    double,
          click_cnt       bigint
      ) ;

      テーブル作成時には、Oracle と MaxCompute 間のデータの型のマッピングを考慮してください。Oracle Reader がサポートするデータの型の詳細については、「データの型のマッピング」をご参照ください。

    5. 本番環境に送信 をクリックします。

  3. Oracle データソースを作成します。詳細については、「Oracle データソースの構成」をご参照ください。

  4. オフライン同期ノードを作成します。

    1. データ分析ページに移動します。指定されたワークフローを右クリックし、ノードの作成 > Data Integration > オフライン同期 を選択します。

    2. ノード作成 ダイアログボックスで、ノードの基本情報を構成し、OK をクリックします。

    3. オフラインデータ同期ノードが作成されたら、ネットワークとリソースの構成 タブで、データソース を追加済みの Oracle データソースに、データ宛先 を MaxCompute データソースに設定します。マイリソースグループ セクションで使用するリソースグループを選択し、接続テスト をクリックします。その後、次へ をクリックします。データソースと宛先の構成 タブで、データソース および データ宛先 の両方の テーブル パラメーターを作成したテストテーブルに設定します。フィールドマッピング セクションで、同名マッピング を選択します。その他のパラメーターはデフォルト設定のままにしておけます。

    4. アイコン ** をクリックしてコードを実行します。

    5. 操作ログ で結果を確認できます。

検証結果

  1. ワークフローを右クリックし、新規 > MaxCompute > ODPS SQL を選択します。

  2. ノード作成 ダイアログボックスで、ノードの基本情報を構成し、OK をクリックします。

  3. ODPS SQL ノードエディターページで、次の文を入力します。

    -- MaxCompute にデータが書き込まれているかを確認します。
    select * from good_sale;
  4. アイコン ** をクリックしてコードを実行します。

  5. 実行ログ で結果を確認できます。