1つのAIDP Sparkセッションで複数のデータソースを統合処理します。複数のコネクタ(Oracle ADB/ExaCS、Fusion、Snowflake、S3、レイクハウス(データ湖)のテーブルなど)から読み込んだデータを、1つのノートブック内で結合できます。 **次のような場合に使用:** - ユーザーが複数のソースからのデータを組み合わせて分析したいとき - 外部システムのデータとレイクハウスを統合したいとき - 複数のソースにまたがるデータ分析を行いたいとき spark-connectorsプラグインを活用しており、コネクタの重複定義はありません。
Federate across multiple data sources in one AIDP Spark session — read from several connectors (Oracle ADB/ExaCS, Fusion, Snowflake, S3, lakehouse tables, …) and join them in a single notebook. Use when the user wants to combine/join data from more than one source, blend an external system with the lakehouse, or do cross-source analysis. Composes the spark-connectors plugin; does not duplicate connectors.
aidp-federate — 1つのSparkセッションによるクロスソースフェデレーション複数のソースをそれぞれ1つのSparkセッションに読み込んでJoinすることで、データを統合します。
これは競合Agentとの重要な差別化ポイントです
(競合Agentは外部テーブルに対してパフォーマンスが低下するか、外部オーケストレーターと手動キーJoinが必要になります)。
実行はバンドル済みの scripts/aidp_sql.py ヘルパー経由で行われます(MCP不要、AIDP_SESSION不要)。
<ソースA> と <ソースB> のデータをJoinしたい」「FusionとLakehouseを統合したい」「SnowflakeとStore Salesをブレンドしたい」など、クロスソース分析全般。aidp-<source> Skill(ステップ1)から取得します。
このSkillはJoinを追加するだけです。ソース接続を手書きで実装しないでください。
(claude plugin list でspark-connectors Pluginがインストール済みか確認してください。
oracle_ai_data_platform_connectors ヘルパーパッケージを /Workspace/Shared にプッシュするため、
aidp-connectors-bootstrap Skillを一度実行してください — AIDP MCP経由、またはMCPがインスタンスに到達できない場合は手動で。)外部ソースごとに、oracle-ai-data-platform-workbench-spark-connectors の対応するConnector Skillを使用して
(例: aidp-alh / aidp-oracle-db / aidp-exacs、aidp-fusion-bicc / aidp-fusion-rest、
aidp-snowflake、aidp-aws-s3、aidp-object-storage など)、
各ソースの spark.read.format(...).option(...).load() レシピを取得します。
このSkillはConnectorを再実装しません。
各ソースをDataFrameに読み込み、それぞれをTemp Viewとして登録したうえで、
spark.sql(...) でJoinを実行するセルを1つ作成します。
これらはすべて、ヘルパーが作成する同一のSparkセッションで実行されます。
Joinキーは .aidp/semantic.md / .aidp/catalog.md から取得してください(推測は厳禁)。
ヘルパーはapi_keyのDEFAULTプロファイルからUPSTを生成し、
対象クラスター上にスクラッチNotebookを自動作成します:
python "$PLUGIN_DIR/scripts/aidp_sql.py" \
--region <region> --datalake <DATALAKE_OCID> --workspace <ws> --cluster <cluster-key> \
--code "
df_lake = spark.table('default.default.customer')
df_ext = spark.read.format('...').option('...', '...').load() # Connector SkillからのレシピをここへA
df_lake.createOrReplaceTempView('lake')
df_ext.createOrReplaceTempView('ext')
spark.sql('''SELECT ... FROM lake l JOIN ext e ON l.key = e.key ...''').show(50, truncate=False)
"
戻り値はJSON形式 {status, execution_count, outputs, spark_job_ids, error} です。
SQL/SparkエラーはErrorフィールドから読み取り、カタログに基づいて修正してください — 何度も推測しないでください。
まず --code "spark.sql('SELECT 1').show()" で接続の疎通確認を行ってください。
統合した結果を提示し、必要に応じて aidp-ingest-file-to-table / manage-tables でテーブルとして永続化するか、
aidp-verified-queries でJoinを保存します。
aidp_sql.py 実行の単一Sparkセッション内で動作します。
対象環境での実証なしに、異種ソースをまたいだシングルクエリプッシュダウンフェデレーション を主張しないでください —
その機能は未確認の可能性があるため、誇張は禁物です。aidp_sql.py 呼び出しは新しいセッションとなり、以前のTemp Viewは消滅します。aidp-cluster-ops 参照)。aidp-analyzing-data と連携aidp-federate — cross-source federation in one Spark sessionBlend multiple sources by reading each into one Spark session and joining them — a signature differentiator
(competitor agents degrade on foreign tables or need an external orchestrator + manual key-joins). Execution
is via the bundled scripts/aidp_sql.py helper (no MCP, no AIDP_SESSION required).
aidp-<source> skill (step 1) — this
skill just adds the join. Never hand-roll the source connection. (Check the spark-connectors plugin is
installed via claude plugin list; run its aidp-connectors-bootstrap skill once to push the
oracle_ai_data_platform_connectors helper package to /Workspace/Shared — via the AIDP MCP, or manually
if the MCP can't reach the instance.)oracle-ai-data-platform-workbench-spark-connectors (e.g. aidp-alh/aidp-oracle-db/aidp-exacs,
aidp-fusion-bicc/aidp-fusion-rest, aidp-snowflake, aidp-aws-s3, aidp-object-storage, …) to get
the spark.read.format(...).option(...).load() recipe for each source. This skill does not re-implement
connectors.spark.sql(...) the join — all in the same Spark session created by the helper. Use
join keys from .aidp/semantic.md / .aidp/catalog.md (don't guess). The helper mints a UPST from the
api_key DEFAULT profile and auto-creates a scratch notebook on the target cluster:python "$PLUGIN_DIR/scripts/aidp_sql.py" \
--region <region> --datalake <DATALAKE_OCID> --workspace <ws> --cluster <cluster-key> \
--code "
df_lake = spark.table('default.default.customer')
df_ext = spark.read.format('...').option('...', '...').load() # recipe from the connector skill
df_lake.createOrReplaceTempView('lake')
df_ext.createOrReplaceTempView('ext')
spark.sql('''SELECT ... FROM lake l JOIN ext e ON l.key = e.key ...''').show(50, truncate=False)
"
Returns JSON {status, execution_count, outputs, spark_job_ids, error}. Read the SQL/Spark error from the
error field and fix grounded in the catalog — don't guess repeatedly. Smoke-test connectivity first with
--code "spark.sql('SELECT 1').show()".aidp-ingest-file-to-table /
manage-tables) or save the join via aidp-verified-queries.aidp_sql.py invocation. Do not claim single-query pushdown federation across heterogeneous sources
unless verified live on the target environment — that capability is an open question, so don't overstate it.aidp_sql.py call is a fresh
session and the earlier temp views are gone.aidp-cluster-ops).aidp-analyzing-data原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。