-
Notifications
You must be signed in to change notification settings - Fork 16.4k
Description
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