前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ClickHouse系列--分布式表写入流程

ClickHouse系列--分布式表写入流程

作者头像
IT云清
发布2021-12-06 14:19:23
2.6K0
发布2021-12-06 14:19:23
举报
文章被收录于专栏:IT云清

摘要:在向ck集群写入数据的过程,有2种方案,一种是直接写本地表,一种是通过Distributed表引擎写分布式表。本文介绍写分布式表的核心流程。 先假定场景和统一命名: 我们假设有cluster1,和cluster2两个集群。 本地表log_local对应的分布式表为log_all。 假设请求A进来后请求到cluster1的分布式表log_all,要写入100条数据。

1.第一个分片写本地数据

1)cluster1节点接收到请求后,会根据分片键/分片表达式计算这100条数据的分片划分,一部分应该到cluster1,一部分应该到cluster2。 2)将应该到cluster1分片的数据直接写入log_local。

2.与远端建立连接

1)cluster1将需要写入到远端的数据以分片为单位,写入cluster1节点的临时目录下。比如有2个分片,则写入2个目录。 2)cluster1节点尝试与远端cluster2节点建立连接;

3.发送数据到远端分片

cluster1会有监听任务,监听cluster1特定目录下的文件变化,将目录下的数据压缩后发送到对应的远端节点。

4.远程分片接收数据并写入本地

1)cluster2节点确认和cluster1节点建立连接,然后接受cluster1发送的数据。 2)将接收到的数据写入到本地表。

5.第一个分片确认数据发送完成

cluster1节点会确认数据发送完毕。

同步于异步

在Distributed表向远端节点发送数据时,有2种模式,可以通过配置项设置:

1.同步写

在当前分片本地写入完成后,会等待所有分片写入完毕,才会返回写入成功的消息。 同步写可以设置超时时间。

2.异步写

在当前分片本地写入完成后,即返回写入成功的消息。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/05/28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.第一个分片写本地数据
  • 2.与远端建立连接
  • 3.发送数据到远端分片
  • 4.远程分片接收数据并写入本地
  • 5.第一个分片确认数据发送完成
  • 同步于异步
    • 1.同步写
      • 2.异步写
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档