skills/adbc/SKILL.md
Connect to and work with databases using Arrow Database Connectivity (ADBC). Use whenever the user needs to use a database.
npx skillsauth add kilo-org/kilo-marketplace adbcInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use the dbc command line tool to find available drivers for a database. It's possible no driver may exist for the user's database of choice as not all databases have ADBC drivers.
If the user does not have dbc available, try to install it for them.
Prefer installing it with these commands, in order of preference, if the tool is available:
uv is available: uv tool install dbcpipx is available: pipx install dbcbrew is available: brew install columnar-tech/tap/dbcwinget is available: winget install dbcdbc search
Install a driver by running dbc install <DRIVER>. This is idempotent — if the driver is already installed, it is a no-op that simply reports the existing installation — so there is no need to check first before running it.
Prefer to install drivers using dbc over installing driver packages from PyPI or Conda Forge.
For anything beyond a one-shot dbc install <DRIVER> — reproducible dbc.toml / dbc sync workflows, version pinning, or any other dbc subcommand — invoke the dbc skill rather than guessing at commands. In particular, note that there is no dbc list command.
Refer to drivers by their dbc short name and avoid specifying drivers with absolute paths.
Example: After running dbc install sqlite, refer to that driver as sqlite. For example:
from adbc_driver_manager import dbapi
dbapi.connect(driver="sqlite", db_kwargs={"uri": "foo.db"})
Don't use dbc info to find where drivers are installed and find their absolute paths on disk.
See the resources below depending on which language or languages the user wants to use:
resources/languages/cpp.mdresources/languages/go.mdresources/languages/javascript.mdresources/languages/python.mdresources/languages/r.mdresources/languages/rust.mdPrefer any language the user has already said they're using or can use. Each of these examples use the "sqlite" driver, connect to an in-memory database, and load a "penguins.parquet" file. This is done just for explanatory purposes and the code should be adapted to the user's problem.
See the resources below depending on which database the user wants to use:
resources/drivers/duckdb.mdresources/drivers/flightsql.mdresources/drivers/mysql.mdresources/drivers/postgresql.mdresources/drivers/snowflake.mdresources/drivers/sqlite.mdConnection profiles are TOML files that store a driver name and connection options, referenced by a profile://profile_name URI. They decouple credentials and environment-specific config from application code.
Suggest connection profiles when the user:
All language bindings that wrap the C++ or Rust driver manager support connection profiles, including Python, Go, R, Java, GLib/Ruby, C++, and Rust. JavaScript (@apache-arrow/adbc-driver-manager) also supports connection profiles via the profileSearchPaths option.
See resources/connection-profiles.md for the TOML format, file locations, and environment variable substitution syntax. See the relevant language resource for the binding-specific API.
development
Oracle Database guidance for SQL, PL/SQL, SQLcl, ORDS, administration, app development, performance, security, migrations, and agent-safe database workflows. Use when the user asks to write, edit, rewrite, review, format, debug, tune, or explain SQL; create or refactor PL/SQL; use SQLcl, Liquibase, ORDS, JDBC, node-oracledb, Python, Java, .NET, or database frameworks; troubleshoot queries, sessions, locks, waits, indexes, optimizer plans, AWR, ASH, migrations, schemas, users, roles, privileges, backup, recovery, Data Guard, RAC, multitenant, containers, monitoring, auditing, encryption, VPD, or safe agent database operations.
documentation
Patterns for reading and writing oleander Iceberg catalog tables in Spark jobs, including naming conventions, write modes, and catalog hierarchy.
data-ai
Integrate Okta for enterprise identity workflows including OIDC login, group claims, and policy-based access controls. Use when implementing workforce or B2B identity scenarios.
documentation
Use when arranging Apache NiFi processors, process groups, ports, comments, numbering, crossing connections, dense fan-in/fan-out, or reusable readable canvas layouts.