Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Superset连接Doris测试连接成功,但是连接时报错 #1956

Open
rusthx opened this issue Jan 31, 2025 · 1 comment
Open

Superset连接Doris测试连接成功,但是连接时报错 #1956

rusthx opened this issue Jan 31, 2025 · 1 comment

Comments

@rusthx
Copy link

rusthx commented Jan 31, 2025

Path:/zh-CN/docs/ecosystem/bi/apache-superset

我在使用superset连接Doris时测试连接成功,但是连接时报错创建数据源失败。查看superset日志显示报错为

2025-01-31 16:08:13,496 ERROR flask_appbuilder.api MainThread : (MySQLdb.OperationalError) (1105, 'errCode = 2, detailMessage = No catalog found with name America_taxi')
[SQL: SHOW schemas FROM `America_taxi`]
(Background on this error at: https://sqlalche.me/e/14/e3q8)
Traceback (most recent call last):
  File "/home/rust/superset/lib/python3.10/site-packages/flask_appbuilder/api/__init__.py", line 110, in wraps
    return f(self, *args, **kwargs)
  File "/home/rust/superset/lib/python3.10/site-packages/superset/views/base_api.py", line 127, in wraps
    raise ex
  File "/home/rust/superset/lib/python3.10/site-packages/superset/views/base_api.py", line 121, in wraps
    duration, response = time_function(f, self, *args, **kwargs)
  File "/home/rust/superset/lib/python3.10/site-packages/superset/utils/core.py", line 1526, in time_function
    response = func(*args, **kwargs)
  File "/home/rust/superset/lib/python3.10/site-packages/superset/utils/log.py", line 255, in wrapper
    value = f(*args, **kwargs)
  File "/home/rust/superset/lib/python3.10/site-packages/superset/views/base_api.py", line 93, in wraps
    return f(self, *args, **kwargs)
  File "/home/rust/superset/lib/python3.10/site-packages/superset/databases/api.py", line 371, in post
    new_model = CreateDatabaseCommand(item).run()
  File "/home/rust/superset/lib/python3.10/site-packages/superset/databases/commands/create.py", line 109, in run
    schemas = database.get_all_schema_names(cache=False, ssh_tunnel=ssh_tunnel)
  File "/home/rust/superset/lib/python3.10/site-packages/superset/utils/cache.py", line 130, in wrapped_f
    return f(*args, **kwargs)
  File "/home/rust/superset/lib/python3.10/site-packages/superset/models/core.py", line 777, in get_all_schema_names
    raise self.db_engine_spec.get_dbapi_mapped_exception(ex) from ex
  File "/home/rust/superset/lib/python3.10/site-packages/superset/models/core.py", line 775, in get_all_schema_names
    return self.db_engine_spec.get_schema_names(inspector)
  File "/home/rust/superset/lib/python3.10/site-packages/superset/db_engine_specs/base.py", line 1197, in get_schema_names
    return sorted(inspector.get_schema_names())
  File "/home/rust/superset/lib/python3.10/site-packages/sqlalchemy/engine/reflection.py", line 237, in get_schema_names
    return self.dialect.get_schema_names(
  File "/home/rust/superset/lib/python3.10/site-packages/pydoris/sqlalchemy/dialect.py", line 157, in get_schema_names
    rp = connection.exec_driver_sql("SHOW schemas FROM %s"
  File "/home/rust/superset/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1638, in exec_driver_sql
    return self._exec_driver_sql(
  File "/home/rust/superset/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1547, in _exec_driver_sql
    ret = self._execute_context(
  File "/home/rust/superset/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1814, in _execute_context
    self._handle_dbapi_exception(
  File "/home/rust/superset/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1995, in _handle_dbapi_exception
    util.raise_(
  File "/home/rust/superset/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 207, in raise_
    raise exception
  File "/home/rust/superset/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1771, in _execute_context
    self.dialect.do_execute(
  File "/home/rust/superset/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 717, in do_execute
    cursor.execute(statement, parameters)
  File "/home/rust/superset/lib/python3.10/site-packages/MySQLdb/cursors.py", line 179, in execute
    res = self._query(mogrified_query)
  File "/home/rust/superset/lib/python3.10/site-packages/MySQLdb/cursors.py", line 330, in _query
    db.query(q)
  File "/home/rust/superset/lib/python3.10/site-packages/MySQLdb/connections.py", line 255, in query
    _mysql.connection.query(self, query)
sqlalchemy.exc.OperationalError: (MySQLdb.OperationalError) (1105, 'errCode = 2, detailMessage = No catalog found with name America_taxi')
[SQL: SHOW schemas FROM `America_taxi`]
(Background on this error at: https://sqlalche.me/e/14/e3q8)

解决方案:使用支持 Doris 的 sqlalchemy-doris 驱动
pip install sqlalchemy-doris

另外,我使用superset连接Doris时发现没有文档中的界面,superset官网介绍要点击+号后连接数据库。但是我点击+后只要创建数据集。最后我在设置里的测试连接找到了新建数据库连接。

@rusthx rusthx changed the title Issue on docs Superset连接Doris测试连接成功,但是连接时报错 Jan 31, 2025
@rusthx
Copy link
Author

rusthx commented Jan 31, 2025

使用上面的解决方法可以成功连接Doris,但是创建图表时会报错创建图表失败。但是在SQL工具箱里是能正常查看数据的。

我使用另外一种连接方法解决了无法创建图表的问题。
连接数据库时选择MySQL,端口选择9030,然后连接url如下填写。

mysql://admin:password@doris-host:9030/default_catalog.America_taxi?charset=utf8mb4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant