首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将超集连接到dremio

无法将超集连接到dremio
EN

Stack Overflow用户
提问于 2022-09-30 17:16:47
回答 1查看 122关注 0票数 0

我按照这里的说明(https://superset.apache.org/docs/installation/installing-superset-using-docker-compose/)运行apache,使用docker-Compost-non-dev.yml。

我还添加了sqlalchemy到superset/docker/requirements-local.txt,以便如这里所提到的那样添加dremio支持(https://superset.apache.org/docs/databases/docker-add-drivers)。

对于dremio,我有一个独立的容器运行于dremio/dremio映像上,使用

代码语言:javascript
复制
docker run -p 9047:9047 -p 31010:31010 -p 45678:45678 -p 32010:32010 dremio/dremio-oss

然后使用localhost的web接口在dremio上做了一个帐户:9047。

但是,当我尝试将dremio添加为superset中的数据库时,我在按下测试连接时会得到以下错误:

我使用的连接字符串是

代码语言:javascript
复制
dremio+flight://dremio:dremio123@host.docker.internal:32010/dremio;SSL=0

起初,我认为这可能是网络错误或dremio中的错误,但我可以使用python脚本https://github.com/dremio-hub/arrow-flight-client-examples/blob/main/python/example.py连接到dremio。

代码语言:javascript
复制
python example.py -host host.docker.internal -query 'SELECT 1'

这个脚本使用localhost成功地从容器外部运行,从host_os运行,在superset_app容器中运行,使用host.docker.internal作为主机。因此,我不认为这是一个网络配置问题,这也证实了sqlalchemy包已正确安装在超级集容器中。

下面是superset_app容器中此错误的停靠日志

代码语言:javascript
复制
2022-09-30 16:34:09,635:WARNING:superset.views.base:SupersetErrorsException
Traceback (most recent call last):
  File "/app/superset/databases/commands/test_connection.py", line 123, in run
    raise DBAPIError(None, None, None)
sqlalchemy.exc.DBAPIError: (builtins.NoneType) None
(Background on this error at: https://sqlalche.me/e/14/dbapi)

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

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1516, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1502, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
  File "/usr/local/lib/python3.8/site-packages/flask_appbuilder/security/decorators.py", line 89, in wraps
    return f(self, *args, **kwargs)
  File "/app/superset/views/base_api.py", line 114, in wraps
    raise ex
  File "/app/superset/views/base_api.py", line 111, in wraps
    duration, response = time_function(f, self, *args, **kwargs)
  File "/app/superset/utils/core.py", line 1572, in time_function
    response = func(*args, **kwargs)
  File "/app/superset/utils/log.py", line 244, in wrapper
    value = f(*args, **kwargs)
  File "/app/superset/views/base_api.py", line 84, in wraps
    return f(self, *args, **kwargs)
  File "/app/superset/databases/api.py", line 708, in test_connection
    TestConnectionDatabaseCommand(item).run()
  File "/app/superset/databases/commands/test_connection.py", line 148, in run
    raise DatabaseTestConnectionFailedError(errors) from ex
superset.databases.commands.exceptions.DatabaseTestConnectionFailedError: [SupersetError(message='(builtins.NoneType) None\n(Background on this error at: https://sqlalche.me/e/14/dbapi)', error_type=<SupersetErrorType.GENERIC_DB_ENGINE_ERROR: 'GENERIC_DB_ENGINE_ERROR'>, level=<ErrorLevel.ERROR: 'error'>, extra={'engine_name': 'Dremio', 'issue_codes': [{'code': 1002, 'message': 'Issue 1002 - The database returned an unexpected error.'}]})]
***************
['UID=dremio', 'PWD=dremio123', 'HOST=host.docker.internal', 'PORT=32010', 'Schema=dremio', 'SSL=0']
***************
EN

回答 1

Stack Overflow用户

发布于 2022-10-11 07:35:57

确保您正在安装最新版本的sqlalchemy_dremio。您可能需要从源代码安装,因为setup.py没有相应地更新(大约在编写时)。您还需要向SQLAlchemy添加一些sqlalchemy_dremio基函数。请看以下问题:https://github.com/narendrans/sqlalchemy_dremio/issues/20

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73912016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档