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

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

最終更新日:Jul 10, 2025

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

前提条件

  • DataWorks環境が準備されました。

    1. MaxComputeとDataWorksが有効化されています。 詳細については、「MaxComputeとDataWorksの有効化」をご参照ください。

    2. ワークスペースが作成済み。 詳細については、「ワークスペースを作成する」をご参照ください。 この例では、基本モードのワークスペースが使用されます。

    3. ワークフローは、DataWorksコンソールのワークスペースに作成されます。 詳細については、「ワークフローの作成」をご参照ください。

  • Oracleデータベースが準備されています。

    この例では、OracleデータベースはElastic Compute Service (ECS) インスタンスにインストールされています。 ネットワーク通信を有効にするには、ECSインスタンスのパブリックIPアドレスを設定する必要があります。 さらに、ECSインスタンスのセキュリティグループルールを設定して、Oracleデータベースの共通ポート1521にアクセスできるようにする必要があります。 次の図に ECS インスタンスの設定を示します。 ECSインスタンスのセキュリティグループルールを設定する方法の詳細については、「セキュリティグループルールの変更」をご参照ください。

    この例では、ECSインスタンスのタイプはecs.c5.xlargeです。 ECSインスタンスは、中国 (杭州) リージョンの仮想プライベートクラウド (VPC) にあります。

背景情報

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

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

  1. Oracleデータベースで、DTSTEST.GOOD_SALEという名前のテーブルを作成します。 テーブルには、create_time、category、brand、buyer_id、trans_num、trans_amount、click_cntの列があります。

  2. 次のステートメントを実行して、DTSTEST.GOOD_SALEテーブルにテストデータを挿入します。

    insert into good_sale values('28-December-19','Kitchenware','Brand A','hanmeimei','6','80.6','4');
    insert into good_sale values('21-December-19','Fresh food','Brand B','lilei','7','440.6','5');
    insert into good_sale values('29-December-19','Clothing','Brand C','lily','12','351.9','9');
    commit;
  3. 次のステートメントを実行して、テーブルのデータを表示します。

    select * from good_sale;

DataWorksを使用してOracleデータベースからMaxComputeにデータを移行する

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

  2. On theDataStudioページで、Oracleデータベースから移行されたデータを格納するテーブルを作成します。

    1. [DataStudio] ページの [スケジュール済みワークフロー] ペインで、作成したワークフローを検索し、ワークフロー名を右クリックして、テーブルの作成 > MaxCompute > テーブルを選択します。

    2. では、テーブルの作成ダイアログボックスで、テーブルに関する基本情報を設定します。

    3. テーブルの構成タブの上部ツールバーで、DDL. をクリックします。

    4. では、DDLダイアログボックスで、次のCREATE TABLEステートメントを入力し、テーブルスキーマの生成. をクリックします。

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

      作成するMaxComputeテーブルのデータ型がOracleテーブルのデータ型と一致していることを確認します。 Oracle Readerでサポートされているデータ型の詳細については、「Oracle データソース」をご参照ください。

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

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

  4. バッチ同期タスクを作成します。

    1. データ分析ページに移動します。 指定したワークフローを右クリックし、[新規] > [データ統合] > [オフライン同期] を選択します。

    2. では、ノードの作成ダイアログボックスで、[名前] フィールドにノード名を入力し、確認.

    3. バッチ同期タスクを作成した後、[ネットワーク接続とリソースグループの設定] ステップで、ソースとしてOracleデータソース、ターゲットとしてMaxComputeデータソース、およびリソースグループを選択します。 次に、[すべてのデータソースの接続のテスト] をクリックして、リソースグループとデータソース間のネットワーク接続をテストします。 接続テストが成功したら、[次へ] をクリックします。 [ソースと宛先の設定] ページで、[テーブル] パラメーターを作成したOracleテーブルに設定します。 [フィールドマッピング] ページで、[同じ名前でマップ] をクリックします。 他のパラメーターのデフォルト値を保持します。

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

    5. できます操作ログ結果を表示します。

移行結果の確認

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

  2. では、ノードの作成ダイアログボックスで、[名前] フィールドにノード名を入力し、確認. をクリックします。

  3. ODPS SQLノードの [設定] タブで、次のステートメントを入力します。

    -- Check whether the data is synchronized to MaxCompute. 
    select * from good_sale;
  4. **アイコンをクリックしてコードを実行します。

  5. 操作ログをできて結果を表示します。