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.

Zur Installation springen

Quellinformationen

Repository
oracle-samples/oracle-aidp-samples
Letzte Quellaktivität
12. Juni 2026 um 17:34
Erkannte Sprache von SKILL.md
Englisch
Sterne
47
Forks
32

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
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
Auf GitHub ansehen