본문으로 건너뛰기
cccskills
무료GitHub에 공개

datarobot-connectivity-datastore-sql

Query, explore, and update databases through existing DataRobot data connections (datastores) with the connection's stored credentials: no connection strings, no app scaffolding. Use when the user wants to list DataRobot data connections, browse schemas, tables, or columns, preview a table, or run a SQL SELECT against any database connected in DataRobot; or run INSERT/UPDATE/DELETE/MERGE/CREATE (DML/DDL) through a Snowflake, Databricks, BigQuery, SAP Datasphere, or Trino connection. Examples: "query my Snowflake data connection", "show 10 rows from SALES.ORDERS in datastore <id>", "insert yesterday's totals into daily_summary in my Databricks connection". With only a JDBC URL and credentials, use datarobot-connectivity-jdbc-sql. Creating a connection happens in the DataRobot UI.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

실행 점수 미검증

설치 방법 보기

포함된 파일(5)

  • SKILL.md9.3 KB
  • references/api-reference.md7.7 KB
  • references/connector-support.md5.9 KB
  • references/troubleshooting.md5.7 KB
  • scripts/datastore_sql.py55.0 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

DataRobot Datastore SQL

Run SQL through a data connection the user already set up in DataRobot; the API calls it a datastore. DataRobot resolves the connection and its stored credential server-side, so no database secrets pass through the agent.

For a JDBC URL and credentials instead of a DataRobot connection, use datarobot-connectivity-jdbc-sql.

Prerequisites

  • Auth: set both DATAROBOT_ENDPOINT (ends in /api/v2) and DATAROBOT_API_TOKEN, or neither, in which case both come from ~/.config/datarobot/drconfig.yaml. If auth fails, invoke datarobot-setup.
  • Python 3.9+, standard library only. Run the script by its path in this skill's folder: python3 <skill-dir>/scripts/datastore_sql.py.

Script

datastore_sql.py <command> -h lists every option.

CommandPurpose
datastores [--name TEXT]Every connection you can access. role is your access (OWNER, EDITOR, CONSUMER). sql is what DataRobot supports for the driver (read (fast) + write, read (fast), read (legacy), no SQL (file/object connector)); it is the write gate, not a grants check
credentials --datastore-id IDYour stored credentials for the connection, with the default marked
routes --datastore-id IDWhether your account can use the newer read and write routes, and whether this connection's driver can write. Sends no SQL
schemas · tables [--schema S --like TEXT] · columns --table TDiscovery. --like matches part of the name, any case
preview --table T [--schema S]First rows of a table (default --max-rows 20)
query --sql "…" | --sql-file F [--bind '[42, "a"]']One read-only statement (default --max-rows 100, max 10000). Binds fill ? placeholders in order
plan --sql "…" | --sql-file F [--bind …]DML/DDL plan and confirm token. Changes nothing
execute <same arguments> --confirm TOKENRuns the approved plan

Commands that act on one connection take --datastore-id and an optional --credential-id. Without --credential-id, the connection's default credential is used.

Output options:

  • --format table|csv|json: CSV sends the # notes to stderr.
  • --show N: rows printed, default 20 for preview and query, 100 for listings.
  • --width N: cell width.
  • --out FILE: saves every fetched row (JSON for .json, else CSV); stdout then shows only a preview.

Exit codes: 0 ok · 1 usage · 2 API error, or a write whose outcome is unknown · 3 the confirm token no longer matches · 4 the database reported a write failure · 5 not possible here (route unavailable, or the connection cannot write).

Workflow

- [ ] 1. Find the connection: `datastores --name <text>`
- [ ] 2. Discover: `tables --schema <s> --like <text>`, `columns --table <t>`
- [ ] 3. Read: `preview`, or `query` with WHERE/LIMIT/aggregation
- [ ] 4. Write, only if the user asked: checks → `plan` → approval → `execute --confirm` → verify
  • Several matches: prefer the exact name the user gave. When the user says "my", prefer a connection with role OWNER. If it is still ambiguous, ask.
  • No match: run datastores without --name. A no SQL connection is a file or object store and cannot be queried.
  • Credentials: run credentials to see which credential will be used, or when the user names another one.
  • Names: Datasphere spaces and BigQuery datasets are schemas. In SQL, quote names that are mixed-case, start with a digit, or contain special characters. Use "…" for Snowflake, Datasphere/HANA, Postgres, Trino and Oracle, and `…` for MySQL, BigQuery and Databricks. See references/connector-support.md.
  • Wide tables: select the columns you need with query, or save with --out and summarize the file.
  • Empty discovery: discovery shows only objects the credential can access. Check the schema name, its case, and the grants.

Writes:

  1. Check write support. The connection's sql must be read (fast) + write; plan refuses others (exit 5). If it isn't, stop: DataRobot cannot write there. Offer datarobot-connectivity-jdbc-sql with the database's own JDBC URL.
  2. Check the target and impact. Confirm the target exists and is a table, not a view (tables, columns). If it doesn't, stop and ask the user. Measure the impact with a read: SELECT COUNT(*) FROM t WHERE <same condition> for UPDATE or DELETE; required columns and existing keys for INSERT.
  3. Plan. plan --datastore-id <id> --sql "<sql>" prints WRITE PLAN (nothing has run) and a token. It only reads connection metadata. Show the plan to the user and ask for an explicit yes.
  4. Execute. Run execute with the same arguments plus --confirm <token>. The token covers the connection, credential, SQL and binds. Any change means a new plan and a new approval (exit 3).
  5. Verify. No row count comes back, so check with query for DML or tables/columns for DDL.

Several statements in one request:

  • Snowflake runs them in one transaction.
  • Databricks runs them without one, so earlier statements stay applied if a later one fails.
  • Other connectors: send one statement per execute.

Rules

  • Never pass --confirm until the user has approved that exact plan.
  • Never retry a write after exit 2 until a read shows its effect: the outcome is unknown.
  • Writes run with your credential for the connection, and anyone with access to it can write, even a CONSUMER. State the target and impact plainly.
  • query and preview run only reads (SELECT, WITH, VALUES, SHOW, DESCRIBE, EXPLAIN). The check cannot see side effects of functions a query calls, so prefer a read-only credential for exploration.
  • Keep results small: aggregate, filter, LIMIT. Save large results with --out.
  • Tell the user which route answered: preview and query print a # route: line. verifySQL (legacy) results have no column types and stop at 999 rows.

Routes

The script picks the route and falls back by itself. Details are in references/api-reference.md.

Route (POST /externalDataStores/{id}/…/)UseIf unavailable
previewQuery/Read SQL, typed results, bind parametersFalls back to verifySQL/ (≤999 rows, no types)
preview/Table sampleFalls back to verifySQL/ with SELECT * FROM <table>
executeUpdate/DML/DDLNo fallback. A 403 … (Enable the Future Public API) means writes are not enabled for the account: ask a DataRobot admin, or use the JDBC skill

routes shows which of these the account can use. Discovery commands use separate metadata endpoints and print no # route: line.

Common errors

ErrorFix
422 Credentials were not provided…Pass --credential-id or set a default. A wrong connection id causes the same error, so verify it with datastores
403 You do not have the required permissions. Details: …The database rejected the stored login or a privilege; fix the credential or the grants
400 with a database messageA missing object, identifier case or quoting, or the dialect; check tables/columns
408 Request timed outReads: a warehouse is still starting or the query is heavy (300 s limit); retry later or narrow the query. Writes: the outcome is unknown; check with query

Full table: references/troubleshooting.md.

Using DataRobot SDK

The script calls REST directly. That avoids SDK client retries, which could run a write twice. In application code, datarobot>=3.19 wraps the same routes:

import datarobot as dr

store = dr.DataStore.get("<data-store-id>")
rows = store.preview_query("SELECT region, COUNT(*) AS n FROM sales.orders GROUP BY region", max_rows=100)
message = store.execute_update("UPDATE t SET flag = TRUE WHERE id = ?", bind_parameters=[42])  # "OK" on success

Raw REST, fallback logic, and SDK caveats are in references/api-reference.md.

References

  • references/api-reference.md: routes, bodies, responses, value formatting, limits, bind parameters, timeouts, discovery routes, app-code snippets
  • references/connector-support.md: capability and transactions by connector, dialects and quoting, DDL differences, discovery SQL
  • references/troubleshooting.md: every known error, its cause, and the fix

Related skills

  • datarobot-connectivity-jdbc-sql: SQL through a caller-supplied JDBC URL; also writes where a DataRobot connection cannot
  • datarobot-setup: authentication and SDK setup
  • datarobot-data-preparation: register data as a DataRobot dataset for modeling

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Use when the user wants to design, build, code, simulate, or deploy an AI agent (not a predictive model) to DataRobot; mentions agent_spec.yaml, dr-assist, datarobot-agent-assist, dress rehearsal, swarm simulation, or the DataRobot agent template; wants to scaffold a LangGraph, CrewAI, LlamaIndex, NAT, or Base agent targeting DataRobot; wants to add an MCP server, backend API, or React frontend to a DataRobot agent application; or uses the DataRobot CLI (dr) to build or deploy an agentic custom application; or wants to harden, stress-test, or battle-test an agent. Covers the full workflow: agent design, agent_spec.yaml authoring, dress-rehearsal simulation via the DataRobot LLM Gateway, adversarial swarm simulation, template-based coding, and deployment.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

datarobot-oss/datarobot-agent-skills322026년 10월 23일 업데이트

Use when the user wants to design, build, code, or deploy an AI agent on DataRobot; mentions agent_spec.yaml, dress rehearsal, the DataRobot agent template, LangGraph, CrewAI, LlamaIndex, NAT, Base agents, MCP servers, backend APIs, custom frontends, or the DataRobot CLI.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

datarobot-oss/datarobot-agent-skills322026년 10월 23일 업데이트

Use when an agent assist user wants to deploy their agent, put it on DataRobot, get a link to it, or share it with others, the agent can run as a single container, and the project has no `infra/Pulumi.yaml`. Not for agents built from the agent template, which deploy with Pulumi through datarobot-agent-assist. Users usually just say "deploy" or "deploy to DataRobot" and won't mention containers, workloads or the CLI.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

datarobot-oss/datarobot-agent-skills322026년 10월 23일 업데이트

Use when the user wants to adversarially test, evaluate, or harden an implemented AI agent before deployment; mentions swarm simulation, attack testing, persistence testing, evaluation criteria, or eval_report.md.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

datarobot-oss/datarobot-agent-skills322026년 10월 23일 업데이트

Use when the user wants to configure LLM integration for a DataRobot agent application. This skill helps to change LLM model, switch between the LLM integrations the project supports (LLM Gateway, a DataRobot-deployed LLM, an external provider, an LLM Blueprint, and any others its config declares), or set up provider credentials. The skill reads the project's .datarobot/cli/llm.yml for the real options, interviews the user, then runs sync_llm_env.py with the chosen values as CLI args to merge into .env.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

datarobot-oss/datarobot-agent-skills322026년 10월 23일 업데이트

Guidance for setting up CI/CD pipelines for DataRobot application templates using GitLab, GitHub Actions, and Pulumi for infrastructure as code. Use when setting up CI/CD pipelines, configuring deployments, or managing infrastructure for DataRobot application templates.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

datarobot-oss/datarobot-agent-skills322026년 10월 23일 업데이트

datarobot-oss의 스킬 모두 보기

이 스킬의 문제 신고