我创建了一个测试用例:
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的元数据信息,然后通过条件删选就可以得到上面场景需要的信息:
具体代码如下:
返回结果如下:
说明涉及了3个分区,分别如图中所示。