开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 21 天,点击查看活动详情
生命不息,学习不止
题外话
周三了,不用我多说了,我有一个小猫咪,小时候……… 望广大掘友给我个面子,v我50给猫咪买个汉堡王,记住,这是我给掘友们一个面子,一般人我都不要
废话不多说,上货
Distributed表引擎原理演示
上节讲了Distributed表引擎原理,今天就来演示一下
假设有一个Distributed表定义如下:
CREATE TABLE distributed_table (
id UInt64,
name String,
score Float64
) ENGINE = Distributed(cluster_name, default_database, remote_table_name, rand());
该Distributed表引擎将会将数据分片并分布在多个节点上,如下图所示:
+-------------------+ +-------------------+
| Distributed | | Distributed |
| Table | | Table |
| +-------------+ | | +-------------+ |
| | | | | | | |
| | Node #1 | | | | Node #2 | |
| | | | | | | |
| | +-----------+ | | | +-----------+ |
| | | Remote | | | | | Remote | |
| | | Table | | | | | Table | |
| | +-----------+ | | | +-----------+ |
| +-------------+ | | +-------------+ |
+-------------------+ +-------------------+
在这个例子中,我们将数据分片并将分片分别分布在两个节点上。每个节点上都有一个远程表,该表实际存储了该节点上分配的数据分片。
当查询Distributed表时,查询请求将被发送到所有分布式表定义的节点上。每个节点将根据自己上的远程表返回一部分查询结果,并将它们汇总到查询协调节点上。查询协调节点最后将所有部分结果组合成最终结果并返回给客户端。
例如,当执行以下查询时:
查询请求将被发送到所有节点上,每个节点将在自己的远程表中执行该查询,并返回部分结果。最后,查询协调节点将所有部分结果汇总并计算平均值,返回最终结果给客户端。
总之,Distributed表引擎通过将数据分片并分布在多个节点上,实现了分布式存储和查询。当查询Distributed表时,查询请求将被发送到所有节点上,并将它们的部分结果汇总到一个节点上,最后计算出最终结果并返回给客户端。
你以为结束了
下一篇我们继续挖坑
大家看完发现有什么错误,写在下面吧!跟我黑虎阿福比划比划!