如何解决使用Terraform创建雅典娜资源
我想通过Terraform创建一个包括表和视图的Athena数据库。我已经搜索了很多,发现了一些帖子,例如此处:Create AWS Athena view programmatically
我知道我可以使用Terraform供应商执行AWS CLI命令来创建这些资源,例如:AWS Athena Create table view with SQL
但是我不想那样做。我想(尽可能)用Terraform创建所有东西,这样我就不必担心生命周期等问题。
据我了解,Athena数据库可以是Glue数据库,具体取决于您选择的来源。如果我选择AWSDataCatalog(Glue)作为Athena中的数据源,那么我是否要使用Terraform创建Athena数据库或Glue数据库都没关系,对吗?
在Glue中,我也可以创建表,但是没有视图。 Glue表是否自动对应于Athena表?如何创建雅典娜视图?我想使用SQL DDL创建所有内容,就像您可以在AWS Web Console中进行创建一样。如何通过Terraform进行工作?如果此功能不可用,最好的方法是什么?感谢您提供的所有提示和帮助!
解决方法
Athena使用Glue数据目录存储有关数据库,表和视图的元数据。所有的雅典娜表都是胶水表。但是,并非所有Glue表都可与Athena一起使用-您可以在Glue中创建在Athena中不可见的表,并且可以创建将可见但不起作用的表(例如,查询时会导致运行时错误)
Athena使用Glue数据目录作为视图,但是格式是Athena特有的,不同于可以与Spark等互操作的常规表。
在an answer to the question you link to中,我详细解释了雅典娜视图的解剖结构。我已经使用CloudFormation使用该信息创建了视图,因此也可以使用Terraform来完成。不幸的是,除非编写代码,否则您将不得不跳过所有麻烦,并将大多数信息作为Presto元数据重复。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。