From exasol
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.
How this skill is triggered — by the user, by Claude, or both
Slash command
/exasol:exasol-bucketfsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Trigger when the user mentions **BucketFS**, **exapump**, **bucket**, **bfsdefault**, **upload to BucketFS**, **download from BucketFS**, **delete from BucketFS**, **BucketFS path**, **BucketFS file**, or any BucketFS file management task.
Trigger when the user mentions BucketFS, exapump, bucket, bfsdefault, upload to BucketFS, download from BucketFS, delete from BucketFS, BucketFS path, BucketFS file, or any BucketFS file management task.
BucketFS is a synchronous distributed file system available on all nodes of an Exasol cluster. Files stored in BucketFS are automatically replicated to every cluster node.
Key concepts:
bfsdefault.default.models/my_model.pkl)./buckets/<service>/<bucket>/<path> (e.g., /buckets/bfsdefault/default/models/my_model.pkl).Important characteristics:
The exapump command is the CLI tool for managing BucketFS. All BucketFS operations use the exapump bucketfs subcommand.
Connection settings are stored in ~/.exapump/config.toml as named profiles. Example:
[production]
host = "exasol-prod.example.com"
user = "admin"
password = "s3cret"
default = true
bfs_write_password = "bucketpw"
bfs_read_password = "bucketpw"
Key profile fields:
| Field | Default | Purpose |
|---|---|---|
bfs_host | Falls back to host | BucketFS hostname |
bfs_port | 2581 | BucketFS port |
bfs_bucket | default | Bucket name |
bfs_write_password | Required | Write authentication |
bfs_read_password | Falls back to write password | Read authentication |
bfs_tls | Falls back to tls | Enable TLS |
bfs_validate_certificate | Falls back to validate_certificate | Certificate validation |
Connection parameters can also be overridden per command via CLI flags (highest priority):
| Flag | Purpose |
|---|---|
--profile | Select a named profile |
--bfs-host | Override hostname |
--bfs-port | Override port |
--bfs-bucket | Override bucket name |
--bfs-write-password | Override write password |
--bfs-read-password | Override read password |
--bfs-tls | Override TLS setting |
--bfs-validate-certificate | Override certificate validation |
Parameter resolution order: CLI flags → profile values → smart defaults.
Before any BucketFS operation, verify the connection is configured:
~/.exapump/config.toml exists and contains a default profile.~/.exapump/config.toml.ls — List Contentsexapump bucketfs ls [PATH] [OPTIONS]
exapump bucketfs ls -r [PATH] # Recursive listing
exapump bucketfs ls --recursive [PATH]
Examples:
exapump bucketfs ls # List bucket root
exapump bucketfs ls models/ # List a directory
exapump bucketfs ls -r models/ # Recursively list all files under models/
cp — Copy / Upload / DownloadDirection is automatically determined by the source type (local file vs. BucketFS path).
Upload a local file to BucketFS:
exapump bucketfs cp <local-file> <bucket-path>
exapump bucketfs cp <local-file> <bucket-dir>/ # Preserve filename
Download a file from BucketFS to local:
exapump bucketfs cp <bucket-path> <local-path>
Examples:
exapump bucketfs cp my_model.pkl models/my_model.pkl # Upload with explicit name
exapump bucketfs cp my_model.pkl models/ # Upload, preserve filename
exapump bucketfs cp library.jar jars/library.jar # Upload JAR for UDF
exapump bucketfs cp models/my_model.pkl . # Download to current dir
exapump bucketfs cp models/my_model.pkl ./local-copy.pkl # Download with rename
rm — Remove a Fileexapump bucketfs rm <path-in-bucket>
Examples:
exapump bucketfs rm models/old_model.pkl # Delete a single file
exapump bucketfs cp my_library.jar jars/my_library.jar
Reference in UDF SQL:
CREATE OR REPLACE JAVA SCALAR SCRIPT my_schema.my_func(input VARCHAR(2000))
RETURNS VARCHAR(2000) AS
%scriptclass com.example.MyClass;
%jar /buckets/bfsdefault/default/jars/my_library.jar;
/
exapump bucketfs cp model.pkl models/model.pkl
Load in Python UDF:
import pickle
with open('/buckets/bfsdefault/default/models/model.pkl', 'rb') as f:
model = pickle.load(f)
exapump bucketfs cp my_slc.tar.gz slc/my_slc.tar.gz
Then activate via SQL:
ALTER SESSION SET SCRIPT_LANGUAGES='PYTHON3=localzmq+protobuf:///bfsdefault/default/slc/my_slc?lang=python#buckets/bfsdefault/default/slc/my_slc/exaudf/exaudfclient_py3';
exapump bucketfs ls -r # See all files
exapump bucketfs rm old_model.pkl # Remove an outdated file
npx claudepluginhub exasol-labs/exasol-agent-skills --plugin exasolExplore S3-compatible storage (S3, R2, GCS, MinIO) using DuckDB: lists files/sizes, previews Parquet/CSV/JSON schemas/samples/row counts without downloading.
Executes T-SQL authoring (DDL, DML, data ingestion, transactions) against Microsoft Fabric Data Warehouse and SQL endpoints from CLI. Useful for table creation, data loading, schema evolution, and ETL scripting.
Executes authoring T-SQL (DDL, DML, data ingestion, transactions, schema changes) against Microsoft Fabric Data Warehouse and SQL endpoints from CLI environments.