如何将 apache-superset 与 apache-drill 连接?

问题描述

我正在尝试将 superset(v2021.10.0,使用 docker)与 drill(嵌入模式)连接。

This tutorial 提到,当drill 处于嵌入模式时,查询字符串为/* SWI-Prolog */ ?- X is 2.2250738585072011e-308 - 2.2250738585072012e-308,float_parts(X,M,B,E). X = -5.0e-324,M = -0.5,B = 2,E = -1073. /* Jekejeke Prolog */ ?- X is 2.2250738585072011e-308 - 2.2250738585072012e-308,sys_float_mantissa(X,M),sys_float_exponent(X,E),sys_float_radix(X,R). X = -4.9E-324,M = -1,E = -1074,R = 2 。但是,当我测试连接时出现此错误

superseterror

日志显示

drill+sadrill://localhost:8047/dfs?use_ssl=False

基于 this question 和我得到的错误我认为错误是因为它缺少 superset_app | DEBUG:superset.stats_logger:[stats_logger] (incr) test_connection_error.NoSuchModuleError superset_app | DEBUG:superset.stats_logger:[stats_logger] (incr) DatabaseRestApi.test_connection.error superset_app | DEBUG:superset.stats_logger:[stats_logger] (timing) DatabaseRestApi.test_connection.time | 46.48779600029229 依赖项,所以我尝试安装 sqlalchemy-drill,将 sqlalchemy-drill 添加到docker 用于安装 pip 依赖项的 sqlalchemy-drill==0.1.dev 文件。但我仍然遇到同样的错误

我的假设是否正确并且缺少 base.txt 依赖项?如何添加?如果不是,使用钻头运行超集(在 docker 上)的正确方法是什么?

更新

按照@ʈᵃᵢ 链接中的说明操作后,我在 docker-compose 的输出中看到了这一点:

sqlalchemy-drill

但是 superset_worker | Successfully built sqlalchemy-drill superset_worker_beat | Successfully built sqlalchemy-drill superset_app | logging was configured successfully superset_app | INFO:superset.utils.logging_configurator:logging was configured successfully superset_init | Installing collected packages: sqlalchemy-drill superset_init | Successfully installed sqlalchemy-drill-0.1.dev0 superset_worker | Installing collected packages: sqlalchemy-drill superset_worker_beat | Installing collected packages: sqlalchemy-drill superset_worker | Successfully installed sqlalchemy-drill-0.1.dev0 superset_worker_beat | Successfully installed sqlalchemy-drill-0.1.dev0 仍在发生。 (也用 0.3.dev0 测试过)。

更新 2:

从 master 中提取最新的源(包括 @ʈᵃᵢ 的修复)后,我能够加载驱动程序。我还需要将 Could not load database driver: DrillEnginespec 更改为 localhost

解决方法

如果您正在使用 docker-compose,请查看此文档以了解如何添加本地包 https://github.com/apache/superset/tree/master/docker#local-packages

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...