将雅典娜连接到超集
Connecting athena to superset
所以,我正在使用 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
,但由于某种原因无法连接。我这样做是对的还是我需要做一些不同的事情?
它对我有用,如下所示将端口 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}
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 文档中的 :
?)
- 在额外参数
中再次添加区域
如果你不提供schema名称(也叫数据库),我认为它默认的值是default
遗憾的是,当连接字符串在 Superset 上失败时,没有显示任何有用的信息...
检查 PyAthena 版本。 Superset docs tell PyAthena>1.2.0
while PyAthena PyPI page 说 PyAthena[SQLAlchemy]>=1.0.0, <2.0.0
。在我的例子中,PyAthena[SQLAlchemy]>1.2.0, <2.0.0
(结合两个约束)解决了一个问题,并且表格出现在 SQL Lab 的下拉列表中(之前的 PyAthena==2.5.1
(最新)版本是空的)。
所以,我正在使用 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
,但由于某种原因无法连接。我这样做是对的还是我需要做一些不同的事情?
它对我有用,如下所示将端口 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}
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 文档中的:
?) - 在额外参数 中再次添加区域
如果你不提供schema名称(也叫数据库),我认为它默认的值是default
遗憾的是,当连接字符串在 Superset 上失败时,没有显示任何有用的信息...
检查 PyAthena 版本。 Superset docs tell PyAthena>1.2.0
while PyAthena PyPI page 说 PyAthena[SQLAlchemy]>=1.0.0, <2.0.0
。在我的例子中,PyAthena[SQLAlchemy]>1.2.0, <2.0.0
(结合两个约束)解决了一个问题,并且表格出现在 SQL Lab 的下拉列表中(之前的 PyAthena==2.5.1
(最新)版本是空的)。