Fusion BICC(ビジネス・インテリジェンス・クラウド・コネクタ)の一括抽出データをAIDPノートブック内のSparkデータフレーム(データ処理の基本単位)に取り込みます。 **次のような場合に使用:** - ユーザーがBICC、Fusion一括抽出、BI Cloud Connector、PVOについて言及している - Fusionから50,000行を超えるデータが必要 推奨される方法は、AIDPに組み込まれている`spark.read.format("aidataplatform")`コネクタ(接続機能)を使用します(Oracle公式のAIDPサンプルに準拠)。認証方式はHTTP基本認証を採用しています。
Pull a Fusion BICC bulk extract into a Spark DataFrame from an AIDP notebook. Use when the user mentions BICC, Fusion bulk extract, BI Cloud Connector, PVO, or needs >50k rows from Fusion. The recommended path uses AIDP's built-in `spark.read.format("aidataplatform")` connector (matches the official Oracle AIDP sample). HTTP Basic auth.
aidp-fusion-bicc — Fusion BICC バルクエクストラクト → SparkOracle 公式の AIDP サンプル(oracle-samples/oracle-aidp-samples → data-engineering/ingestion/Read_Only_Ingestion_Connectors.ipynb)を踏襲したスキルです。
BICC のデータを AIDP 組み込みの aidataplatform フォーマットハンドラー経由でルーティングします。
aidp-fusion-rest を使用することAIDP 側の準備(初回のみ・管理者が実施):
BICC の書き込み先である OCI Object Storage バケットを指す EXTERNAL STORAGE プロファイルを AIDP カタログに登録する。
ノートブック内では fusion.external.storage でその名前を参照するだけでよく、OCI 認証情報をノートブックに直接記述する必要はない。
Fusion 側の要件:
Fusion ユーザーは BICC 管理者ロール(例: BIA_ADMINISTRATOR_DUTY)を持っている必要がある。
通常の Fusion REST ユーザー(Finance Manager ペルソナ等)では、BICC の JSON レスポンスではなく IDCS への 302 リダイレクトが返される(実環境で確認済み)。
PVO(Public View Object)名と、そのソーススキーマ名(例: ERP)
sys.path に追加済みのヘルパーモジュール
aidataplatform フォーマット)import os
from oracle_ai_data_platform_connectors.rest.fusion import read_bicc_via_aidp_format
df = read_bicc_via_aidp_format(
spark=spark,
fusion_service_url=os.environ["FUSION_BICC_BASE_URL"],
username=os.environ["FUSION_BICC_USER"], # BICC 権限が必須
password=os.environ["FUSION_BICC_PASSWORD"],
schema=os.environ["FUSION_BICC_SCHEMA"], # 例: "ERP"
datastore=os.environ["FUSION_BICC_PVO"], # PVO 名
fusion_external_storage=os.environ["FUSION_BICC_EXTERNAL_STORAGE"],
)
df.show(5)
print("rows:", df.count())
AIDP フォーマットハンドラーが内部で BICC のトリガー・ポーリング・マニフェスト読み取り・OCI Object Storage への CSV マテリアライズを処理するため、ユーザーは Spark DataFrame を受け取るだけで済みます。
公式 Oracle サンプルと同等の直接呼び出し方法:
df = (
spark.read.format("aidataplatform")
.option("type", "FUSION_BICC")
.option("fusion.service.url", os.environ["FUSION_BICC_BASE_URL"])
.option("user.name", os.environ["FUSION_BICC_USER"])
.option("password", os.environ["FUSION_BICC_PASSWORD"])
.option("schema", os.environ["FUSION_BICC_SCHEMA"])
.option("fusion.external.storage", os.environ["FUSION_BICC_EXTERNAL_STORAGE"])
.option("datastore", os.environ["FUSION_BICC_PVO"])
.load()
)
以下のいずれかに該当する場合のみ使用してください:
aidataplatform コネクターが利用できない場合MANIFEST.MF を直接確認したい場合注意: 公式サンプルでの検証はされていません。エンドポイントパスやレスポンスのスキーマはベストエフォートであり、Fusion のバージョンによっては調整が必要になる場合があります。
import os
from oracle_ai_data_platform_connectors.auth import http_basic_session
from oracle_ai_data_platform_connectors.rest.fusion import (
trigger_bicc_extract, read_bicc_csv_from_object_storage,
)
session = http_basic_session(
username=os.environ["FUSION_BICC_USER"],
password=os.environ["FUSION_BICC_PASSWORD"],
base_url=os.environ["FUSION_BICC_BASE_URL"],
)
prefix = trigger_bicc_extract(
session=session,
base_url=os.environ["FUSION_BICC_BASE_URL"],
offering=os.environ["FUSION_BICC_OFFERING"],
poll_interval_seconds=30,
timeout_seconds=3600,
)
df = read_bicc_csv_from_object_storage(
spark=spark,
namespace=os.environ["OCI_NAMESPACE"],
bucket=os.environ["OCI_BUCKET_BICC"],
prefix=prefix,
)
print("rows:", df.count())
BICC 権限について
Fusion ユーザーは BICC 管理者ロールを持っている必要があります。
権限がない場合、/biacm/api/v[12]/* エンドポイントは IDCS OAuth への 302 リダイレクトを返し、HTTP Basic 認証は受け付けられません。
これがライブテスト失敗の最大の原因です。(Casey.Brown という Finance Manager ペルソナでデモ環境に対して実際に確認済み — すべての BICC エンドポイントがリダイレクトされました。)
fusion.external.storage はカタログ管理された名前であり、URL ではありません
AIDP カタログ UI または oci aidataplatform CLI で一度設定し、以降は名前で参照します。
Option A を使用する場合、ノートブック内で OCI のネームスペースやバケットを直接記述する必要はありません。
schema と datastore について
これらは BICC 固有の概念です。
schema = オファリングスキーマ(ERP、HCM など)、datastore = PVO 名(例: FscmTopModelAM.AnalyticsServiceAM)。
BICC コンソールの「Configure Cloud Extract」から確認してください。
初回エクストラクトは時間がかかります BICC がフルスナップショットを構築するため、初回実行は 5 分以上かかる場合があります。 2 回目以降は差分(インクリメンタル)処理になります。
大きな CSV ではスキーマ推論が遅くなります(Option B の場合) Option A のコネクターは BICC メタデータからスキーマを事前に把握しているため、この問題は発生しません。
aidp-fusion-bicc — Fusion BICC bulk extract → SparkMirrors the official Oracle AIDP sample at oracle-samples/oracle-aidp-samples → data-engineering/ingestion/Read_Only_Ingestion_Connectors.ipynb, which routes BICC through AIDP's built-in aidataplatform format handler.
aidp-fusion-rest.EXTERNAL STORAGE profile registered in the AIDP catalog pointing at the OCI Object Storage bucket BICC writes to. The user references it by name via fusion.external.storage — they don't supply OCI credentials in the notebook.BIA_ADMINISTRATOR_DUTY). A regular Fusion REST user (Finance Manager persona) gets a 302 to IDCS instead of BICC JSON — confirmed live.ERP).sys.path.aidataplatform format)import os
from oracle_ai_data_platform_connectors.rest.fusion import read_bicc_via_aidp_format
df = read_bicc_via_aidp_format(
spark=spark,
fusion_service_url=os.environ["FUSION_BICC_BASE_URL"],
username=os.environ["FUSION_BICC_USER"], # MUST have BICC privileges
password=os.environ["FUSION_BICC_PASSWORD"],
schema=os.environ["FUSION_BICC_SCHEMA"], # e.g. "ERP"
datastore=os.environ["FUSION_BICC_PVO"], # the PVO name
fusion_external_storage=os.environ["FUSION_BICC_EXTERNAL_STORAGE"],
)
df.show(5)
print("rows:", df.count())
The AIDP format handler does the BICC trigger, polling, manifest read, and OCI Object Storage CSV materialization internally — the user just gets a Spark DataFrame.
Equivalent verbatim invocation (same as the official Oracle sample):
df = (
spark.read.format("aidataplatform")
.option("type", "FUSION_BICC")
.option("fusion.service.url", os.environ["FUSION_BICC_BASE_URL"])
.option("user.name", os.environ["FUSION_BICC_USER"])
.option("password", os.environ["FUSION_BICC_PASSWORD"])
.option("schema", os.environ["FUSION_BICC_SCHEMA"])
.option("fusion.external.storage", os.environ["FUSION_BICC_EXTERNAL_STORAGE"])
.option("datastore", os.environ["FUSION_BICC_PVO"])
.load()
)
Only use this when the AIDP aidataplatform connector isn't available on the cluster, when you need a custom polling cadence, or when you want to inspect the MANIFEST.MF directly. NOT validated against the official sample — endpoint paths and response schema are best-effort and may need adjustment per Fusion version.
import os
from oracle_ai_data_platform_connectors.auth import http_basic_session
from oracle_ai_data_platform_connectors.rest.fusion import (
trigger_bicc_extract, read_bicc_csv_from_object_storage,
)
session = http_basic_session(
username=os.environ["FUSION_BICC_USER"],
password=os.environ["FUSION_BICC_PASSWORD"],
base_url=os.environ["FUSION_BICC_BASE_URL"],
)
prefix = trigger_bicc_extract(
session=session,
base_url=os.environ["FUSION_BICC_BASE_URL"],
offering=os.environ["FUSION_BICC_OFFERING"],
poll_interval_seconds=30,
timeout_seconds=3600,
)
df = read_bicc_csv_from_object_storage(
spark=spark,
namespace=os.environ["OCI_NAMESPACE"],
bucket=os.environ["OCI_BUCKET_BICC"],
prefix=prefix,
)
print("rows:", df.count())
/biacm/api/v[12]/* endpoints 302-redirect to IDCS OAuth (HTTP Basic isn't honored). This is the #1 reason live tests fail. (Live-confirmed against the demo pod with Casey.Brown finance-mgr persona — every BICC endpoint redirected.)fusion.external.storage is a catalog-managed name, not a URL. Set it up once via AIDP Catalog UI (or oci aidataplatform CLI), then reference by name. The user never types OCI namespace/bucket in the notebook for Option A.schema and datastore — these are BICC concepts: schema = offering schema (ERP, HCM, etc.); datastore = PVO name (e.g. FscmTopModelAM.AnalyticsServiceAM). Get them from the BICC console under "Configure Cloud Extract".原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。