来自同一个存储节点的多个分区,尽量打散到不同的计算节点上。
同一个查询内,不同表的相同分区,会被映射到相同的计算节点上。
同一个分区,在不同查询之间,随机分配到不同的计算节点。
合并网络连接。如图三所示,通过合并连接,减少小数据量查询的网络交互次数,降低查询延迟。
数据压缩。batch内基于列存格式进行压缩,减少网络带宽的消耗,有效提升Resharding算子加载吞吐。
异步读取。网络模块异步加载,将数据放入buffer中,Resharding算子从buffer中获取数据,让CPU、网络IO充分并行。
实例1:不分离模式,4组存储节点,存储节点负责数据扫描、查询计算。
实例2:弹性模式,4组存储节点 + 6个计算节点。存储节点负责数据扫描,计算节点负责查询计算。两个实例分别导入tpch 1TB数据作为测试数据集。
存储节点 | 计算节点 | |
不分离模式 | 4 * 3 * 8core | |
弹性模式 | 4 * 3 * 8core | 6 * 16core |
select
l_returnflag,
l_linestatus,
sum(l_quantity) as sum_qty,
sum(l_extendedprice) as sum_base_price,
sum(l_extendedprice * (1 - l_discount)) as sum_disc_price,
sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) as sum_charge,
avg(l_quantity) as avg_qty,
avg(l_extendedprice) as avg_price,
avg(l_discount) as avg_disc,
count(*) as count_order
from
lineitem
where
l_shipdate <= date '1998-12-01' - interval '120' day
group by
l_returnflag,
l_linestatus
order by
l_returnflag,
l_linestatus;
TPCH Q1 | 存储节点CPU消耗 | 计算节点CPU消耗 | |
不分离模式 | 83s | 98% | |
弹性模式 | 81s | 19.5% | 97% |
end
联系客服