コンテンツにスキップ

BI Cloud Connector(BICC)によるデータ抽出

BI Cloud Connector(BICC)は、Fusion のデータを大量に外部へ取り出すためのツールです。Oracle Applications Cloud のサブスクリプションに含まれていますが、使うにはアクセス権の付与(後述のロール)が必要です。公式ガイドが挙げる主な機能は次のとおりです。

  • オファリング単位、または個別のデータストア単位で、全件・一部を抽出する
  • オンデマンドで実行する、または日・週・月などの間隔でスケジュール実行する
  • 前回以降の増分だけを抽出する
  • 抽出の状況の監視とログの確認
  • 設定したオファリング・データストアのエクスポート
Fusion の取引データ
→ BICC(PVO を問い合わせ。列の選択・フィルタ・増分条件を適用)
→ CSV(ZIP 圧縮)+ マニフェスト + ステータス JSON
→ 外部ストレージ(UCM または OCI Object Storage)
→ 取得・取込(OIC・スクリプト・DWH のローダー)
→ DWH・データレイク・他システム

BICC のコンソールは Fusion のメニューではなく、専用の URL(https://<your-pod>.fa.<region>.oraclecloud.com/biacm)で開きます。

用語 意味
オファリング(Offering) データストアをまとめた名前付きのグループ。コンソールの Business Intelligence Applications Offerings に並ぶ
データストア(Data Store) 抽出の単位。BI 用のビュー・オブジェクト(VO。資料によって PVO と表記)で、キー・フィルタ・列の定義を持つ
ジョブ(Job) 独自のデータストア設定を持つ抽出定義。全体の設定とは別のスケジュールで動かせる
Initial Extract Date 初回(全件)抽出の開始日。作成日を表す列(Is Creation Date)の定義が必要
Last Extract Date データストアを最後に正常終了した日時。次の増分の起点で、成功したときだけ更新される
Prune Time in Minutes 増分の起点を Last Extract Date からさかのぼる分数。既定は 1,440(24 時間)。0 で重なりなし
Reset to Full Extract Last Extract Date を戻し、次回を全件抽出にする(オファリング・データストア・ジョブの各階層にある)
マニフェスト 出力したファイルの一覧(と MD5)を書いたファイル

オファリングとデータストア(PVO)

Section titled “オファリングとデータストア(PVO)”

BICC はテーブルではなくデータストア(PVO)を単位に抽出します。PVO は Fusion の業務ビューを BI 向けに整理したもので、物理テーブルの列名と一致するとは限りません。テーブル名の読み方は テーブル命名規則 を参照してください。

  • コンソールの Manage Offerings and Data Stores で、オファリングを開いてデータストアを検索します。Actions > Create Offering で、必要なデータストアだけを集めた独自のオファリングも作れます。
  • データストアの操作には、Edit Data Store Details、Select Columns(抽出する列を選ぶ)、Export Metadata Definition(列定義を MDCSV か CSV で出力)、Download Sample CSV File、Advanced Extract Configuration、Reset to Shipped Content などがあります。
  • 抽出する列は絞ります。列が多いほど抽出時間・ファイル量・受け側の負荷が増えます。
  • フレックスフィールドを追加・変更したときは、そのセグメントが抽出対象の列に含まれているかを確認します(フレックスフィールド)。
  • 選定の観点は、「業務上の粒度(ヘッダー・明細・配分)」「主キー」「増分に使える日付列」「データ量」「受け側で結合に使う ID 列を含むか」です。演習で設計シートを作ります(BICC 演習)。
  1. 初回は全件:Initial Extract Date 以降のデータを抽出します。Initial Extract Date は Advanced Extract Configuration か、ジョブの Actions > Manage Initial Extract Date で設定します。
  2. 以降は増分:前回の成功以降に変わったデータだけを抽出します。起点の Last Extract Date はデータストアごとに保持され、そのデータストアの抽出が成功したときだけ進みます。
  3. 重なり(Prune Time):起点を既定で 24 時間さかのぼります。ヘッダーと明細のようにオブジェクト間でコミット時刻がずれても取りこぼさないための重なりです。直近のデータは重複して出力されるので、受け側は主キーでアップサートします。
  4. 全件に戻す:Reset to Full Extract で、次回を全件抽出にできます。列の追加やフィルタ変更の後、受け側を作り直すときに使います。

増分の判定に使う列は、データストアの定義(ガイドでは Incremental Key Columns)で決まります。ジョブごとのデータストア設定(Customize Job Data Stores)には、Query Filter、Support Chunking、Use UNION ALL(増分の問合せ方式。既定は OR)などがあります。性能が出ないデータストアは、方式を変えて実測してから決めます。

増分抽出は、変更・追加された行を返すだけで、物理的に削除された行は出てきません。削除は次の手順で検知します。

  1. スケジュールのジョブ種別に Active Primary Key Extract を選び、「いま存在する主キーのすべて」を抽出する(データ抽出と同時に行う Application Data and Active Primary Key Extract もある)
  2. 出力された主キーのファイル(拡張子 .pecsv)を受け側で取り込む
  3. 受け側にあって主キー一覧にない行を、削除(または論理削除)する

主キー抽出は全件分の主キーを読むので、頻度はデータ抽出より低く(日次〜週次)します。主キー抽出より後に作られた行を誤って削除しないよう、受け側では抽出時点の前に存在した行だけを対象にします。

出力先は、コンソールの Configure External Storage で設定します。画面には Storage Service Connection、OCI Object Storage Connection、UCM Connection Configuration の 3 つのタブがあります。

観点 UCM(WebCenter Content) OCI Object Storage
設定 UCM Connection Configuration:Protocol・Host・Port など。Test UCM Connection で確認 OCI Object Storage Connection:Name・Host・Tenancy OCID・User OCID・Namespace・Bucket
認証 設定した接続情報 Generate API Signing Key → Export Public Key → OCI のユーザーに公開鍵を登録 → Test Connection
保持 既定 90 日で期限切れ。ガイドは処理済みのマニフェスト・ファイルを 30 日で期限切れにすることを推奨 バケットの保持・ライフサイクルは OCI 側で設計する
暗号化 PGP で暗号化できる(拡張子 .gpg)。受け側で復号する OCI 側の暗号化・権限で守る
取得 UCM のファイルを閲覧・ダウンロードできるロールが必要 OCI CLI・SDK・OIC のアダプタなど
  • 外部ストレージは、設定で有効にすると最大 2 か所に同時に出力できます(Upload to Multiple External Storage)。
  • OCI の Host は objectstorage.<リージョン>.oraclecloud.com の形式です。正確な値は OCI の API ドキュメントで確認します。
  • 古いファイルの掃除には、ジョブ種別 Delete Expired UCM Files(UCM)と Delete Files in Storage(外部ストレージ)を使います。
  • ジョブは、独自のデータストア設定を持ち、全体の設定とは別のスケジュールで動かせます。同じデータストアを複数のジョブで同時に実行することもできます。コンソールでは Manage Jobs、Manage Job Schedules(ジョブ側)、Manage Extract Schedules(全体側)を使います。
  • スケジュールのジョブ種別は、データ抽出(Application Data Extract)、Active Primary Key Extract、両方(Application Data and Active Primary Key Extract)と、掃除用の 2 種類です。
  • 繰り返しの種類は、ガイド(25C)では Simple(1 回)、Hourly、Weekly(曜日を選ぶ)、Monthly、Yearly です。毎日の実行は、これらの組合せで設定します。選択肢と時刻の基準(Preferences の Regional 設定など)は画面で確認してください。
  • 通知は、全体設定を使う(Use Global Extract Notification)、個別に定義する(Define Notification)、なしから選びます。開始・成功・失敗の通知と、宛先のメールアドレスを指定できます。
  • 実行のタイムアウトは既定で 10 時間で、超えると失敗になります。
  • 時間単位の抽出は慎重にします。ガイドは、Fusion のデータベースに負荷をかけるため推奨しないとしています。
種類 内容
.csv データ。ZIP で個別に圧縮される(圧縮方式は zip か gzip を選べる)
.mdcsv メタデータ(列とデータ型の定義)
.pecsv 主キー抽出のファイル(主キーの列のデータ。DWH などで削除するレコードを特定するのに使う)
マニフェスト 出力ファイルの一覧と MD5
ステータス JSON ジョブごとの結果(データ・削除・主キーの別がある)
  • ファイル名は、データストア名を小文字にし、ピリオドをアンダースコアにしたものが基になります。ガイドの例は file_crmanalyticsam_opportunityam_opportunity-batch2110193550-20160929_094418.zip で、file_<データストア名>-batch<バッチ番号>-<日時>.zip の形です。日時のあとにミリ秒の値が付く例(…-batch1510381061-20190517_004657_<ミリ秒>.zip)もあり、この値は zip ごとに違います。
  • 値はすべて二重引用符で囲まれ、値の中の引用符は二重になります。ガイドは、このため区切り文字を独自に指定する必要はないとしています(区切り文字そのものは、確認したページに明記がありません)。
  • 見出し行(列名の行)が CSV にあるかは、確認したガイドのページに書かれていません。列名と型は .mdcsv(メタデータ)や Export Metadata Definition の出力で得る前提にし、実ファイルの先頭行を確認してから受け側のローダーを作ります。
  • 列の順序は、コンソールの Select Columns で選んだ列について決まった並びで出力され、列を追加・削除すると並びが変わります。受け側は、列の位置だけに頼らず、列定義(.mdcsv)と合わせて読む作りにします。
  • 分割は行数ではなくサイズで行われます。Split file size(GB)は 1〜5、既定は 1 です。
  • 数値と CLOB:15 桁を超える数値列と CLOB 列は、列の設定で文字列へのキャスト(Cast to String)が必要です。文字列の上限を超えるデータがあると抽出が失敗します。26B のページにも、小数が DOUBLE に変換されると丸め誤差が出る例(1.365 が 1.364999999999999 になる)が載っています。金額など桁の正確さが要る列は、Cast to String で文字列として出力し、受け側で型変換する方法を検討します。
格納先 ファイル名 1 行の形式
UCM MANIFEST.MF vo_name;ucm_document_id;md5_check_sum_value
OCI Object Storage・Storage Service MANIFEST-[TIMESTAMP].MF extract_uploaded_filename;md5_check_sum_value
ジョブの抽出 MANIFEST_DATA_<JOB_ID>-SCHEDULE_<SCHEDULE ID>_REQUEST_<ESS_REQUEST_ID>.MF(主キー抽出は MANIFEST_PRIMARY_KEYS_…) 上記のいずれか

先頭行には抽出元のバージョン情報が書かれ、2 行目以降が 1 ファイルにつき 1 行です(26B)。先頭行の値の中身は、確認したページに書かれていません。取り込み済みのマニフェストは、再利用されないよう [TIMESTAMP]_MANIFEST.MF のような名前に変えて残す手順が、ガイドで案内されています(UCM の場合。ストレージの場合は [TIMESTAMP]_MANIFEST)。

EXTRACT_STATUS_DATA_SCHEDULE_<Schedule Id>_REQUEST_<request_id>.JSON、EXTRACT_STATUS_PRIMARY_KEYS_SCHEDULE_<Schedule Id>_REQUEST_<request_id>.JSON(ここまでは 26B で名前を確認)、EXTRACT_STATUS_DELETED_SCHEDULE_…JSON(25C の記述で、26B では確認できていません)などが出力されます。項目には、名前(name)、状態(status)、エラー内容(errorMessage)、実行日時(runDate)、問合せ・抽出・アップロード・合計の所要秒数(queryDurationInSec・extractDurationInSec・uploadDurationInSec・totalDurationInSec)、行数(rowCount)があります。受け側の監視は、status と rowCount を見るのが基本です。

目的 ロール 補足
BICC コンソールで設定・実行する カスタムロール BIACM_ADMIN(カテゴリ:BI - Abstract Roles)。または BI Administrator ロール BIACM_ADMIN は Security Console で作り、階層に ESS Administrator Role と ORA_ASM_APPLICATION_IMPLEMENTATION_ADMIN_ABSTRACT を入れる
スケジュールを作る・管理する ESS Administrator Role(BIACM_ADMIN の階層に含まれる)
UCM の抽出ファイルを閲覧・ダウンロードする BICC_UCM_CONTENT_ADMIN(OBIA_EXTRACTTRANSFORMLOAD_RWD を含む) セキュリティ・グループ OBIAImport のファイルが対象
  • ロールの作成と付与は セキュリティの基本 の手順で行います。抽出を動かすユーザーは人と分け、最小権限の統合ユーザーにします(セキュリティ設計)。
  • BICC は利用者ごとの行レベルのデータセキュリティで絞る仕組みではありません。何を抽出するかは設計で決め、出力先(UCM・バケット)へのアクセス管理で守ります(レポーティングツールの全体像)。
手段 向く用途 データ量・実行 注意
BICC DWH・データレイクへの定期抽出 大量(初回全件+増分)。バッチ リアルタイムには不向き。高頻度の実行は非推奨
BIP(SQL データモデル) 定型帳票、少量のファイル出力 小〜中量。オンライン/スケジュール SQL にデータセキュリティが自動では効かない。連携用の大量抽出には推奨されない
REST API 1 件単位の照会・登録 少量(1 回最大 500 件) 大量抽出はページングの往復とタイムアウトが課題になる
OTBI 分析・ダッシュボード 画面表示向け データ連携の手段にしない
Data Extraction ツール BICC の後継(26D の Playbook の推奨) 対象オブジェクトは順次拡大 必要なオブジェクトが対象かを先に確認する

選び方の全体は 連携方式の全体像、BIP の SQL は BI Publisher の SQL 実践 を参照してください。Oracle が用意する分析用 DWH を使うなら FDI も候補です。

  1. ロールを用意する:BIACM_ADMIN か BI Administrator を付けた管理ユーザーと、UCM を使う場合は BICC_UCM_CONTENT_ADMIN を持つ取得用ユーザーを作ります。
  2. コンソールを開く:https://<your-pod>.fa.<region>.oraclecloud.com/biacm にサインインします。
  3. 外部ストレージを設定する:Configure External Storage で OCI Object Storage Connection(または UCM Connection Configuration)を入力し、Test Connection で確認します。
  4. データストアを選ぶ:Manage Offerings and Data Stores で候補を検索し、Select Columns で列を絞ります。Export Metadata Definition で列定義を保存し、設計書に残します。
  5. ジョブを作る:Manage Jobs でデータストアを追加し、Customize Job Data Stores で必要な設定を入れます。Initial Extract Date を決めます。
  6. スケジュールを作る:Manage Job Schedules でジョブ種別(データ抽出、主キー抽出)・繰り返し・通知を設定します。最初は Simple(1 回)で動作確認します。
  7. 実行して確認する:出力先に ZIP・マニフェスト・ステータス JSON が出ること、status と rowCount が期待どおりであることを確認します。
  8. 受け側を作る:マニフェスト起点で取得・検証・取込(アップサート+削除)を行う処理を作ります(コード例)。
  9. 運用に入れる:通知先、保持期限と掃除ジョブ、失敗時の再実行手順、四半期アップデート後の回帰確認を決めます。

OCI Object Storage に出力する構成で、新しいマニフェストを探し、ファイルを取得して MD5 を確認する最小の例です(OCI CLI と jq を使用)。

マニフェストを起点に取得して MD5 を検証する(OCI CLI)
export NS="<namespace>" # OCI の Namespace
export BUCKET="<bucket>" # BICC の出力先バケット
mkdir -p download
# 1) マニフェストの一覧(先頭が MANIFEST のオブジェクト)
oci os object list --namespace-name "$NS" --bucket-name "$BUCKET" --prefix "MANIFEST" --all \
| jq -r '.data[].name' | sort > manifests.txt
# 2) 未処理のマニフェストを 1 つ取得し、先頭行(バージョン情報)を除いて 1 行ずつ処理
MF=$(head -n 1 manifests.txt)
oci os object get --namespace-name "$NS" --bucket-name "$BUCKET" --name "$MF" --file "download/$(basename "$MF")"
tail -n +2 "download/$(basename "$MF")" | while IFS=';' read -r name md5; do
oci os object get --namespace-name "$NS" --bucket-name "$BUCKET" --name "$name" --file "download/$(basename "$name")"
echo "$md5 download/$(basename "$name")" | md5sum -c - # 一致しなければ取り込まない
done

マニフェストの形式が UCM と OCI で違う点は、読み取り側で吸収します。

マニフェストの読み取り(UCM と OCI・ストレージの両形式に対応)
from pathlib import Path
def read_manifest(path: Path):
"""UCM: vo_name;ucm_document_id;md5 / OCI・ストレージ: file_name;md5(先頭行はバージョン情報)"""
for line in path.read_text(encoding="utf-8").splitlines()[1:]:
parts = line.strip().split(";")
if len(parts) == 3:
yield {"name": parts[0], "doc_id": parts[1], "md5": parts[2]}
elif len(parts) == 2:
yield {"name": parts[0], "md5": parts[1]}

実務での拡張ポイントは次のとおりです。取り込み済みマニフェストの記録(冪等にする)、全ファイルの存在確認後に取り込む(途中到着を避ける)、失敗時のリトライと通知、ステータス JSON の status・rowCount の検証です。完全な取込処理は BICC 演習 にあります。OIC で組む場合は スケジュール統合とファイル処理 を参照してください。

落とし穴とベストプラクティス

Section titled “落とし穴とベストプラクティス”
  • 抽出は業務単位の粒度(ヘッダー・明細・配分)で設計し、受け側の結合キー(ID 列)を必ず含めます。
  • Prune Time は抽出頻度に合わせます(ガイドの目安は、時間ごとなら 60、日次なら 1,440)。0 にすると重なりがなくなり、取りこぼしの危険が上がります。
  • 取り込みは、マニフェスト単位でコミットし、処理済みを記録します。失敗したら同じマニフェストを再処理しても結果が変わらない作りにします。
  • 抽出した列定義(Export Metadata Definition の結果)をバージョン管理し、四半期アップデートの前後で差分を確認します(環境管理・四半期アップデート・テスト)。
  • テスト環境のリフレッシュ後は、外部ストレージの接続とスケジュールを確認します。本番の出力先にテストの抽出を書き込まないようにします。
  • 抽出ユーザーのパスワード期限・ロックで夜間バッチが止まらないよう、期限の管理者と更新手順を決めます。
  • 個人情報や口座情報などは、受け側で必要な列だけを抽出します。出力先の権限と保持期限も、データの機密度に合わせます。
  • 認定試験の公式な出題範囲で BICC を直接扱う分野は、執筆時点では確認できていません。ただし、アウトバウンド連携とレポートの手段選択(大量・定期は BICC、少量・即時は REST、帳票は BIP、分析は OTBI)は、OIC やレポート関連の問題で判断の根拠になります。
  • 受注管理 模擬テスト の「Leveraging Reports and Analytics」では、BIP の SQL データセットのデータソースは ApplicationDB_FSCM であり、BICC のデータストアではない、という区別が出題されています。
  • 覚えるポイント:PVO(データストア)単位の抽出、初回全件→増分、主キー抽出で削除検知、マニフェスト、UCM と OCI Object Storage、BIACM_ADMIN。

本サイトは学習目的で個人が作成した非公式の教材であり、Oracle Corporation およびその関連会社とは関係ありません。内容の正確性は保証しません。最新の仕様・試験範囲は必ず公式ドキュメントと Oracle University の情報で確認してください。

模擬テストの問題は公開されている出題範囲(Exam Topics)と公式ドキュメントをもとに独自に作成したもので、実際の試験問題ではありません。

Oracle、Java、MySQL は Oracle Corporation およびその子会社、関連会社の米国およびその他の国における登録商標です。その他の製品名・会社名は各社の商標です。

© 2026 Fusion ERP 実装ラボ