Repository navigation
Proposal: Redis as a queryable data source via ADBC and SQLAlchemy #45536
alberttwong
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
I'd like to propose documenting and integrating Redis as a queryable data source in Superset through the Redis ADBC driver, and ask for guidance on the preferred contribution path.
Use case and architecture
The goal is to explore Redis-backed tabular data in SQL Lab and build datasets and charts using the driver's SQL layer. This concerns Redis as an analytics data source, separately from Superset's existing Redis cache and task infrastructure.
The connection path is Superset → SQLAlchemy dialect → Python DB-API adapter → native Redis ADBC driver → Redis. Superset would use its existing SQLAlchemy integration; a new ADBC connection subsystem is not required.
Existing implementation
superset.db_engine_specsentry points. These inherit PostgreSQL time-grain behavior and map Redis backends to SQLGlot's PostgreSQL parser.redis+adbc://host:6379/0andrediss+adbc://host:6379/0for TLS.An optional Superset 6.1 smoke test covers registration, schema/table discovery, dataset metadata, grouped SUM queries, daily time-series aggregation, and SQL Lab execution using a temporary metadata database. This describes test coverage, not a fresh compatibility run for this proposal.
Scope and limitations
This is an analytics connector with AUTOCOMMIT only. Rollback cannot undo writes; savepoints and two-phase transactions are unsupported. SQL support comes from the driver's SQL layer. The plugin does not imply complete PostgreSQL compatibility or automatic SQL access to every arbitrary Redis key. Inherited engine-spec capabilities and time grains need review against actual driver capabilities.
Before an upstream documentation or engine-spec PR, installation instructions should be verified against package release status, native-library/wheel availability, supported platforms, and the target Superset version.
Proposed contribution and questions
superset.db_engine_specsplugin with database documentation, or would an in-tree Redis engine spec be appropriate?A focused first contribution could document the external connector and its limitations, with an in-tree engine spec if that is the preferred approach.
Implementation tracking: redis-adbc-driver#273. Upstream submission checklist: redis-adbc-driver#343.
All reactions