请问在dolphindb中如何查询一个SQL语句涉及的分区数目?

我创建了一个测试用例:

n=1000000
date=take(2019.01.01..2019.01.03,n)
sym = take(`C`MS`MS`MS`IBM`IBM`IBM`C`C$SYMBOL,n)           
price= take(49.6 29.46 29.52 30.02 174.97 175.23 50.76 50.32 51.29,n)
qty = take(2200 1900 2100 3200 6800 5400 1300 2500 8800,n)
t=table(date, sym, price, qty)

db1=database("",VALUE,2019.01.01..2019.01.03)
db2=database("",VALUE,`C`MS`IBM)
db=database("dfs://stock",COMPO,[db1,db2])
trades=db.createPartitionedTable(t,`trades,`date`sym).append!(t)

我想知道下面的这个SQL语句涉及了多少分区:

select * from trades where date=2019.01.02

请问应该怎么操作?

阅读 1.5k
1 个回答

可以通过getTabletsMeta函数获取当前节点上指定数据表chunk的元数据信息,结合pnodeRun函数获取各个数据节点上指定数据表chunk的元数据信息,然后通过条件删选就可以得到上面场景需要的信息:
具体代码如下:

select dfsPath from pnodeRun(getTabletsMeta) where tableName = 'trades' and like(dfsPath, '%20190102%')

返回结果如下:

image

说明涉及了3个分区,分别如图中所示。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
101 新手上路
子站问答
访问
宣传栏