在Athena中查询S3库存详细信息

时间:2019-02-21 05:21:18

标签: amazon-athena presto

我在S3存储桶中有S3广告资源详细信息,并且正在通过雅典娜查询。

我的前两列如下所示:

bucket                  key
bke-p0d-bke-lca-data    dl/xxxxxx/plant/archive/01-01-2019/1546300856.json
bke-pod-bke-lca-data    dl/xxxx/plant/archive/01-01-2019/1546300856.json
bke-pod-bke-lca-data    dl/xxx/plant/archive/01-01-2019/1546300856.json

我需要他们将关键信息拆分到下面:

bucket                  Categ   Type    Date        File
bke-pod-bke-lca-data    xxxxxx  archive 01/01/2019  1546300856.json
bke-pod-bke-lca-data    xxxx    working 01/01/2019  1546300856.json
bke-pod-bke-lca-data    xxx     archive 01/01/2019  1546300856.json

我尝试substr无效。

如何根据/进行拆分?

1 个答案:

答案 0 :(得分:1)

6.8. String Functions and Operators — Presto 0.172 Documentation具有:

  

split_part(string, delimiter, index)   在string上分割delimiter并返回字段index。字段索引以1开头。如果索引大于字段数,则返回null。

因此,您应该可以使用类似这样的内容:

SELECT
  bucket,
  split_part(key, '/', 2) as category,
  split_part(key, '/', 4) as type,
  split_part(key, '/', 5) as date,
  split_part(key, '/', 6) as file