【问题标题】:How to load parquet data from S3 to Athena programmatically without using glue如何在不使用胶水的情况下以编程方式将镶木地板数据从 S3 加载到 Athena
【发布时间】:2018-08-31 10:21:08
【问题描述】:

我在 S3 位置有镶木地板数据,需要加载到 Athena 进行查询。但我不想从 Web UI 手动加载或手动运行查询。我们可以通过运行代码并传递 S3 位置以编程方式完成吗?

我不想使用胶水,因为它并非在所有地区都可用。你能帮我写代码吗,因为我对 Athena 很陌生。

【问题讨论】:

    标签: amazon-s3 amazon-athena


    【解决方案1】:

    为了从 Athena 查询您的 S3 数据,您只需告诉 Athena 数据位置和有关列、数据类型、文件格式等的详细信息。为了清楚起见,没有“负载” - Athena 确实可以访问 S3文件到位。如果您更改这些基础文件,那么 Athena 将相应更改。

    与其“加载”到 Athena,不如考虑向 Athena 注册您的数据。您可以通过创建一个外部表来做到这一点。这个答案有一个很好的例子。 How to Query parquet data from Amazon Athena?

    如果您不知道创建外部表的正确语法,我建议您使用 Glue 的功能来创建该数据定义作为一次性练习。在那里,您可以在 Athena 中运行 SHOW CREATE TABLE my_table,它会显示为创建表而执行的语句。

    使用 Athena 通常不需要胶水 - 这是一种简单的入门方法,但只是另一个需要时间、增加复杂性等的步骤。

    【讨论】:

    • 就我而言,创建表的架构每次都会更改(我在 S3 中访问不同的数据位置),并且我不想每次使用 S3 访问不同的数据时手动更改架构雅典娜。有什么方法可以动态/以编程方式生成 CREATE 查询?
    • 如果数据有不同的模式,那就是多个表。一种选择是让 AWS Glue Crawler 为您执行编目。
    猜你喜欢
    • 2021-08-17
    • 2019-03-04
    • 2023-03-24
    • 2017-08-04
    • 2020-08-07
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    相关资源
    最近更新 更多