timeplus-io / proton-python-driver

Python driver for Timeplus Enterprise or Timeplus Proton
https://timeplus.com
Other
12 stars 3 forks source link

Test and verify with Superset #35

Open jovezhong opened 11 months ago

jovezhong commented 11 months ago

https://superset.apache.org/docs/databases/installing-database-drivers

We do provide DB API. Need to verify the integration with Superset

neodino commented 9 months ago

Getting error below for

image

root@stage-data-vizualization-superset-76b6645557-zzftr:/app# pip list|grep proton
proton-driver          0.2.10

root@stage-data-vizualization-superset-76b6645557-zzftr:/app# superset version
Loaded your LOCAL configuration at [/app/pythonpath/superset_config.py]
logging was configured successfully
2023-12-31 21:51:45,396:INFO:superset.utils.logging_configurator:logging was configured successfully
2023-12-31 21:51:45,401:INFO:root:Configured event logger of type <class 'superset.utils.log.DBEventLogger'>
/usr/local/lib/python3.9/site-packages/flask_limiter/extension.py:293: UserWarning: Using the in-memory storage for tracking rate limits as no storage was explicitly specified. This is not recommended for production use. See: https://flask-limiter.readthedocs.io#configuring-a-storage-backend for documentation about configuring the storage backend.
  warnings.warn(
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Superset 3.0.1
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

CommandException
Traceback (most recent call last):
  File "/app/superset/databases/commands/test_connection.py", line 133, in run
    with database.get_sqla_engine_with_context(
  File "/usr/local/lib/python3.9/contextlib.py", line 119, in __enter__
    return next(self.gen)
  File "/app/superset/models/core.py", line 422, in get_sqla_engine_with_context
    yield self._get_sqla_engine(
  File "/app/superset/models/core.py", line 439, in _get_sqla_engine
    self.db_engine_spec.validate_database_uri(sqlalchemy_url)
  File "/app/superset/db_engine_specs/base.py", line 1902, in validate_database_uri
    sqlalchemy_uri.get_driver_name(), set()
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/url.py", line 624, in get_driver_name
    return self.get_dialect().driver
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/url.py", line 679, in get_dialect
    entrypoint = self._get_entrypoint()
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/url.py", line 661, in _get_entrypoint
    cls = registry.load(name)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 343, in load
    raise exc.NoSuchModuleError(
sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:proton

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1823, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1799, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "/usr/local/lib/python3.9/site-packages/flask_appbuilder/security/decorators.py", line 95, in wraps
    return f(self, *args, **kwargs)
  File "/app/superset/views/base_api.py", line 127, in wraps
    raise ex
  File "/app/superset/views/base_api.py", line 121, in wraps
    duration, response = time_function(f, self, *args, **kwargs)
  File "/app/superset/utils/core.py", line 1526, in time_function
    response = func(*args, **kwargs)
  File "/app/superset/utils/log.py", line 255, in wrapper
    value = f(*args, **kwargs)
  File "/app/superset/views/base_api.py", line 93, in wraps
    return f(self, *args, **kwargs)
  File "/app/superset/databases/api.py", line 908, in test_connection
    TestConnectionDatabaseCommand(item).run()
  File "/app/superset/databases/commands/test_connection.py", line 178, in run
    raise DatabaseTestConnectionDriverError(
superset.databases.commands.exceptions.DatabaseTestConnectionDriverError: Could not load database driver: BaseEngineSpec
2023-12-31 21:48:19,184:WARNING:superset.views.base:CommandException
Traceback (most recent call last):
  File "/app/superset/databases/commands/test_connection.py", line 133, in run
    with database.get_sqla_engine_with_context(
  File "/usr/local/lib/python3.9/contextlib.py", line 119, in __enter__
    return next(self.gen)
  File "/app/superset/models/core.py", line 422, in get_sqla_engine_with_context
    yield self._get_sqla_engine(
  File "/app/superset/models/core.py", line 439, in _get_sqla_engine
    self.db_engine_spec.validate_database_uri(sqlalchemy_url)
  File "/app/superset/db_engine_specs/base.py", line 1902, in validate_database_uri
    sqlalchemy_uri.get_driver_name(), set()
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/url.py", line 624, in get_driver_name
    return self.get_dialect().driver
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/url.py", line 679, in get_dialect
    entrypoint = self._get_entrypoint()
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/url.py", line 661, in _get_entrypoint
    cls = registry.load(name)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 343, in load
    raise exc.NoSuchModuleError(
sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:proton

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1823, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1799, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "/usr/local/lib/python3.9/site-packages/flask_appbuilder/security/decorators.py", line 95, in wraps
    return f(self, *args, **kwargs)
  File "/app/superset/views/base_api.py", line 127, in wraps
    raise ex
  File "/app/superset/views/base_api.py", line 121, in wraps
    duration, response = time_function(f, self, *args, **kwargs)
  File "/app/superset/utils/core.py", line 1526, in time_function
    response = func(*args, **kwargs)
  File "/app/superset/utils/log.py", line 255, in wrapper
    value = f(*args, **kwargs)
  File "/app/superset/views/base_api.py", line 93, in wraps
    return f(self, *args, **kwargs)
  File "/app/superset/databases/api.py", line 908, in test_connection
    TestConnectionDatabaseCommand(item).run()
  File "/app/superset/databases/commands/test_connection.py", line 178, in run
    raise DatabaseTestConnectionDriverError(
superset.databases.commands.exceptions.DatabaseTestConnectionDriverError: Could not load database driver: BaseEngineSpec
gangtao commented 8 months ago

I dont think there is sqlalchemy supported by python driver for now, @qijun-niu-timeplus please confirm