Skip to content

[SIP] Support SQL-based querying on MongoDB. #36844

@passren

Description

@passren

Please make sure you are familiar with the SIP process documented
here. The SIP will be numbered by a committer upon acceptance.

[SIP] Proposal for Supporting SQL-based querying on MongoDB.<title>

Motivation

Apache Superset provides a rich SQL-based analytical experience, but it currently lacks a connector for NoSQL databases such as MongoDB. Providing SQL-based querying support for MongoDB would significantly improve Superset’s usability, lower the learning curve for analysts, and enable more real-time analytics directly on MongoDB data.

Proposed Change

I have created a DB API 2.0–compliant project that allows users to query MongoDB using SQL. A SQLAlchemy dialect has already been implemented in the project. The remaining work is to add MongoDB as a new engine in db_engine_specs, and to complete the unit tests and documentation.

Project space: https://github.com/passren/PyMongoSQL

The proposed connection string would be:
mongodb://<user>:<password>@<host>:<port>/<database>?mode=superset
mongodb+srv://<user>:<password>@<host>:<port>/<database>?mode=superset

New or Changed Public Interfaces

No changes to Public Interfaces

New dependencies

PyMongoSQL is required as a dependency and is maintained by me. I am also the author of PyDynamoDB which is the connector to dynamodb for superset, which follows a similar design and maintenance model. The license is MIT.

pip install pymongosql

Migration Plan and Compatibility

No migration is required. PyMongoSQL supports both SQLAlchemy 1.x and 2.x.

Rejected Alternatives

No

Metadata

Metadata

Assignees

No one assigned

    Labels

    design:proposalDesign proposalsenhancement:dbSuggest new DB connectionssipSuperset Improvement Proposal

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions