无法使用athena数据库连接到超集

时间:2018-03-30 17:36:25

标签: python sqlalchemy amazon-athena superset apache-superset

我是超集的新手。 转到来源> 数据库以获取与我的athena的新连接。

我已下载JDBC驱动程序并在连接行后面编写:

  

awsathena + JDBC:// AKIAJ2PKWTZYAPBYKRMQ:GzfR1e1YLphMjvQxTyeMNc0Mb@athena.us-east-1.amazonaws.com:443 /默认s3_staging_dir ='S3:// awsathena查询 - 结果-831083831535-US-朝东1 /'作为SQLAlchemy URI。第一个参数是访问密钥,第二个是密钥(为隐私修改了一点)

我收到的错误是:

ERROR: {"error": "Connection failed!\n\nThe error message returned was:\nCan't load plugin: sqlalchemy.dialects:awsathena.jdbc"}

非常感谢支持,因为我真的希望在我的数据库中使用超集来探索开源可视化。

谢谢, 拉维

3 个答案:

答案 0 :(得分:1)

根据Superset documentation,您需要至少转义/编码s3_staging_dir,即

s3://... -> s3%3A//...

你是否遵循了这一步?

答案 1 :(得分:1)

如果确定在启动超集的相同python环境中完成了pip install "PyAthenaJDBC>1.0.9"。尝试在相同的环境中重新启动Superset。

答案 2 :(得分:0)

在我的情况下,问题是aws_secret_keys3_staging_dir中的特殊字符。我通过将quote_plus方法的输出放入URI来解决了这个问题。无需引号。

from urllib.parse import quote_plus
secretkey = quote_plus(aws_secret_access_key) 
loc = quote_plus(s3_staging_dir)

此外,请确保s3路径中已存在schema_name(即数据库名称)。希望对您有帮助!