我可以使用 Athena View 作为 AWS Glue 作业的来源吗?
Posted
技术标签:
【中文标题】我可以使用 Athena View 作为 AWS Glue 作业的来源吗?【英文标题】:Can I use Athena View as a source for a AWS Glue Job? 【发布时间】:2018-11-01 13:30:57 【问题描述】:我正在尝试使用 Athena View 作为我的 AWS Glue 作业的数据源。我在尝试运行 Glue 作业时收到的错误消息是关于视图的分类。我可以将它定义为什么? 谢谢
Error Message Appearing
【问题讨论】:
目前我能找到的唯一解决方法是使用 Filter 类:docs.aws.amazon.com/glue/latest/dg/… 在我的例子中,我使用视图来过滤一些数据。 我在 AWS Glue 中找到了另一种使用 SQL 查询的方法:***.com/a/45824735/475876 【参考方案1】:您可以使用Athena JDBC driver。这种方法绕过了目录,因为只有 Athena(而不是截至 2019 年 1 月 25 日的 Glue)可以直接访问视图。
-
下载驱动程序并将 jar 存储到 S3 存储桶中。
在您的作业定义中将驱动程序的 S3 路径指定为 dependent jar。
使用以下代码将数据加载到动态框架中(使用 IAM 用户
permission to run Athena queries)。
from awsglue.dynamicframe import DynamicFrame
# ...
athena_view_dataframe = (
glueContext.read.format("jdbc")
.option("user", "[IAM user access key]")
.option("password", "[IAM user secret access key]")
.option("driver", "com.simba.athena.jdbc.Driver")
.option("url", "jdbc:awsathena://athena.us-east-1.amazonaws.com:443")
.option("dbtable", "my_database.my_athena_view")
.option("S3OutputLocation","s3://bucket/temp/folder") # CSVs/metadata dumped here on load
.load()
)
athena_view_datasource = DynamicFrame.fromDF(athena_view_dataframe, glueContext, "athena_view_source")
驱动程序文档 (pdf) 提供了 IAM 用户身份验证的替代方法(例如 SAML、自定义提供程序)。
这种方法的主要副作用是加载会导致查询结果以 CSV 格式转储到使用 S3OutputLocation
键指定的存储桶中。
我不相信您可以通过 JDBC 创建到 Athena 的 Glue Connection,因为您无法指定驱动程序位置的 S3 路径。
归因:AWS 支持完全帮助我完成了这项工作。
【讨论】:
请注意,您可以将us-east-1
替换为您的 Athena 视图所在的区域。
很好!!它真的帮助了我。谢谢以上是关于我可以使用 Athena View 作为 AWS Glue 作业的来源吗?的主要内容,如果未能解决你的问题,请参考以下文章
将数据从 Google Analytics 迁移到 AWS Athena