Cloud Service
OCI Data Integration
ノーコードのデータフローで複数ソースを抽出・変換・ロードするフルマネージドな ETL/ELT サービス。AWS Glue に相当する。
- 1.GUI でデータフローを設計し ETL/ELT を実行するフルマネージド基盤。
- 2.スキーマ変化に強いデータエンティティ形状でパイプラインの破綻を防ぐ。
- 3.サーバーレスで実行基盤の管理が不要。AWS Glue に相当する。
解決する課題
データウェアハウスや分析基盤に向けて、複数のソースからデータを集めて変換し、ターゲットへ書き込む処理(ETL/ELT)を、ノーコードのデータフローで設計・実行できます。サーバーやクラスタの構築・運用は不要です。
- 散在する 複数ソース のデータを 1 か所(DWH、データレイク)へ集約したい
- SQL を手書きせず GUI のドラッグ操作 で変換ロジックを組みたい
- ソース側の スキーマ変更でパイプラインが壊れる のを避けたい
- 実行を スケジュール化 し、運用の手間を減らしたい
- ETL の実行基盤を 自分で管理したくない(サーバーレス)
主要概念と用語
- Workspace(ワークスペース): 設計・実行の最上位コンテナ。VCN への接続やリソースの分離単位。AWS Glue の Data Catalog 環境に近い位置づけ
- Data Asset(データアセット): ソースやターゲットの接続定義(Oracle Database、Autonomous Database、Object Storage、各種 RDB 等)
- Connection(接続): データアセットへの認証情報・接続パラメータ。AWS Glue の Connection に相当
- Data Flow(データフロー): 抽出・結合・集計・変換・ロードを表す演算子をつないだ変換ロジック本体。AWS Glue のジョブに相当
- Data Entity(データエンティティ): テーブルやファイルなど、データの実体を指す参照。スキーマの実体化を遅延させて柔軟性を高める
- Shape / Projection(形状・射影): 各ステップを流れる列の集合。スキーマドリフトに追従しやすい設計
- Integration Task / Data Loader Task(タスク): データフローを実行可能な形にまとめた成果物。パラメータ化して再利用できる
- Pipeline(パイプライン): 複数のタスクを順序・分岐つきでつなぐオーケストレーション
- Application(アプリケーション): タスクやパイプラインを発行(パブリッシュ)して実行する入れ物。AWS Glue のトリガー/ワークフローに近い
- Parameter(パラメータ): タスクやデータフローを汎用化する変数。1 つの設計を環境や対象ごとに使い回す
仕様・制限・クォータ
- ワークスペースは リージョン内のコンテナ で、テナンシ/コンパートメントあたりの作成数に サービス制限 があり、引き上げ申請が可能
- ソースが プライベートサブネット内のデータベース の場合、ワークスペースを VCN にアタッチ してプライベート接続する
- データフローは 設計(develop)→ 発行(publish)→ 実行(run) のライフサイクルを持ち、アプリケーションへ発行して初めて実行できる
- 実行は サーバーレス で、内部的にスケールアウトされる(基盤台数や Spark クラスタを利用者が直接管理する必要はない)
- 1 つのデータフロー/タスクで扱える演算子数や接続数などに上限があり、超大規模変換は 複数タスクへの分割 が推奨
- 対応コネクタ(データアセット種別)は順次拡張されるため、最新の対応一覧は公式ドキュメントで確認する
ターゲットが Autonomous Database のような高性能 DWH なら、変換を Data Integration 側で完結させず、ロード後にデータベース内で実行する ELT(プッシュダウン) に寄せると、データ移動を減らして高速化できることがあります。
内部の仕組み
OCI Data Integration は、GUI で組んだデータフローを 分散実行エンジン上のジョブに変換 して実行します。利用者はサーバーやクラスタを意識せず、実行時に必要なリソースが割り当てられる サーバーレス モデルです。AWS Glue が Apache Spark を基盤にジョブを実行するのと同様の考え方です。
- 各演算子(ソース、フィルタ、結合、集計、式、ターゲット等)は 形状(射影) を介して列情報を受け渡し、下流へ伝搬する
- データエンティティ はスキーマを実体化せず参照として扱うため、ソースに列が増減しても パラメータ化や属性の自動マッピング で追従しやすい(スキーマドリフト耐性)
- ターゲットが対応する場合は プッシュダウン(ELT) により変換の一部をデータベース側で実行し、ネットワーク転送量を抑える
- パイプラインは複数タスクの 依存関係・分岐・パラメータ受け渡し を制御するオーケストレーション層として働く
設計パターン / ベストプラクティス
- 変換ロジックは パラメータ化 し、開発/本番や対象テーブルごとに 1 つの設計を再利用する
- 大きな変換は タスク分割 + パイプライン で構成し、再実行・監視の単位を小さく保つ
- スキーマ変更に備え、列を固定で結線せず データエンティティの形状・自動マッピング を活用する
- 大量データの整形は、ターゲット DWH の能力を活かして ELT(プッシュダウン) に寄せる
- ソースがプライベートな場合は ワークスペースを VCN にアタッチ し、パブリック経由を避ける
- 定期実行は スケジュール で自動化し、失敗時の通知を運用に組み込む
運用・監視
- アプリケーション内の Run(実行履歴) で、各タスク/パイプラインの成否・所要時間・処理行数を確認する
- 失敗時はログで どの演算子/接続で止まったか を切り分け、接続情報やソースの可用性を確認する
- 定期実行は スケジュール に登録し、リトライや実行ウィンドウを設計する
- 操作(ワークスペース作成、発行、実行など)は OCI Audit に記録され、変更を追跡できる
- 重要パイプラインの失敗は Notifications / Service Connector Hub と組み合わせてアラート化する
設計(develop)中のデータフローを編集しても、アプリケーションへ再発行(publish)するまで実行結果には反映されません。本番の挙動が変わらないときは、対象アプリケーションに発行済みかどうかをまず確認してください。
コスト
OCI Data Integration は 実行(処理)に対する従量課金 が中心で、ETL 基盤を常時起動しておくサーバー費用は不要です。料金は変動するため、ここでは定性的な考え方を示します。
| コスト要素 | 課金の考え方 | 最適化のポイント |
|---|---|---|
| 実行リソース | タスク実行に使われる処理量・実行時間に応じる | 不要な全件再処理を避け差分・増分ロードにする |
| 実行頻度 | スケジュール実行の回数が多いほど積み上がる | 頻度を要件に合わせ過剰なポーリングを避ける |
| データ転送 | リージョン間やインターネット経由の転送に注意 | ソースとターゲットを同一リージョンに寄せる |
| 運用コスト | 基盤管理は不要(サーバーレス) | クラスタ自前運用に比べ運用工数を削減 |
セキュリティ
- アクセス制御は IAM ポリシー で、ワークスペースやデータアセットへの権限を最小化する
- ソース/ターゲットの 認証情報は接続(Connection)で管理 し、パスワード等は OCI Vault のシークレット に格納して参照する
- プライベートなデータベースには ワークスペースを VCN にアタッチ し、インターネットを経由せず接続する
- 転送時は TLS、保存時は各サービス側の暗号化(Vault のキー含む)で保護する
- 操作履歴は OCI Audit に残り、誰が何を実行・変更したかを追跡できる
データベースの接続パスワードを データフローやパラメータに直書き するのは NG です。OCI Vault のシークレット に格納し、接続から参照する形にしてください。漏洩時はシークレットのローテーションだけで封じ込められ、IAM で参照権限も絞れます。
Well-Architected の観点
運用性(Operational Excellence)を主眼に置いたサービスです。
- 運用性: ノーコードのデータフローとスケジュール、実行履歴により、ETL の構築・運用・監視を標準化できる。パラメータ化で 1 つの設計を多環境へ展開し、変更管理を単純化する
- 信頼性: タスク分割とパイプラインで再実行単位を小さく保ち、スキーマドリフト耐性で障害の連鎖を抑える
- コスト最適化: サーバーレスで基盤を常時起動せず、差分ロードや ELT への寄せで処理量を抑える
- セキュリティ: IAM と Vault、VCN アタッチで認証情報とネットワーク経路を保護する
試験で問われるポイント
- ETL/ELT のフルマネージド・データ統合サービスであり、対応する AWS の相当は AWS Glue であること
- ワークスペースが最上位コンテナで、プライベート接続には VCN へのアタッチ が必要なこと
- 設計の流れは データフロー設計 → アプリケーションへ発行(publish)→ 実行。発行しないと実行に反映されない
- データエンティティ/形状 によりスキーマ変更(スキーマドリフト)に追従しやすいこと
- タスク(Integration / Data Loader)と、それらを束ねる パイプライン の役割の違い
- ターゲット DWH の能力を使う ELT(プッシュダウン) でデータ移動を減らせること
- 認証情報は OCI Vault のシークレット で管理し、IAM で権限を最小化すること
関連サービス・比較
| 観点 | OCI Data Integration | AWS Glue |
|---|---|---|
| 位置づけ | OCI のフルマネージド ETL/ELT | AWS のフルマネージド ETL |
| 設計方法 | GUI のデータフロー(ノーコード) | ビジュアル + Spark スクリプト |
| 実行モデル | サーバーレス | サーバーレス(Spark ベース) |
| 接続管理 | データアセット + 接続 | コネクション + データカタログ |
| スキーマ耐性 | データエンティティ/形状で追従 | クローラ + スキーマ推論 |
| オーケストレーション | タスク + パイプライン | トリガー + ワークフロー |
| プライベート接続 | ワークスペースを VCN にアタッチ | VPC コネクション |
OCI 内では、ストリーミング取り込みは OCI Streaming、他サービスへのデータ転送は Service Connector Hub、Spark/Flink を直接書く大規模処理は OCI Data Flow が補完関係にあります。バッチの ETL/ELT 設計は Data Integration が中心になります。
ハンズオン / CLI例
# 1. ワークスペース一覧を確認(コンパートメント内)
oci data-integration workspace list \
--compartment-id ocid1.compartment.oc1..xxxx \
--output table
# 2. 指定ワークスペースの詳細を取得
oci data-integration workspace get \
--workspace-id ocid1.disworkspace.oc1..xxxx
# 3. ワークスペース内のアプリケーション一覧(発行先の確認)
oci data-integration application list \
--workspace-id ocid1.disworkspace.oc1..xxxx \
--output table
# 4. タスク実行(タスクのキーを指定して Run を作成)
oci data-integration task-run create \
--workspace-id ocid1.disworkspace.oc1..xxxx \
--application-key <application-key> \
--config-provider '{"bindings":{}}' \
--registry-metadata '{"aggregatorKey":"<task-key>"}'
# 5. 実行状況の確認(成否・所要時間を確認)
oci data-integration task-run get \
--workspace-id ocid1.disworkspace.oc1..xxxx \
--application-key <application-key> \
--task-run-key <task-run-key>
OCI Service
OCI Data Integrationを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
分析
比較で見る軸
クラウド: OCI / カテゴリ: 分析 / 難易度: intermediate
導入後に効く点
スキーマ変化に強いデータエンティティ形状でパイプラインの破綻を防ぐ。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- OCI
- カテゴリ
- 分析
- 難易度
- intermediate
- 関連資格
- —
- 設計柱
- operational
判断チェックリスト
- 自社の用途が「分析 / operational」に近いか確認する。
- 強みである「GUI でデータフローを設計し ETL/ELT を実行するフルマネージド基盤。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。