可以通过getTabletsMeta函数获取当前节点上指定数据表chunk的元数据信息,结合pnodeRun函数获取各个数据节点上指定数据表chunk的元数据信息,然后通过条件删选就可以得到上面场景需要的信息:
具体代码如下:
select dfsPath from pnodeRun(getTabletsMeta) where tableName = 'trades' and like(dfsPath, '%20190102%')
返回结果如下:
说明涉及了3个分区,分别如图中所示。
我创建了一个测试用例:
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
请问应该怎么操作?
可以通过getTabletsMeta函数获取当前节点上指定数据表chunk的元数据信息,结合pnodeRun函数获取各个数据节点上指定数据表chunk的元数据信息,然后通过条件删选就可以得到上面场景需要的信息:
具体代码如下:
select dfsPath from pnodeRun(getTabletsMeta) where tableName = 'trades' and like(dfsPath, '%20190102%')
返回结果如下:
说明涉及了3个分区,分别如图中所示。