DuckDB extension for Keboola Storage — query and write Keboola tables using standard SQL
Maintainer(s):
keboola
Installing and Loading
INSTALL keboola FROM community;
LOAD keboola;
Example
-- Install and load the extension
INSTALL keboola FROM community;
LOAD keboola;
-- Connect to Keboola Storage
ATTACH 'https://connection.keboola.com' AS kbc (
TYPE keboola,
TOKEN 'my-storage-api-token'
);
-- Read data
SELECT * FROM kbc."in.c-crm".contacts WHERE status = 'active';
-- Write data
INSERT INTO kbc."in.c-crm".contacts VALUES ('42', 'Alice', '[email protected]');
-- Use secrets for credential management
CREATE SECRET my_kbc (
TYPE keboola,
TOKEN 'my-storage-api-token',
URL 'https://connection.keboola.com'
);
ATTACH '' AS kbc2 (TYPE keboola, SECRET my_kbc);
About keboola
The Keboola extension exposes Keboola Storage as a native DuckDB database. Once attached, you can use standard SQL to read from and write to Keboola tables, join Keboola data with local DuckDB tables, and manage schemas.
Features:
- SELECT with filter and projection pushdown to Keboola Query Service
- INSERT, UPDATE, DELETE via Keboola Storage Importer API
- CREATE TABLE, CREATE SCHEMA, DROP TABLE, DROP SCHEMA DDL support
- SNAPSHOT mode: pull all data locally for offline/low-latency queries
- Secret management for secure credential storage
- Native Keboola type mapping (Snowflake types → DuckDB types)
- Table and column descriptions from KBC metadata
Added Functions
| function_name | function_type | description | comment | examples |
|---|---|---|---|---|
| keboola_pull | table | NULL | NULL | |
| keboola_refresh_catalog | scalar | NULL | NULL | |
| keboola_tables | table | NULL | NULL | |
| keboola_version | scalar | NULL | NULL |
Overloaded Functions
| function_name | function_type | description | comment | examples | |—————|—————|————-|———|———-|
Added Types
| type_name | type_size | logical_type | type_category | internal | |———–|———-:|————–|—————|———-|
Added Settings
| name | description | input_type | scope | aliases | |——|————-|————|——-|———|