从Amazon S3存储桶文件创建/更新Amazon Athena表

时间:2019-04-17 10:56:45

标签: mysql amazon-web-services amazon-s3 amazon-athena

我已经上载了Amazon S3存储桶中所有表的MySQL csv文件/ MYSQL zip文件。现在,我想将Amazon Athena与S3存储桶文件链接。但是,当我为不同的表编写模式时,对于每个表的select查询都显示相同的结果。我进行了大量搜索,但无法理解执行此操作的确切/正确方法。

我想借助S3存储桶中的一个csv / sql zip文件在雅典娜中创建/更新不同的表架构。

1 个答案:

答案 0 :(得分:1)

Amazon Athena将在已定义的目录中查找数据。该目录中的所有数据文件将被视为包含给定表的数据。

您使用CREATE TABLE命令来定义架构并将Athena定向到目录,例如:

CREATE EXTERNAL TABLE test1 (
  f1 string,
  s2 string
) 
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' 
WITH SERDEPROPERTIES ("separatorChar" = ",", "escapeChar" = "\\") 
LOCATION 's3://my-bucket/data-directory/'

您将需要为每个表运行CREATE EXTERNAL TABLE命令,每个表的数据应位于单独的目录中。 CSV文件可以采用ZIP格式(这样可以更快,更便宜地查询)。

除了自己编写这些表定义之外,还可以create a crawler in AWS Glue。将搜寻器指向数据目录,提供名称,然后搜寻器将检查数据文件并创建与文件匹配的表定义。