【问题标题】:AWS Athena Javascript SDK - Create table from query result (CTAS) - Specifiy otuput formatAWS Athena Javascript SDK - 从查询结果创建表 (CTAS) - 指定输出格式
【发布时间】:2020-10-15 21:26:33
【问题描述】:

我正在尝试使用 AWS JavaScript Node.JS SDK 使用 AWS Athena 进行查询,并将结果存储在 AWS Glue 中 Parquet 格式的表中(不仅仅是 CSV 文件)

如果我使用控制台,使用 CTAS 查询非常简单:

CREATE TABLE tablename
WITH (
    external_location = 's3://bucket/tablename/',
    FORMAT = 'parquet')
    AS
SELECT *
FROM source

但是使用 AWS Athena JavaScript SDK 我只能使用 Workgoup 或 Output 参数设置输出文件目标并进行基本选择查询,结果将输出到 CSV 文件,并且不会在 AWS Glue 中正确索引,所以如果我尝试使用我得到的 JavaScript SDK 调用该查询,它会破坏它所属的更大过程:

Table properties [FORMAT] are not supported.

我将能够使用 Java SDK JDBC 驱动程序连接选项调用该 DDL 语句。

是否有人熟悉适用于 Node.JS 的 Javascript SDK 的解决方案或变通方法?

【问题讨论】:

  • 向我们展示您的代码,这将有助于找出问题所在。

标签: amazon-web-services aws-sdk amazon-athena


【解决方案1】:

运行您在 Athena Web 控制台中发布的 SQL、适用于 JavaScript 的 AWS 开发工具包、适用于 Java 的 AWS 开发工具包或 JDBC 驱动程序之间没有区别,这些都不会处理 SQL,因此如果 SQL 在其中之一中工作这些它将适用于所有这些。只有 Athena 服务会读取 SQL。

检查您的 SQL 并确保您在代码中使用的确实与您在 Web 控制台中尝试过的相同。如果它们确实相同,则错误在您的代码中的其他地方,所以也发布。


更新问题是大写的FORMAT。如果您将发布的代码粘贴到 Athena Web 控制台,它会出错并且不会运行查询,但如果您使用 CLI 或 SDK 运行它,则会收到您发布的错误。您在控制台中运行的 SQL 与在 SDK 中运行的 SQL 不同,否则您会在两者中得到相同的错误。

使用小写format 即可。

这绝对是 Athena 中的一个错误,这些属性不应该区分大小写。

【讨论】:

  • 是的,你是对的,编辑器将我的 SQL 格式大写为“FORMAT”,此时我收到的错误 - 不支持 FORMAT,我认为这与 SDK 相关,在 AWS 文档中他们说只有 JDBC/ODBC 启用 CTAS 查询,所以我认为他们排除了这些类型的查询(例如 Javascript)的直接 SDK 使用 - 但显然错误在于大写 ....
猜你喜欢
  • 2019-11-07
  • 1970-01-01
  • 2021-07-26
  • 1970-01-01
  • 2019-03-14
  • 2021-01-14
  • 1970-01-01
  • 2013-07-27
  • 2018-06-09
相关资源
最近更新 更多