【问题标题】:Connecting athena to superset将雅典娜连接到超集
【发布时间】:2021-06-14 01:47:12
【问题描述】:
所以,我正在使用 AWS athena,其中我将 Data Source 设置为 AwsDataCatalog,database 设置为 test_db,在其下我有一个名为 table 的 debaprc。
现在,我在 EC2 实例(在虚拟环境中)上安装了超集。在实例上,我安装了PyAthenaJDBC 和PyAthena。现在,当我启动 Superset 并尝试添加数据库时,给出的语法是这样的:
awsathena+rest://{aws_access_key_id}:{aws_secret_access_key}@athena.{region_name}.amazonaws.com/{schema_name}?s3_staging_dir={s3_staging_dir}
现在我有 2 个问题 -
- 我为
schema_name提供什么?
- 我尝试将
test_db 设置为schema_name,但由于某种原因无法连接。我这样做是对的还是我需要以不同的方式做事?
【问题讨论】:
标签:
python
amazon-web-services
sqlalchemy
amazon-athena
apache-superset
【解决方案1】:
如下所示,我将端口 443 添加到连接字符串中,您可以将test_db 用作schema_name:
awsathena+rest://{aws_access_key_id}:{aws_secret_access_key}@athena.{region_name}.amazonaws.com:443/{schema_name}?s3_staging_dir={s3_staging_dir}
【解决方案2】:
当心of the encoding:
awsathena+rest://{aws_access_key_id}:{aws_secret_access_key}@athena.{region_name}.amazonaws.com:443/{schema_name}?AwsRegion={region_name}&s3_staging_dir=s3%3A%2F%2Faws-athena-results-xxxxxxx
例如,对我来说,有必要:
- 将
s3:// 转换为s3%3A%2F%2F(而不仅仅是像Superset 文档中的:?)
- 在额外参数中再次添加区域
如果你不提供模式名称(也称为数据库),我认为它默认为default的值
遗憾的是,当 Superset 上的连接字符串失败时,不会显示任何有用的信息...