6

我想检查 Athena 中的分区列表。

我使用了这样的查询。

show partitions table_name

但我想搜索存在的特定表。

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

show partitions table_name partition(dt='2010-03-03')

因为 dt 也包含小时数据。

dt='2010-03-03-01', dt='2010-03-03-02', ...........

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

我必须像这样分开分区吗?

dt='2010-03-03', dh='01'

并且 show partitions table_name 在 Hive 中仅返回 500 行。雅典娜也一样吗?

4

1 回答 1

3

在雅典娜 v2 中:

使用这个 SQL:

SELECT dt
FROM db_name."table_name$partitions"
WHERE dt LIKE '2010-03-03-%'

(请参阅官方 aws 文档


在雅典娜 v1 中:

有一种方法可以将分区列表作为结果集返回,因此可以使用LIKE. 但是您需要information_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-%'
于 2019-01-02T12:20:08.857 回答