如何在AWS的Athena中检查分区列表?

Bet*_*lee 5 hive amazon-web-services presto amazon-athena

我想检查雅典娜的分区列表。

我这样查询。

show partitions table_name
Run Code Online (Sandbox Code Playgroud)

但是我要搜索特定表是否存在。

所以我使用了如下查询,但是没有返回结果。

show partitions table_name partition(dt='2010-03-03')
Run Code Online (Sandbox Code Playgroud)

因为dt还包含小时数据。

dt='2010-03-03-01', dt='2010-03-03-02', ...........
Run Code Online (Sandbox Code Playgroud)

那么,当我输入“ 2010-03-03”然后搜索“ 2010-03-03-01”,“ 2010-03-03-02”时,有什么方法可以搜索吗?

我需要像这样分开分区吗?

dt='2010-03-03', dh='01'
Run Code Online (Sandbox Code Playgroud)

显示分区table_name在Hive中仅返回500行。雅典娜也一样吗?

Mar*_*usz 4

在雅典娜 v2 中:

使用这个 SQL:

SELECT dt
FROM db_name."table_name$partitions"
WHERE dt LIKE '2010-03-03-%'
Run Code Online (Sandbox Code Playgroud)

(请参阅官方 aws 文档


在雅典娜 v1 中:

有一种方法可以将分区列表作为结果集返回,因此可以使用 进行过滤LIKEinformation_schema但是您需要像这样使用内部数据库:

SELECT partition_value
FROM information_schema.__internal_partitions__
WHERE table_schema = '<DB_NAME>'
        AND table_name = '<TABLE_NAME>'
        AND partition_value LIKE '2010-03-03-%'
Run Code Online (Sandbox Code Playgroud)