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行。雅典娜也一样吗?
在雅典娜 v2 中:
使用这个 SQL:
SELECT dt
FROM db_name."table_name$partitions"
WHERE dt LIKE '2010-03-03-%'
Run Code Online (Sandbox Code Playgroud)
(请参阅官方 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-%'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1332 次 |
| 最近记录: |