Athena - 有什么办法可以为特定的文件名格式创建表格指向吗?
问题描述:
我正在使用Athena从S3上分区的多个文件中查询数据。我创建了一个Athena - 有什么办法可以为特定的文件名格式创建表格指向吗?
CREATE EXTERNAL TABLE IF NOT EXISTS testing_table (
EventTime string,
IpAddress string,
Publisher string,
Segmentname string,
PlayDuration double,
cost double) PARTITIONED BY (
year string,
month string,
day string)) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ESCAPED BY '\\' LINES TERMINATED BY '\n' LOCATION 's3://campaigns/testing/';
在我的位置中,可能有不同的文件名的多个文件,如:“campaign_au_click.csv”,“campaign_au_impression.csv”。这些文件可能有不同的结构。
是我的上表只能从获取数据的任何方式点击文件。
谢谢
答
你最好的选择是把它们分成不同的文件夹。像Hive一样,Athena在文件夹级别上工作 - 文件夹中的任何和所有文件都将被作为相同的模式。
答
第一个选项应该是将这些文件放在不同的文件夹中。但考虑到我们现在有这种情况,我们想要查询表格中的特定文件。有一个工作。
只用根文件夹创建表。但是在查询时可以在文件名上有一个WHERE子句。文件名的列名由“$ path”(包括引号)访问。
例如,查询可以
SELECT .....
From .....
WHERE
.....
AND
"$path" like "%_click.csv"
注:where子句提供的仅仅是一个例子。你可以探索regexp_like而不是像。