Oracle by ExampleブランドAutonomous Transaction Processingへのデータのロード

第0項始める前に

このチュートリアルでは、Oracle Object StoreのデータをAutonomous Transaction Processing内のデータベースにロードする方法を説明します。このチュートリアルを完了するのに要する時間は約15分です。

Oracle Autonomous Transaction Processingチュートリアル・シリーズ

これは、Autonomous Transaction Processingの一連のチュートリアルで3番目のものです。チュートリアルを順番に実施してください。

背景   

Oracle Databaseツールと、オラクル社またはサードパーティ製のデータ統合ツールを使用して、Autonomous Transaction Processingにデータをロードできます。次のようにデータをロードできます。

  • クライアント・コンピュータのローカル・ファイルから、または
  • クラウドベースのオブジェクト・ストアに格納されているファイルから

データ・ロードの速度を上げるため、Autonomous Transaction Processingデータベースにデータをロードする前に、Oracle Cloud Infrastructure Object Storageなどのクラウドベースのオブジェクト・ストアにソース・ファイルをアップロードしておくことをお薦めします。

クラウド内のファイルからAutonomous Transaction Processingデータベースにデータをロードするには、新しいPL/SQL DBMS_CLOUDパッケージを使用します。DBMS_CLOUDパッケージは、Oracle Cloud Infrastructure Object Storage、Oracle Cloud Infrastructure Object Storage Classic、Amazon AWS S3といったクラウド・ソースからのデータ・ファイルのロードをサポートしています。

このチュートリアルでは、DBMS_CLOUDパッケージに含まれている2つのプロシージャを使用してOracle Cloud Infrastructure Object Storageからデータをロードする方法を説明します。

  • create_credential: Autonomous Transaction Processingスキーマにオブジェクト・ストア資格証明を格納します。
    • このプロシージャを使用して、前のチュートリアルで定義したAutonomous Transaction Processingのatpc_userスキーマにオブジェクト・ストア資格証明を作成します。
  • copy_data: 指定されたソース・ファイルを表にロードします。表はAutonomous Transaction Processingデータベースに存在している必要があります。
    • このプロシージャを使用して、Oracle Cloud Infrastructure Object Storageクラウド・サービスにステージングされたデータ・ファイルからatpc_userスキーマ内の表にデータをロードます。
    • このチュートリアルでは、SH(Oracleサンプル・スキーマからの販売履歴表: SALES、COSTS、TIMES、PRODUCTS、CHANNELS、PROMOTIONS、CUSTOMERS、COUNTRIES、SUPPLEMENTARY_DEMOGRAPHICS)にデータをロードする方法を説明します。
    • データのロードの詳細は、クラウド内のファイルからのデータのロードのドキュメントを参照してください。

前提条件

  • Autonomous Transaction Processing Cloud Serviceのデータベースへのアクセス。このシリーズの前のチュートリアルとドキュメントを参照してください: Oracle Autonomous Data Warehouse Cloudの使用
  • データ・ファイルがすでにステージング領域にアップロードされていること。または、次の第1項の手順を実行して、データ・ファイルをOracle Cloud Infrastructure Object Storageサービスにアップロードしていること。
    • オブジェクト・ストアにすでに存在するデータ・ファイルを使用する場合は、Autonomous Transaction Processing表にコピーするファイルのURLパスとオブジェクト・ストア資格証明を、クラウド管理者から入手していること。
    • データ・ファイルをOracle Cloud Infrastructure Object Storageのオブジェクト・ストアにアップロードする場合は、クラウド・テナント名と、データを格納するオブジェクト・ストアの場所に対し読取り/書込み権限のあるユーザー名およびパスワードをクラウド管理者から入手していること。
  • Oracle SQL Developer (Oracle Technology Networkダウンロード・サイトを参照)。18.2以降のバージョンをダウンロードすることをお薦めします。このバージョンには主要Autonomous DW Cloud機能に対する拡張機能が含まれています。SQL Developer 17.3.1もAutonomous DW Cloudで動作します。17.3.1より前のバージョンは動作しません。
    注意:
    64ビット・プラットフォームのWindowsを使用している場合は、「Windows 64-bit with JDK 9 included」ディストリビューションをダウンロードしてください。これには、SQL Developerの実行とAutonomous Transaction Processingデータベースへの接続で必要となるファイルが含まれています。
    Windowsを使用していない場合は、お使いのオペレーティング・システムに適したJava 8 JDKをダウンロードしてインストールしてください。
  • 前のチュートリアルで定義したまたはAutonomous Transaction Processing管理者から入手したクライアント資格証明zipファイルおよびキーストア・パスワード。このファイルには、SQL DeveloperをAutonomous Transaction Processingデータベースに接続するためのセキュリティ資格証明が含まれています。

第1項 データ・ファイルのオブジェクト・ストアへのアップロード

Autonomous Transaction Processingデータベースにロードするデータ・ファイルをクラウドベースのオブジェクト・ストアにアップロードします。このチュートリアルでは、Oracle Cloud Infrastructure Object Storageサービスのオブジェクト・ストアを使用します。

  1. Oracle Cloud管理者から提供された資格証明(クラウド・テナント、ユーザー名、パスワード)を使用して、Oracle Cloud Infrastructureコンソールにログインします。
    ユーザー名とパスワードでサインイン
    図log_in_to_oci_object_storage_with_username_passwordの説明
  2. コンソールの右上の「ストレージ」メニューから「オブジェクト・ストレージ」を選択します。
    オブジェクト・ストレージを選択
    図select_object_storageの説明
  3. データベース表データをアップロードするためのバケットの作成先コンパートメントを選択します。
    コンパートメントの選択
    図select_a_compartmentの説明
  4. バケットの作成をクリックし、ソース・ファイルをアップロードするためのストレージ・バケットを作成します。後でこのステージング済データをAutonomous Transaction Processingデータベース内の表にコピーします。
    バケットの作成
    図create_a_bucketの説明
  5. バケット名を入力し、標準のストレージ層を選択して、バケットの作成をクリックします。
    バケットの作成ダイアログ
    図create_a_bucket_dialogの説明
  6. 「オブジェクトのアップロード」をクリックし、バケットにアップロードするデータ・ファイルを選択します。
    オブジェクトのアップロードをクリック
    図click_upload_objectの説明
  7. ローカル・コンピュータ上のデータ・ファイルのある場所に移動します。各ファイルをドラッグ・アンド・ドロップするか「オブジェクトのアップロード」をクリックして各ファイルをアップロードします。
    この例では、SH(Oracleサンプル・スキーマからの販売履歴表)のデータ・ファイルをアップロードします。ここをクリックして、オブジェクト・ストアにアップロードする10個のSHデータ・ファイルが格納されたzipファイルをダウンロードします。
    注意: または、curlコマンドを使用して、多数のファイルをアップロードできます。
    バケットにデータ・ファイルをアップロード
    図upload_data_files_to_bucketの説明
  8. データ・ファイルがバケットにアップロードされます。クラウドにステージングされているこれらのファイルは、Autonomous Transaction Processingデータベースの表にコピーできます。このままOracle Cloud Infrastructure Object Storageにログインした状態を維持します。
  9. バケットにアップロードされたデータ・ファイル
    図uploaded_data_files_in_bucketの説明

第1項 オブジェクト・ストア認証トークンを作成します

Oracle Cloud Infrastructure Object Storageオブジェクト・ストアからデータをロードするには、オブジェクト・ストア・アカウントの認証トークンを作成する必要があります。Autonomous Transaction Processingデータベースとオブジェクト・ストア間の通信は、認証トークンおよびユーザー名/パスワード認証に依存します。

  1. Oracle Cloud Infrastructure Object Storageからログアウトした場合、Oracle Cloud管理者から提供された資格証明(クラウド・テナント、ユーザー名、パスワード)を使用して再ログインします。
  2. コンソールの右上にあるユーザー名の下のユーザー設定をクリックします。
    ユーザーの設定のクリック
    図click_user_settingsの説明
  3. コンソール左側にある「リソース」認証トークンをクリックします。
    認証トークンのクリック
    図click_auth_tokensの説明
  4. トークンの生成をクリックします。
    トークンの生成のクリック
    図click_generate_tokenの説明
  5. ポップアップ・ダイアログが表示されます。次の手順を実行して、認証トークンを設定します。
    1. ポップアップ・ダイアログに説明を入力します。
    2. トークンの生成ボタンをクリックします。
    3. 生成されたトークンをテキスト・ファイルにコピーします。トークンは表示されなくなります。
    4. 「閉じる」をクリックします。
    説明を入力してトークンの生成をクリック
    図enter_descriptions_and_click_generate_tokenの説明
    生成されたトークンのコピー
    図copy_the_generated_tokenの説明

第1項Autonomous Transaction Processingスキーマでのオブジェクト・ストア資格証明の作成

オブジェクト・ストアの認証トークンが作成されたので、データをステージングするオブジェクト・ストアの資格証明をAutonomous Transaction Processingのatpc_userスキーマに格納します。

  1. SQL Developerを開き、ユーザーatpc_userとしてAutonomous Transaction Processingデータベースに接続します。atpc_userとしてSQL DeveloperをAutonomous Transaction Processingデータベースに接続する手順は、前のチュートリアルのSQL Developerの接続および表の作成を参照してください。
  2. SQL DeveloperのワークシートでDBMS_CLOUDパッケージのcreate_credentialプロシージャを使用して、オブジェクト・ストア資格証明をatpc_userスキーマに格納します。
    1. 資格証明の名前を作成します。この資格証明名は、次の手順のcopy_dataプロシージャで参照します。
    2. Oracle Cloud Infrastructure Object Storageサービス用の資格証明(ユーザー名と前の手順で生成したオブジェクト・ストア認証トークン)を指定します。

      begin
      DBMS_CLOUD.create_credential (
      credential_name => 'OBJ_STORE_CRED',
      username => '<your username>',
      password => '<your Auth Token>'
      ) ;
      end;
      /

    ADWCスキーマでの資格証明の作成
    図create_credential_in_adwc_schemaの説明

    このスクリプトを実行すると、オブジェクト・ストアの資格証明がAutonomous Transaction Processingのatpc_userスキーマに格納されます。


第3項オブジェクト・ストアからAutonomous Transaction Processingデータベース表へのデータのコピー

DBMS_CLOUDパッケージのcopy_dataプロシージャでは、ターゲット表がAutonomous Transaction Processingデータベースにすでに存在する必要があります。前のチュートリアルSQL Developerの接続および表の作成では、Autonomous Transaction Processingのatpc_userスキーマにすべてのターゲット表を作成しました。

次にcopy_dataプロシージャを実行して、オブジェクト・ストアにステージングしたデータをAutonomous Transaction Processingのatpc_user表にコピーします。

  1. SQL DeveloperのワークシートでDBMS_CLOUDパッケージのcopy_data プロシージャを使用して、オブジェクト・ストアにステージングしたデータをコピーします。
    • credential_nameには、第3項「Autonomous Transaction Processingスキーマでのオブジェクト・ストア資格証明の作成」で定義した資格証明の名前を指定します。
    • file_uri_listには、オブジェクト・ストアにステージングしたファイルの場所を指し示すURLを指定します。URLは次のような構成です。太字の部分は自分で指定する値です。
      https://swiftobjectstorage.<リージョン名>.oraclecloud.com/v1/<テナント名>/<バケット名>/<ファイル名>
    • ここをクリックすると、サンプルのスクリプトを参照できます。スクリプト内では、実際に使用する表名、リージョン名、テナント名、バケット名、ファイル名を使用してください。
      データ・ロード・スクリプト
      図data_loading_scriptの説明
  2. プロシージャを実行した後、データがオブジェクト・ストアからAutonomous Transaction Processingデータベース内の表にコピーされたことを確認します。
    表のロードの結果
    図result_of_loading_tableの説明

第3項データ・ロードの確認

PL/SQLパッケージDBMS_CLOUDを使用して実行されたデータ・ロード操作は、表dba_load_operationsおよびuser_load_operationsに記録されます。これらの表には次の内容が含まれます。

  • dba_load_operations: すべてのロード操作を表示します。
  • user_load_operations: スキーマ内のロード操作を表示します。
  1. 進行中および完了したデータ・ロードに関する情報を表示するには、これらの表を問い合せます。次に例を示します。
    SELECT table_name, owner_name, type, status, start_time, update_time, 
    logfile_table, badfile_table
    FROM user_load_operations WHERE type = 'COPY';
  2. 結果を確認します。ログ・ファイルおよび不良ファイルは表としてアクセスできます。
    TABLE_NAME      STATUS        ROWS_LOADED  LOGFILE_TABLE   BADFILE_TABLE
    ---------- ------------ ----------- -------------   -------------
    CHANNELS FAILED COPY$1_LOG      COPY$1_BAD
    CHANNELS COMPLETED 5   COPY$2_LOG COPY$2_BAD
    ロードの監視およびトラブルシューティングの詳細は、ドキュメント・トピックAutonomous Transaction Processingのパフォーマンスの管理と監視を参照してください。

次のステップ次のチュートリアル 

Autonomous Data Warehouse Cloud ServiceでのOracle Machine Learningの使用

詳細情報さらに学習するには