exasol-database
Exasol Database Skill
Trigger when the user mentions Exasol, exapump, database import/export, CSV/Parquet upload, Exasol SQL, IMPORT INTO, EXPORT INTO, EXA_, or any Exasol database interaction.
Step 0: Establish Connection
Ensure a working exapump profile before proceeding:
- If the user mentions a specific profile name → test it:
exapump sql --profile <name> "SELECT 1"(always place--profileafter the subcommand). On success, use--profile <name>on all subsequent commands. - Otherwise → test the default profile:
exapump sql "SELECT 1". - On success → proceed. No further connection setup needed.
- On failure → run
exapump profile listto check available profiles.- If profiles exist → present the list and ask the user which to use, then retry with
exapump sql --profile <name> "SELECT 1"(always place--profileafter the subcommand). - If no profiles → tell the user to run
exapump profile add defaultto create one, then retry.
- If profiles exist → present the list and ask the user which to use, then retry with
- Never read or reference the exapump configuration file — it contains credentials.
Routing Algorithm
After the connection is established, determine the task type and load only the references needed:
-
Local files (upload CSV/Parquet, export to local files):
- Load:
references/exapump-reference.md - Load:
references/import-export.md(decision tree, connection objects)
- Load:
-
Remote files / bulk loading (S3, Azure, GCS, FTP, HTTP — IMPORT/EXPORT):
- Load:
references/import-export.md
- Load:
-
SQL execution (queries, DDL, DML, schema inspection):
- Load:
references/exapump-reference.md(CLI usage) - Load:
references/exasol-sql.md(core SQL behavior)
- Load:
-
Table design (DISTRIBUTE BY, PARTITION BY, CREATE TABLE layout):
- Load:
references/table-design.md
- Load:
-
Query profiling / performance (slow queries, data skew, REORGANIZE):
- Load:
references/query-profiling.md
- Load:
-
Analytics / window functions (ROW_NUMBER, RANK, LAG/LEAD, QUALIFY, GROUPING SETS):
- Load:
references/analytics-qualify.md
- Load:
-
Virtual Schemas (external data sources, adapter scripts):
- Load:
references/virtual-schemas.md
- Load:
Multiple routes can apply — load all that match.
- Before writing any SQL (applies to routes 2–7):
- Always double-quote every identifier (column names, table names, schema names) in SELECT, FROM, WHERE, GROUP BY, ORDER BY, and JOIN clauses — without exception
- This preserves mixed-case names and prevents reserved-keyword errors in a single rule
- Do NOT quote SQL keywords, functions, or aliases — only object identifiers
- If a query fails with a syntax error, fetch the live reserved keyword list:
exapump sql "SELECT KEYWORD FROM EXA_SQL_KEYWORDS WHERE RESERVED ORDER BY KEYWORD"
Related Skills
This skill handles core database interaction: connecting, uploading/exporting files, SQL execution, and table design. For UDF development and Script Language Containers, the exasol-udfs skill provides specialized guidance and will activate automatically when relevant.
More from exasol-labs/exasol-agent-skills
exasol-udfs
Exasol User Defined Functions (UDFs) and Script Language Containers (SLCs). Covers CREATE SCRIPT, SCALAR and SET functions, ExaIterator API, Python/Java/Lua/R scripts, BucketFS file access, GPU-accelerated UDFs, and building/deploying custom Script Language Containers with exaslct.
10exasol-bucketfs
Exasol BucketFS file system management via exapump CLI. Covers listing, uploading, downloading, and deleting files and directories in BucketFS, BucketFS configuration, bucket structure, and use with UDFs.
6exasol-setup-personal
Guided setup of Exasol Personal — a single-node Exasol database deployed to your own cloud account. Covers AWS account preparation, CLI installation, deployment, sample data loading, and MCP server setup.
4