集群配置
物理机1:1个controller+1个agent+2个datanode
物理机2:1个agent+2个datanode
web管控界面:
从DolphinDB GUI 连接DolphinDB server的P1-datanode1,执行如下代码,创建一个复合分区表:
n=20000000
ID=rand(100, n)
dates=2017.08.07..2017.08.11
date=rand(dates, n)
x=rand(10.0, n)
t=table(ID, date, x)
dbDate = database(, VALUE, 2017.08.07..2017.09.11)
dbID = database(, RANGE, 0 50 100)
db = database("dfs://compodb", COMPO, [dbDate, dbID])
pt = db.createPartitionedTable(t, pt,
date`ID)
pt.append!(t)
我执行
select * from pt where date=2017.08.07
和
select ID from pt where date=2017.08.07
都是把所涉及的分区数据都加载到内存表中吗?
执行select * from pt where date=2017.08.07是把涉及分区内的所有字段数据加载进内存表。
执行select ID from pt where date=2017.08.07是把涉及分区内的ID字段数据加载进内存表。
所以,执行select ID from pt where date=2017.08.07加载到内存表的数据,要比执行select * from pt where date=2017.08.07加载到内存表的数据少,占用的内存更少。