我已将我的数据集划分为两个单独的5M行集。每个分区都被加载到自己机器上的一个表中。我使用中央monetdb实例,将两个表都注册为远程表并将它们添加到合并表中。当使用合并表时,MonetDB是否支持并行查询执行?
当我在合并表上运行查询时,我期望MonetDB将查询并行分发到两个分区表。但是,在查看使用层析成像仪创建的结果时,我会看到每个远程表都按顺序查询。
我使用最近的源代码tarball自己编译MonetDB。我禁用了geom并确保嵌入式python可用。除此之外,我没有改变任何设置或配置标志。拥有这些分区的两台机器是具有4GB内存的1个核心虚拟机。中央机器是我的笔记本电脑,它有4个内核和16GB的内存。我还使用与分区具有相同配置的中央节点运行此实验。
我创造了这样的表:
-- On each partition (X = {1, 2}):
CREATE TABLE responses_pX (
r_id int primary key,
r_date date,
r_status tinyint,
age tinyint,
movie varchar(25),
score tinyint
);
-- On central node:
CREATE MERGE TABLE responses (
r_id int primary key,
r_date date,
r_status tinyint,
age tinyint,
movie varchar(25),
score tinyint
);
-- For both partitions
CREATE REMOTE TABLE responses_pX (
r_id int primary key,
r_date date,
r_status tinyint,
age tinyint,
movie varchar(25),
score tinyint
) ON 'mapi:monetdb://partitionX:50000/partitionX';
ALTER TABLE responses ADD TABLE responses_pX;
我运行中心节点上以下查询:
SELECT COUNT(*) FROM responses;
SELECT COUNT(*), SUM(score) FROM responses;
SELECT r_date, age, SUM(score)/COUNT(score) as avg_score FROM responses GROUP BY r_date, age;
所有查询由tomograph
工具报告的并行度没有更高比2.11%
。
这是我用来设置我的表格的页面,但是,基准测试显示了非常小的并行性,我期望得到更多。例如,我希望可以并行查询两个分区表,但是,根据'tomograph'这两个子查询是按顺序运行的......对此有任何解释吗?有没有我可能配置错误的东西? – vdeurzen