OCI Object StorageからOracle Base DB/ADBへのデータロード方法まとめ (AWS・Azure対応)

Database

初めに

オブジェクト・ストレージからOracle Base DBAutonomous DBにデータをロードする方法には、さまざまな選択肢があります。本記事では、特によく利用される代表的な手法をまとめて紹介します。

どの手法を選ぶべきか迷っている方にとって、本記事が参考となり、最適な方法を選択するための一助となれば幸いです。

本記事では OCI Object Storage を例に解説しますが、利用するツールや方法によっては AWS S3Azure Blob など、他のオブジェクト・ストレージサービスにも対応可能です。

なお、本記事ではオラクルの 公式製品およびサービス に焦点を当てて説明します。サードパーティー製のツールも多数存在しますが、選択肢が多岐にわたるため、本記事では割愛します。

1. Object Storage から Oracle Base DB/ADB へデータをロード

1-1. ローカルにコピーしてから Oracle Base DB へロード

Load data to local Oracle Base DB

ネットワーク構成

  • Oracle Base DB インスタンスが パブリック・サブネット または プライベート・サブネット のどちらに配置されていても、この方法を利用できます。(以下で紹介する方法も同様です)
    • パブリック・サブネット:
      Internet Gateway を経由してオブジェクト・ストレージへアクセスします。
    • プライベート・サブネット:
      NAT Gateway または Service Gateway を経由してアクセスします。
  • 一般的に、Oracle Base DB はプライベート・サブネット内に配置され、OCI Object Storageへのアクセスには Service Gateway 利用する構成が推奨されています。

作業ステップ

  • STEP-1. データをローカルへ転送。
    • OCI Object Storage の場合:
      OCI CLI の利用を推奨 (最新版の Oracle Base DB には標準でインストールされています。旧バージョンの DBCSインスタンスにもインストール可能です)
    • AWS S3, Azure Blob の場合:
      → 例:rclone を利用
  • STEP-2. ローカルから DB へロード(従来の方法)
    • テキストファイル:例 SQL Loader
    • Data Pumpファイル:impdp

メリット
✅ ローカルにコピーした後は従来の方法で処理できるため、新しいツールやサービスを導入する必要がありません。
✅ DBMS_CLOUDと比較して、Oracle DBののバージョン制限がありません。
OCI CLIは Oracle Base DB に標準でインストールされているため、データ転送が容易です。

デメリット
ローカルに一時保存する必要があるため、ストレージ容量が不足している場合はデータを保存できない可能性があります。

1-2. Object Storage をマウントして Oracle Base DB へロード

Mount OCI Object Storage to Oracle Base DB

作業ステップ

  • STEP-1: Object Storage をDBインスタンスにマウント
    (例:s3fs-fuseを利用)
  • STEP-2: マウントポイントからデータDBへデータをロード(従来の方法)
    • テキストファイル:例 SQL Loader
    • Data Pumpファイル:impdp

メリット
✅ マウント設定は比較的簡単で、マウント後は従来の方法と同じ手順で処理できます。
✅ DB のバージョンに依存せず、DBMS_CLOUD パッケージのインストールは不要 です。
(Base DB に DBMS_CLOUD をインストールする場合は DB バージョンの制限があります)
✅ Object Storage から 直接インポート できるため、ローカルへの一時保存は不要です。

DB インスタンスを再起動した場合、マウントポイントが解除される可能性があります。
再マウントするか、/etc/fstab を編集して自動マウントを設定してください。

実施方法の詳細については、次の記事をご参照ください。
マウントポイント経由でOracle Base DBのData PumpをObject Storageへエクスポートする

1-3. DBMS_CLOUD を利用して Oracle Base DB/ADB へロード

Oracle Base DB の場合
Using DBMS_CLOUD package

作業ステップ

  • STEP-1. Oracle Base DB に DBMS_CLOUD パッケージをインストールし、関連設定を行う。
  • STEP-2. クレデンシャルの作成 (DBMS_CLOUD.CREATE_CREDENTIAL)
  • STEP-3. データロード
    • テキストファイル: DBMS_CLOUD.COPY_DATAを利用
    • Data Pumpファイル:
      impdp user/password credential=XXXX dumpfile= https://<Object_File_URL>

Oracle Base DB の実施例については、次のステップ・バイ・ステップの手順をご参照ください。
(STEP-1 ~ STEP-8 が DBMS_CLOUD のインストールおよび関連設定に該当します)
DBMS_CLOUDでオブジェクト・ストレージからOracle DBにデータを導入する方法 (CSV/Data Pump対応)

Autonomous DB の場合
Load data to Autonomous DB with DBMS_CLOUD package
DBMS_CLOUD パッケージは Autonomous DB に標準で実装済み のため、クレデンシャルを作成するだけで利用できます。

メリット
✅ クレデンシャルを作成することで、オブジェクト・ストレージに直接アクセスできます。
(ローカルコピーやマウントは不要)
✅ Oracle Base DB と Autonomous DB の両方で利用可能
✅ OCI Object Storage だけでなくAWS S3 / Azure Blob などにも対応しており、マルチクラウド環境にも適しています。

デメリット

  • Oracle Base DB では DBMS_CLOUD のインストールおよび権限設定が必要 で、手順がやや複雑です。
  • Oracle Database の バージョン制限 (19c / 21c のみ)。

1-4. DBMS_CLOUD_PIPELINE を利用してADBへロード

これは、2022年12月にリリースされたAutonomous DB の新機能です。機能の詳細は公式ドキュメントをご参照ください。
Load data to Autonomous DB with DBMS_CLOUD_PIPELINE package

作業流れ
Lifecycle of cloud data pipeline

メリット
✅ 指定した間隔で自動実行でき、新しいデータが到着すると自動的にデータ連携を実行できます。
✅ オブジェクト・ストレージから ADB へのロードだけでなく、ADB からオブジェクト・ストレージへのエクスポートも可能です。

利用制限
現時点(2023年1月)では、Autonomous DB 専用機能であり、Oracle Base DB では利用できません。

1-5. ODI Marketplace の利用

ODI Marketplace
ネットワーク構成

  • ODI Marketplace インスタンス作成時には VCN の指定が必須であり、ターゲット DB とは 同一 VCNまたは別VCN のいずれの構成でも利用可能 です。
  • ODI Marketplace は Autonomous Linux ベースの Compute インスタンス であり、VNC ツール を使用して接続すると GUI (ODI Studio) を利用できます。

作業ステップ

  1. Marketplaceから ODI インスタンスを作成
  2. VNC ツールで接続し、ODI Studio を起動
  3. レポジトリ DB を作成(ターゲット DB と同じでも可)
  4. ソースおよびターゲットへの物理接続を作成
  5. モデル作成(物理接続を論理化)
  6. プロジェクトおよびマッピング作成
  7. マッピング実行及びモニタリング

メリット
✅ OCI Object Storage や Oracle DB / ADB だけでなく、多くのデータソースに対応
✅ データ加工や複数ファイルのマージなど、複雑なデータフローの構築が可能
✅ スケジューリング実行が可能で、管理・監視機能も充実
✅ コストメリット(Classic 版はソフトウェア価格が $0.00 / OCPU
Price of Data Integrator (Classic)

デメリット

  • レポジトリ DB の設定が必須
  • マッピング実行までの設定が比較的複雑で、習熟に時間がかかる可能性があります。

1-6. OCI Data Integration の利用

OCI Data Integration
ネットワーク構成

  • OCI Data Integration のワークスペースには VCN 内部VCN 外部 の2種類があり、通常は VCN 内部 で作成します。
  • VCN 内部で作成する場合、オブジェクト・ストレージおよび DB インスタンスに接続するために セキュリティ・リストやルート表の設定が必要です。
    Egress ルールの参考例:
    Object Storage 接続: 宛先 0.0.0.0/0 TCP 443
    DB 接続: 宛先 DBのプライベートIP TCP 1521

作業ステップ

  1. OCI Data Integration ワークスペース作成
  2. データ・アセット作成(ソース / ターゲット両方)
  3. プロジェクトおよびデータフロー作成
  4. 統合タスクおよびアプリケーション作成
  5. タスクをアプリケーションへ公開
  6. タスク実行およびモニタリング

※、OCI DI ワークスペースは、機能的には ODI Studio (On-P or MP) に相当します。
OCI DI workspace

Oracle DBの実施例は、次のステップ・バイ・ステップの手順をご参考ください。
OCI Data Integrationを使用しオブジェクト・ストレージからOracle DBにデータをロードする

メリット
✅ OCI の マネージドサービス のため、ODI On-Premises や ODI Marketplace より管理が容易
(レポジトリ DB の管理は不要)
✅ OCI Object Storage や Oracle DB / ADB だけでなく 多数のデータソースに対応。(対応一覧は、こちらへ)
✅ データ変換、複数ファイルのマージなど複雑なデータフローを作成可能
✅ スケジューリング実行・監視機能が充実
✅ OCI DIからOCI Functionsの呼び出しも可能。

デメリット

  • 他の方法と比べてサービス利用料金が発生。(内訳は以下の通り)
    • ワークスペース料金 (時間単位)
    • データ処理料金 (時間×GB単位)
    • パイプライン・オペレーターの実行料金 (時間単位)Price of OCI Data Integration

      パイプライン・オペレーターの料金はオプションです。これを利用しない前提で試算した場合、毎月の概算コストは次のとおりです。(1 ワークスペースのみを使用し、1 時間あたり 1GB のデータを処理すると想定)Cost estimation of OCI Data Integration

2. 各種方法の比較

上記の各方法について、メリットとデメリットを整理した比較表を作成しました。
用途に応じて最適な方法を選択する際の参考にしてください。
Summary of various data loading methods

サマリー

  • 最適な方法を選択するためには、次のような観点を考慮することが重要です。
    • データ転送量
    • 転送頻度(単発 / 定期処理)
    • データ変換の必要性
    • データソースの種類と配置場所
    • DB バージョン
    • コスト(サービス料金および学習コスト)
  • なお、ODI On-Premises 版でも技術的には実現可能ですが、本記事のように ソースとターゲットの両方がクラウド上にある構成 ではベストプラクティスではないため、今回は候補から除外しています。

以上

オフィシャル・リンク
OCI Data Integration サービス・ホームページ (価格表、見積もりを含める)
OCI Data Integration ドキュメント・ホームページ

タイトルとURLをコピーしました