如何使用AWS athena连接Superset?

时间:2017-01-13 10:36:23

标签: amazon-web-services sqlalchemy amazon-athena

是否有人尝试将超集连接到AWS athena?

我可以使用SQLAlchemy URI连接到redshift: 的PostgreSQL://用户名:password@xxxx.redshift.amazonaws.com:端口/ DBNAME

但我很难连接到AWS athena。 AWS有JDBC驱动程序(http://docs.aws.amazon.com/athena/latest/ug/connect-with-jdbc.html),但我无法弄清楚如何将它与超集一起使用。任何一个例子?

5 个答案:

答案 0 :(得分:3)

万一其他人会来这里:

awsathena+jdbc://username:password@xxxx.redshift.amazonaws.com:port/dbname

这来自superset documentation

答案 1 :(得分:1)

看看this github PR 您需要将PyAthenaJDBC软件包安装到pip中。你所指的驱动程序是一个Java驱动程序,这很棒,但Superset主要是一个Python应用程序,所以它需要一个python驱动程序来连接/与Athena交互。

上述答案是正确的,但您需要安装该软件包以确保您实际可以连接到athena。

答案 2 :(得分:0)

连接到Athena的Driver时,必须定义属性s3_staging_dir。

示例:s3_staging_dir = s3:// your_bucket

答案 3 :(得分:0)

我通过以下步骤使用PyAthenaJDBC(python 3.6.7)进行工作:

1)确保您具有PyAthenaJDBC pkg。已安装:

pip install "PyAthenaJDBC>1.0.9"

2)重新启动超集

3)下载JDBC驱动程序:从aws driver download我使用了AthenaJDBC41-2.0.6.jar版本

4)将数据源添加到超集:

awsathena+jdbc://AWS_KEY:AWS_SECRET@athena.us-west-2.amazonaws.com/mydb?s3_staging_dir=s3://path/to/my/data/&driver_path=/drivers/AthenaJDBC41_2.0.6.jar
注意:如果超集正在ECS / EC2上运行,则您可以分配一个IAM角色,并从URI(以下示例原始连接URI)中删除AWS KEY / SECRET:
awsathena+jdbc://{aws_key}:{aws_secret}@athena.{region_name}.amazonaws.com/{schema_name}?s3_staging_dir={s3_staging_dir}&driver_path={driver_path}
here的更多信息:

答案 4 :(得分:0)

我们尝试使用PyAthena JDBC和REST安装超集。我们在PyAthena(REST)方面的经验远胜过PyAthenaJDBC,建议在生产中使用它。

安装PyAthena(纯Python库,不需要Java)

pip install "PyAthena>1.2.0"

通过创建连接URL访问数据库

awsathena+rest://{aws_access_key_id}:{aws_secret_access_key}@athena.{region_name}.amazonaws.com/{schema_name}?s3_staging_dir={s3_staging_dir}&...

我发现了这个article,这是部署超集的一个很好的指南。