このトピックでは、DataWorksのデータ統合機能を使用してOracleからMaxComputeにデータを移行する方法について説明します。
前提条件
DataWorks環境が準備されました。
MaxComputeとDataWorksが有効化されています。 詳細については、「MaxComputeとDataWorksの有効化」をご参照ください。
ワークスペースが作成済み。 詳細については、「ワークスペースを作成する」をご参照ください。 この例では、基本モードのワークスペースが使用されます。
ワークフローは、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データベースでのテスト・データの準備
Oracleデータベースで、DTSTEST.GOOD_SALEという名前のテーブルを作成します。 テーブルには、create_time、category、brand、buyer_id、trans_num、trans_amount、click_cntの列があります。
次のステートメントを実行して、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;次のステートメントを実行して、テーブルのデータを表示します。
select * from good_sale;
DataWorksを使用してOracleデータベースからMaxComputeにデータを移行する
DataWorks コンソールにログインします。 上部のナビゲーションバーで、目的のリージョンを選択します。 左側のナビゲーションウィンドウで、 を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[データ開発] をクリックします。
On theDataStudioページで、Oracleデータベースから移行されたデータを格納するテーブルを作成します。
[DataStudio] ページの [スケジュール済みワークフロー] ペインで、作成したワークフローを検索し、ワークフロー名を右クリックして、を選択します。
では、テーブルの作成ダイアログボックスで、テーブルに関する基本情報を設定します。
テーブルの構成タブの上部ツールバーで、DDL. をクリックします。
では、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 データソース」をご参照ください。
本番環境に送信.をクリックします。
Oracle接続を作成します。 詳細については、「racleデータ・ソースの追加」をご参照ください。
バッチ同期タスクを作成します。
データ分析ページに移動します。 指定したワークフローを右クリックし、 を選択します。
では、ノードの作成ダイアログボックスで、[名前] フィールドにノード名を入力し、確認.
バッチ同期タスクを作成した後、[ネットワーク接続とリソースグループの設定] ステップで、ソースとしてOracleデータソース、ターゲットとしてMaxComputeデータソース、およびリソースグループを選択します。 次に、[すべてのデータソースの接続のテスト] をクリックして、リソースグループとデータソース間のネットワーク接続をテストします。 接続テストが成功したら、[次へ] をクリックします。 [ソースと宛先の設定] ページで、[テーブル] パラメーターを作成したOracleテーブルに設定します。 [フィールドマッピング] ページで、[同じ名前でマップ] をクリックします。 他のパラメーターのデフォルト値を保持します。
クリック
アイコンを使用してコードを実行します。できます操作ログ結果を表示します。
移行結果の確認
ワークフローを右クリックし、.を選択します。
では、ノードの作成ダイアログボックスで、[名前] フィールドにノード名を入力し、確認. をクリックします。
ODPS SQLノードの [設定] タブで、次のステートメントを入力します。
-- Check whether the data is synchronized to MaxCompute. select * from good_sale;
アイコンをクリックしてコードを実行します。操作ログをできて結果を表示します。