以日期和symbol分区的数据库下某张表,怎么快速获取表中的所有日期?

我有一张表放在以日期和symbol分区的数据库下,日期分区列的数据类型是timestamp。

有没有比 select distinct(date(datetime)) from 更快的方法获取表中的所有日期?

我试过 select count(*) from  group by date(datetime),也不是很快。

请先 登录 后评论

1 个回答

Margo

因为数据库以日期做了一层分区,可以通过getTabletsMeta函数获取分区元数据,再通过字符串的处理,把日期提取出来。

getTabletsMeta函数的使用方法请参照 说明


举个例子,数据库 SH_TSDB_tick 以日期VALUE分区和股票代码hash分区,要获取 tick 表的所有日期可以这样写:

dbName = "dfs://SH_TSDB_tick"
tbName = "tick"
result = exec dfsPath from getTabletsMeta( dbName[5:]+ "/%", tbName, false, -1) where rowNum != 0
dateList = substr(result, regexFind(result, "[0-9]{8}"), 8).distinct().temporalParse("yyyyMMdd").sort()


请先 登录 后评论
  • 1 关注
  • 0 收藏,719 浏览
  • SaintM 提出于 2023-03-22 11:05

相似问题