Skip to main content

aidp-cluster-ops

Manage AIDP Spark compute clusters — list, status, start/stop/restart, installed libraries (JARs/Python), provision/scale a new cluster (driver/worker shapes, autoscale, GPU/RAPIDS, AI Compute), and connect external BI tools (JDBC/ODBC). Use when the user asks about clusters, needs to start/stop compute, create or scale a cluster, install libraries, set up a GPU cluster, use AI Compute for agent flows, connect Tableau/Power BI/DBeaver, or pick a cluster before running data work.

インストールへ移動

ソース情報

リポジトリ
oracle-samples/oracle-aidp-samples
ソースの最終更新活動
2026年6月12日 17:34
検出された SKILL.md の言語
英語
スター
47
フォーク
32

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
aidp-cluster-ops
description
Manage AIDP Spark compute clusters — list, status, start/stop/restart, installed libraries (JARs/Python), provision/scale a new cluster (driver/worker shapes, autoscale, GPU/RAPIDS, AI Compute), and connect external BI tools (JDBC/ODBC). Use when the user asks about clusters, needs to start/stop compute, create or scale a cluster, install libraries, set up a GPU cluster, use AI Compute for agent flows, connect Tableau/Power BI/DBeaver, or pick a cluster before running data work.
# `aidp-cluster-ops` — cluster lifecycle & libraries Inspect and control AIDP Spark clusters. Most data skills depend on a RUNNING cluster, so this is the common pre-step. This is a **control-plane** skill. No MCP and no `ai-data-engineer-agent` repo are required. ## When to use - "What clusters are there / is X running?", "start/stop/restart the cluster", "what libraries are installed", "check if compute is up before running data work". ## Engine — official `aidp` CLI (control-plane) Preferred engine is the official Oracle `aidp` CLI; `oci raw-request` is the fallback when the CLI isn't installed. Both hit the same data-plane REST API with the same auth — see [references/aidp-cli-map.md](../../references/aidp-cli-map.md) for the full command map, [references/oci-raw-request.md](../../references/oci-raw-request.md) for base URL + auth ladder + async/error conventions, and [references/no-mcp-rest-map.md](../../references/no-mcp-rest-map.md) for REST endpoint shapes. | Op | CLI (preferred) | REST fallback | |---|---|---| | List clusters | `aidp cluster list` | `GET /clusters` — or `GET /workspaces/<ws>/clusters` | | Status / config | `aidp cluster get --cluster-key <key>` | `GET /workspaces/<ws>/clusters/<key>` | | Default cluster | `aidp cluster get-default` | (in list output) | | Libraries | `aidp cluster list-libraries --cluster-key <key>` (`patch-library` to add/remove) | inside cluster GET | | Start / Stop / Restart | `aidp cluster start\|stop\|restart --cluster-key <key>` | `POST /workspaces/<ws>/clusters/<key>/actions/start\|stop\|restart` | | Logs / metrics | `aidp cluster search-logs\|download-logs\|summarize-metrics-data --cluster-key <key>` | `…/clusters/<key>/…` | All CLI calls take `--instance-id <DATALAKE_OCID> --auth api_key --profile DEFAULT --region <r>`. ```bash # CLI (preferred): list clusters aidp cluster list --instance-id <DATALAKE_OCID> --auth api_key --profile DEFAULT --region us-ashburn-1 # CLI (preferred): cluster detail — state, config, connections aidp cluster get --cluster-key <KEY> --instance-id <DATALAKE_OCID> --auth api_key --profile DEFAULT --region us-ashburn-1 # CLI (preferred): start (the CLI handles the required body for you) aidp cluster start --cluster-key <KEY> --instance-id <DATALAKE_OCID> --auth api_key --profile DEFAULT --region us-ashburn-1 ``` Mutating ops (start/stop/restart, patch-library) — for shared clusters, persist any non-trivial body to `.aidp/payloads/` and confirm first ([references/payloads.md](../../references/payloads.md)). **Fallback (no CLI installed) — `oci raw-request`** against `https://aidp.<region>.oci.oraclecloud.com/20240831/dataLakes/<DATALAKE_OCID>/…`: ```bash # List clusters (verified GET) oci raw-request --http-method GET \ --target-uri "https://aidp.us-ashburn-1.oci.oraclecloud.com/20240831/dataLakes/<OCID>/workspaces/<WS>/clusters" \ --profile DEFAULT # Cluster detail — state, config, connections, AND installed libraries oci raw-request --http-method GET \ --target-uri "https://aidp.us-ashburn-1.oci.oraclecloud.com/20240831/dataLakes/<OCID>/workspaces/<WS>/clusters/<KEY>" \ --profile DEFAULT # Start (POST action) — a JSON body is REQUIRED (use {}); empty body 400s oci raw-request --http-method POST \ --target-uri "https://aidp.us-ashburn-1.oci.oraclecloud.com/20240831/dataLakes/<OCID>/workspaces/<WS>/clusters/<KEY>/actions/start" \ --request-body '{}' --request-headers '{"content-type":"application/json"}' \ --profile DEFAULT ``` ## Patterns - **Find compute:** `aidp cluster list` (REST `GET /clusters`) lists DataLake clusters; `GET /workspaces/<ws>/clusters` scopes the REST fallback to one workspace. Cross-workspace questions must pass the right `<ws>` — don't rely on a single default workspace. - **Status + readiness:** `aidp cluster get --cluster-key <key>` (REST `GET /workspaces/<ws>/clusters/<key>`) returns `state` (e.g. `STARTING` → `ACTIVE`) + `stateDetails`, config, connections, and attached notebooks/sessions. Data/SQL skills should call this first and `start` if stopped, then re-check, polling `state` until `ACTIVE` (start takes minutes). - **Lifecycle:** `aidp cluster start|stop|restart` (REST `…/actions/start|stop|restart`). The async 202 is poll-to-terminal. Confirm before stopping a shared cluster. - **Libraries:** `aidp cluster list-libraries --cluster-key <key>`; with the REST fallback the installed JARs + Python libs come back **inside the cluster GET**. Check before relying on a connector/lib. ## Caveats - **REST fallback only — `actions/start|stop|restart` need a body `{}`** (LIVE-VERIFIED 2026-06-09): calling with no body returns `400 InvalidParameter: The request body must not be null`; passing `--request-body '{}'` returns `202`. This (not workspace mismatch) was the original "start 400". The `aidp` CLI sets this body for you. A second `start` while already `STARTING` returns `409 Conflict` (expected) on either engine. - **Use the cluster's home workspace** in the REST action URL — find it via `GET /workspaces/<ws>/clusters` (a cluster may not live in your default workspace). The CLI resolves the workspace from the cluster key. - Per the no-fabrication gate in `oci-raw-request.md`: don't present an endpoint/version/prefix as confirmed until a live `2xx` (or documented 4xx) is recorded in `rest-endpoint-map.md`. ## Provision / scale a cluster (`aidp cluster create|update|delete`; REST `POST/PUT/DELETE …/workspaces/<ws>/clusters`) **Live-verified create body** (this provisioned `agent_e2e_cluster` → ACTIVE, 2026-06-10): ```json { "type": "USER", "displayName": "etl_cluster", "driverConfig": { "driverShape": "amd.generic", "driverShapeConfig": { "ocpus": 2, "memoryInGBs": 16, "gpus": 0 } }, "workerConfig": { "minWorkerCount": 1, "maxWorkerCount": 1, "workerShape": "amd.generic", "workerShapeConfig": { "ocpus": 2, "memoryInGBs": 16, "gpus": 0 } }, "clusterRuntimeConfig": { "sparkVersion": "3.5.0", "type": "SPARK", "initScripts": [] }, "autoTerminationMinutes": 120 } ``` - **`displayName` charset:** must **start with a letter**; the only special chars allowed are **underscore and slash**. A hyphen (e.g. `etl-cluster`) → `400 InvalidParameter` ("no special characters … except for underscore, slash") — use `etl_cluster`. - **Shapes:** AMD / ARM / Intel / NVIDIA GPU (platform-ref §12). **Quickstart** = 1 driver + ≤10 workers, AMD 2 OCPU/32 GB, autoscale (fast start); **Custom** = full control. Installing custom libs to a Quickstart cluster converts it to Custom. - **Scale:** static (`minWorkerCount == maxWorkerCount`) or **autoscale** (min < max). - **Run duration:** always-on (omit) or **idle timeout** via `autoTerminationMinutes`. - **Runtime:** Spark 3.5.0 / Delta 3.2.0 / Python 3.11 / Java 17 (Python + SQL user code only). ## Libraries (install) — `aidp cluster patch-library` Formats `.jar` / `.whl` / `requirements.txt`; source = workspace / volume / uploaded file. **Must restart the cluster after installing.** Notebook-scoped installs (`!pip install …`, `.ipynb` only) don't need a restart but apply only to that notebook (see `aidp-notebooks`). ## GPU / RAPIDS clusters (platform-ref §14) GPU shapes: 1 GPU = 15 OCPU/24 GB GPU mem; 2 GPU = 30 OCPU/48 GB. **Rule: both driver AND worker must be NVIDIA GPU — no CPU/GPU mixing.** Required RAPIDS Spark configs: `spark.plugins=com.nvidia.spark.SQLPlugin`, `spark.shuffle.manager=com.nvidia.spark.rapids.spark350.RapidsShuffleManager`, `spark.rapids.shuffle.mode=MULTITHREADED`, `spark.executor.resource.gpu.amount=1`, `spark.task.resource.gpu.amount=1/executor.cores`. Libraries: Spark RAPIDS, Spark RAPIDS ML (cuML). ## AI Compute (Preview) — powers agent flows Specialized compute for **agent flows** (`aidp-agent-flows` / `aidp-agent-highcode`): 1–64 OCPU, restricted to **PvtDefaultWorkspace**; private workspaces must connect to a private Autonomous AI Lakehouse (immutable once linked); public workspaces can't use private ALH (AI features unavailable). Create via Workspace > Create > AI Compute; Start/Stop frees/meters compute; attached flows show on the cluster's Agent flows tab. ## Connect external BI tools (JDBC / ODBC) — additive to OAC/FDI, not a replacement The cluster **Connection Details** tab provides the **simbaSpark JDBC** and **ODBC** drivers for DBeaver / Tableau / Power BI. JDBC driver class `com.simba.spark.jdbc.Driver`; use the JDBC URL from that tab. Auth: **token-based** (no `ociProfile` in the URL → browser SSO) or **API key** (append `ociProfile=<profile_name>`). OAC connection setup itself is OAC-side (the OAC/fusion-bundle plugin); here we only expose the AIDP driver/URL. ## Notes - For Spark job/stage/task diagnostics on a running cluster, use `aidp-spark-debugging`. - **Optional accelerator:** if an `aidp` MCP happens to be configured, its `list_clusters` / `get_cluster_status` / `get_default_cluster` / `start_cluster` / `stop_cluster` / `restart_cluster` / `list_cluster_libraries` tools wrap these same REST calls. The MCP is **not required** — the `oci raw-request` calls above are the source of truth. ## References - [references/aidp-cli-map.md](../../references/aidp-cli-map.md) — skill → official `aidp` CLI command map (primary engine) - [references/oci-raw-request.md](../../references/oci-raw-request.md) — base URL, auth ladder, async/errors - [references/no-mcp-rest-map.md](../../references/no-mcp-rest-map.md) — cluster endpoint map + start-400 note - [references/rest-endpoint-map.md](../../references/rest-endpoint-map.md) — verification ledger
GitHubで見る