ClickHouse数据管理与同步的关键技术

2024年 5 月 18 日,ClickHouse官方首届杭州 Meetup 活动成功举行。本次活动由 ClickHouse 和阿里云主办,NineData 和云数据库技术社区协办。围绕ClickHouse的核心技术、应用案例、最佳实践、数据管理、以及迁移同步等方面,和行业专家展开交流探索。

本次活动,NineData 高级架构师周金义受邀参会,分享《ClickHouse 数据管理与同步的关键技术》的技术分享。

图片

本文来自于周金义在ClickHouse沙龙·杭州站的公开分享整理:


图片

我很荣幸能在此与大家分享关于ClickHouse领域的见解,特别是关于NineData在数据管理和同步方面的最新进展。今天,我将围绕三个主题进行讲解:

1. NineData简介

1.1 公司背景与团队

NineData是一家由行业资深专家创立的公司,其CEO曾在阿里云担任要职,负责数据库产品管理和解决方案的整体设计,推进云原生数据库产品体系的建设。包括知名的云原生数据库产品:DTS、DMS、DBS和DAS。引领了云原生数据库生态的发展,并成功推出了四款备受认可的产品:数据库DevOps、数据复制、备份与恢复以及数据对比,已在众多客户中得到了积极的反响。

2.2 NineData数据管理平台

NineData数据管理平台致力于提供高效、易用的解决方案,主要价值表现在权限管理、规范流程和开发协同。通过集成ClickHouse的强大功能,帮助用户更好地管理和优化他们的数据。平台专注于提升数据处理效率,简化运维流程,以满足现代企业对数据的需求。

1.3 NineData数据同步

在数据同步方面,NineData不断优化技术栈,构建了一套稳定且高效的架构,专为ClickHouse设计,旨在无缝连接各类数据源,实现实时或准实时的数据同步,确保数据一致性。

1.4 NineData架构总览

接下来,让我们深入了解NineData的四款核心产品。下面是对NineData智能数据管理平台的概览介绍。

图片

第一点,DevOps模块是我们关注的重点。其核心价值在于实现高效协同开发,解决企业在多数据库环境中的挑战。随着业务的复杂性增加,企业往往使用多种数据库类型,包括TP、AP,甚至国产数据库。然而,对于开发人员和DBA而言,如何在一个统一平台上无缝访问这些不同类型的数据库,往往是他们面临的一大难题。目前市场上的解决方案往往无法覆盖所有数据库类型,这正是我们的DevOps平台所填补的空白。

其中,DevOps提供强大的权限管理,确保数据库系统的安全稳定。如果权限控制不当,可能导致生产环境的问题。此外,我们的系统还提供详尽的操作审计功能。每当在源库进行任何操作时,都会被精确记录,以便在出现问题时,能够追溯到特定员工在何时对哪个数据库进行了何种操作。这样的审计记录有助于我们及时发现并处理潜在问题,确保数据安全和合规性。

第二部分,功能是数据复制。许多老师已经介绍了TP(事务处理)和AP(分析处理)的概念,TP专注于事务处理,而AP则专注于分析处理。举例来说,将数据从MySQL同步到ClickHouse,因为MySQL并不擅长数据分析,但通过ClickHouse,我们可以实现在线数据分析的能力,从而充分发挥数据的价值。

在数据同步过程中,我们可以支持同构和异构两种能力,即同构数据同步和异构数据同步。在同步数据的过程中,我们可以监控同步链路性能以及处理异常信息,具备观测和干预的能力。

第三部分,数据对比。在数据同步过程中,常常会面临数据质量问题,尤其是在TP到AP的数据流转过程中。为了确保数据同步后的一致性,我们需要具备数据对比的能力,以确保数据质量,保证数据的准确性。

最后,大部分企业都会使用多云以及多数据源的架构,这种架构已经逐步成为趋势。为了让数据发挥最大的价值,通过数据同步,让数据在不同的云和不同的数据库类型之间进行流动,利用它们各自的优势来让数据产生更大的价值。

最后,在数据备份方面的解决方案尽管数据备份是公司的核心资产之一,如何有效保护这些数据是至关重要的。传统的数据备份方案,对备份集的有效性和RPO/RTO很难保障,以及备份成本高。通过我们的 NineData 备份,轻松的就能实现了跨云备份、异地备份,并且提供备份集的实时查询能力,让冷数据变热,无需再将备份恢复以验证其有效性,彻底解决了传统备份的问题。

通过 NineData 智能数据管理平台,我们可以跨不同的云、IDC和数据库进行数据传输同步:将数据传输到搜索平台、消息队列,甚至是数据仓库,然后借助 DevOps 中的 SQL IDE、权限管理和规范流程,开发协调等,为不同的角色提供服务,包括数据库开发、BI 开发、DBA 和业务运营。

2. NineData数据管理平台

2.1 NineData DevOps

NineData DevOps 作为高效安全的数据库管理平台,它分为两个版本:个人版和企业版。

NineData DevOps个人版(永久免费),具备与传统工具如 DBeaver 或 Navicat 相媲美的功能,例如 SQL 智能补全、数据查询、导入导出功能,以及可视化的表结构设计。此外,我们还添加了 AI 功能,包括自然语言转换和不同结构类型的转换。

NineData DevOps企业版,在个人版的基础功能外,还包含了组织权限管理、流程规范和不同环境下的变更发布和敏感数据管理功能。

举例来说,由于DBA和研发人员的比例,以及对数据库的熟悉程度不同,导致在数据管理上面会面临多个痛点:安全管控、开发效率低以及数据库的稳定性。但通过我们的全量管理、流程规范,开发协同,可以智能、高效地解决问题。

在变更发布方面,NineData 实现了 OnlineDDL 和 OnlineDML,无需担心操作会锁表导致线上数据库HANG的问题。此外,我们还实现了数据变更的回滚功能,可以快速对误操作SQL进行回滚,并且我们也提供了基于AI能力的索引的推荐功能。

最后,在敏感数据管理方面NineData 提供了自动发现、扫描和配置的脱敏策略规则和脱敏策略。不仅可以针对敏感列和自定义列进行脱敏,还也可以针对不同的开发人员进行脱敏设置,保证生产数据的安全。

图片

2.2 NineData DevOps x ClickHouse

2.2.1 对象展示和SQL补全

通过对比市面上的ClickHouse客户端,NineData在图形用户界面(GUI)的直观性和功能完整性上占据领先地位,尤其是在处理ClickHouse特有的对象。并且在针对ClickHouse的SQL智能补全方面,我们的产品实现了平等且强大的支持。

右下角的部分显示了NineData对SQL补全功能的智能优化,无论是在ClickHouse还是其他支持的数据库上,都能提供高效辅助,显著提升了开发者的效率。

图片

2.2.2 表创建和编辑

在NineData的GUI界面中,第二部分专注于可视化编辑:如表的创建和修改。当用户右键点击新建表时,我们提供了高度定制化体验。列名自定义是基础,更重要的是,我们支持用户从预设的下拉菜单中选择最新的数据库列类型,直至24.3版本的所有兼容类型,无需自行输入,简化了操作流程。

对于索引设置,同样具备最新版本的索引特性支持,使得表设计更为灵活。并且在进行可视化表设计时,可以实时生成的SQL脚本,便于在不同环节使用。

此外,我们还提供了其他丰富的选项,包括存储引擎选择(如MergeTree或其他),以及集群集成。用户可以根据需求选择本地表或分布式表,这充分契合ClickHouse的现代数据处理需求,展示了我们GUI的高级功能。

图片

2.2.3 灵活高效的业务审批流程与规范

在开发人员广泛使用的工具中,SQL质量控制至关重要。鉴于开发人员的知识水平差异可能导致编写出不规范或性能不佳的SQL,实施严格的规范审核显得尤为重要。目前,NineData 已建立了一套包含约100多项标准的规则库,涵盖结构设计、引擎选择、组件构建等多个层面。一旦SQL检测到违规,系统会采取相应措施,如阻断或提供改进建议。

通过遵循我们的规范,开发人员在获得反馈并接受建议后,将发起进一步流程,包括提交给上级主管审批。审批通过后,SQL将按照建议进行调整,并在各个阶段执行。这样,我们的系统确保上线的SQL始终保持高质量,避免不符合规范的问题出现,从而提升整体代码质量和数据库的稳定性。

图片

在NineData的流程管理系统中,上述的SQL提交后,作为工单被发起。支持多级审批,审批者可以根据需求灵活创建多个审批节点,或选择自动执行或定时任务。特别地,为适应DBA的日常需求,我们设计了定时处理功能,避免在非工作时间执行DDL操作,确保合规性与效率。

对于不确定的问题,如SQL执行错误或失败,NineData提供了回滚SQL功能和异常自动捕获,并允许用户自定义错误处理策略,如错误报告或定制解决方案,整合于审核模板中。一旦执行成功,工作流程将清晰展示,显示完整的执行状态。

图片

2.2.4 NineData 数据同步

数据作为企业的核心资产,其价值的实现依赖于有效的流动。NineData提供的数据同步,让数据在不同的云和不同的数据库类型之间进行流动,利用它们各自的优势来让数据产生更大的价值。

首先,我们的数据同步技术具备结构映射能力,针对异构数据源之间的差异,如从MySQL迁移到ClickHouse,它能智能地构建适应新环境的数据库结构。完成结构同步后,我们支持全量数据迁移,紧接着是基于日志变化数据捕获(CDC)的增量同步,确保数据实时且准确地同步。

然而,数据同步过程中的数据质量控制也至关重要。为此,NineData内置了数据对比功能,实时监控数据同步,自动检测并纠正任何潜在的不一致性,以保护数据的一致性,防止数据错误的发生。

图片

2.2.5 NineData 数据同步能力和优势

NineData 的数据同步解决方案已经实现了显著的进步,支持超过20种不同类型的数据库源,包括同构和异构环境下的单向和双向数据复制。在理想条件下,即数据库性能未受瓶颈(如带宽或I/O)限制时,我们能够实现每秒高达10万+的行处理速率(RPS)。通过精准的数据对比,我们确保数据的一致性,并提供灵活的控制,如限流和暂停功能,以适应不同场景的需求。即使在高峰期过后,也能暂停任务,待启动后支持断点续传,保证同步链路的稳定性。

对于双活或多活场景,NineData 数据同步逐步开始支持双向同步,并且也支持同步到Kafka,直接消费来写入到目标实例。

图片

2.2.6 NineData 数据同步能力

第一次接触ClickHouse是在2017年,在Percona的一篇博客文章中了解到它的强大。直到2020年才真正开始使用,但在使用过程中遇到了一些问题,比如无主键表无法同步的情况、增量同步异常后的处理,目前市面上的同步工具也未能很好地解决这个问题。

在NineData集成ClickHouse方面,不仅解决了上面说的问题,还在数据类型支持方面比ClickHouse官方的同步引擎(materialsMySQL)更加全面,特别是在空间类型和地理位置类型方面。除了类型外,对增量的DDL和DML的支持、断点续传、限流、对比以及ETL方面都支持的更加全面。

图片

在 NineData 的数据同步框架中,分为四个关键模块,首先是结构复制。具体来说,结构复制(同异构)完成后,如图所示,可以清晰地查看生成的DDL(数据定义语言),例如MySQL创建表的SQL语句如何转换为ClickHouse的相应操作。

图片

全量同步部分,界面与结构同步保持一致,除了任务状态和实时进度显示,还具备流量控制功能。当业务高峰期面临压力时,能够实时实施限流操作,保证数据库的稳定。在性能上,远超竞品,提供强劲的全量复制性能。

图片

接下来是增量同步,支持DML(数据操纵语言)操作,包括数据插入、删除和列名/长度变更。在性能方面,通过攒批、逻辑合并等技术,也提供了强劲的增量复制性能。

图片

当增量数据传输无延迟时,NineData 进行数据一致性检查(数据对比)。根据不同的需求通过不同的对比策略,确保复制数据的一致。一旦发现数据不一致,系统会标识差异,并生成用于修复的SQL变更指令。执行这些修复操作后,目标端数据将与源端一致。

图片

最后,在数据复制流程中,虽然任务看似复杂,包括全量、增量和结构对比等环节,但其实配置过程极其便捷。只需在界面左侧录入数据源,创建一个复制任务,设置完成后,自动的完成全量、增量数据同步和数据对比。在 NineData 数据复制整个配置过程简洁高效,一分钟即可完成。

图片

3. ClickHouse全球合作伙伴

去年底,NineData公司还与ClickHouse合作,加强了ClickHouse在我们生态系统中的建设。我们期待与ClickHouse携手,共创一个更为成熟、充满活力的生态系统,为所有用户提供卓越的体验。感谢大家一直以来的支持,让我们共同见证这一转变并期待未来的更多可能。

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/18552.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea中快速找到当前git地址

idea中快速找到当前git地址 然后双击就可以看到地址了

Linux漏洞SSL/TLS协议信息泄露漏洞(CVE-2016-2183) - 非常危险(7.5分) 解决办法!升级openssl

漏洞情况 详细描述 TLS是安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性。 TLS, SSH, IPSec协商及其他产品中使用的IDEA、DES及Triple DES密码或者3DES及 Triple 3DES存在大约四十亿块的生日界,这可使远程攻击者通过Sweet32攻击&…

2023-2024中国区块链年度发展报告

来源:赛迪 近期历史回顾:2024社交媒体全球使用趋势报告.pdf 国际建造成本指数报告2024--产能角逐.pdf 2024可持续包装管理体系与最佳实践案例集.pdf 2024年专利诉讼报告.pdf 2024Q1保险业运行报告.pdf 2024年云指数报告.pdf 2024内容营销10大趋势-内容时…

pytorch-池化层

目录 1. pooling池化层1.1 down sample2.2 Max pooling1.3 Avg pooling1.3 pooling pytorch实现 2. up sample上采样2.1 up sample2.2 pytorch实现 3. ReLU 1. pooling池化层 1.1 down sample 见下图,隔行隔列采样 2.2 Max pooling 下图采用2x2的filter&#x…

拉格朗日插值法的推导

1、插值的基本定义   设函数 y f ( x ) yf(x) yf(x)在区间 [ a , b ] [a,b] [a,b]上有定义&#xff0c;且已知它在 n 1 n1 n1个互异点 a ≤ x 0 < x 1 < . . . < x n ≤ b a\leq x_0<x_1<...<x_n\leq b a≤x0​<x1​<...<xn​≤b上的函数值 y 0 …

【Unity脚本】Unity中如何按类型查找游戏对象(GameObject)

【知识链】Unity -> 脚本系统 -> 访问游戏对象 -> 按类型访问游戏对象摘要&#xff1a;本文介绍了Unity中按类型查找游戏对象&#xff08;GameObject&#xff09;的五种方法&#xff0c;并提出了使用这些方法的最佳实践。 本文目录 一、访问游戏对象的方法二、如何按…

【个人博客搭建】(20)获取操作用户信息(IHttpContextAccessor)

IHttpContextAccessor在ASP.NET Core中扮演着至关重要的角色。它为开发者提供了一种方便的方式来访问和操作HttpContext对象&#xff0c;从而允许在整个应用程序中轻松地管理和使用HTTP请求和响应的相关信息。下面将深入探讨IHttpContextAccessor的作用、使用方法以及如何通过它…

[ue5]建模场景学习笔记(1)——混合材质

卷首&#xff1a;这部分会记录建模场景等相关学习内容&#xff0c;与ue引擎学习笔记不同的是&#xff0c;可能会略过一些基础内容&#xff0c;因为部分知识在blender中已经学习过了&#xff0c;不再继续记录。 1.需求分析&#xff1a; 想构建一个山地的场景&#xff0c;在ue5中…

解读vue3源码-1

提示&#xff1a;看到我 请让滚去学习 vue3渲染流程 文章目录 vue3渲染流程vue3的3个核心&#xff1a;1.响应式模块(Reactivity Module)--创建响应式数据2.编译模块(Compiler Module)--模版编译器将html转换为一个渲染函数3.渲染模块(Renderer Module) 渲染流程&#xff1a;1.首…

python办公自动化——(二)替换PPT文档中图形数据-柱图

效果: 数据替换前 &#xff1a; 替换数据后&#xff1a; 实现代码 import collections.abc from pptx import Presentation from pptx.util import Cm,Pt import pyodbc import pandas as pd from pptx.chart.data impo…

广东海上丝绸之路文化促进会正式批复荐世界酒中国菜的指导单位

广东海上丝绸之路文化促进会正式批复成为“世界酒中国菜”系列活动指导单位 近日&#xff0c;广东海上丝绸之路文化促进会近日正式批复荐酒师国际认证&#xff08;广州&#xff09;有限公司&#xff0c;成为备受瞩目的“世界酒中国菜”系列活动的指导单位。此举旨在通过双方的…

IDEA中各种Maven相关问题(文件飘红、下载依赖和启动报错)

错误情况 包名、类名显示红色、红色波浪线&#xff0c;大量依赖提示不存在&#xff08;程序包xxx不存在&#xff09; 工程无法启动 一、前提条件 1、使用英文原版IDEA 汉化版的可能有各种奇怪的问题。建议用IDEA英文版&#xff0c;卸载重装。 2、下载maven&#xff0c;配置环…

2024HW|常见红队使用工具

目录 什么是HW&#xff1f; 什么是网络安全红蓝对抗&#xff1f; 红队 常见工具 信息收集工具 Nmap 简介 漏洞扫描工具 Nessus简介 AWVS 简介 抓包工具 Wireshark简介 TangGo 简介 web 应用安全工具 Burpsuite 简介 SQLMap webshell 管理工具 蚁剑 冰蝎 后…

《PNAS》和《Nature Communications》仿章鱼和蜗牛的粘液真空吸附,赋予了机器人吸盘新的“超能力”

想象一下&#xff0c;如果机器人能够像章鱼一样牢牢吸附在粗糙崎岖的岩石上&#xff0c;或者像蜗牛那样在墙面上悠然负重爬行&#xff0c;那会是多么神奇的一幕&#xff01;近日&#xff0c;布里斯托大学机器人实验室的Jonathan Rossiter教授课题组就为我们带来了这样的“超能力…

Fastjson 反序列化漏洞[1.2.24-rce]

漏洞复现环境搭建请参考 http://t.csdnimg.cn/vSaaw kali切换jdk版本请参考 Kali安装JAVA8和切换JDK版本的详细过程_kali安装jdk8-CSDN博客 漏洞原理 Fastjson提供的com.sun.rowset.JdbcRowSetImpl类下的dataSourceName方法支持传入一个RMI/LDAP源&#xff0c;支持远程调用。…

绘唐2AI工具在哪里下载

绘唐2AI工具在哪里下载 激活授权方式&#xff1a;https://qvfbz6lhqnd.feishu.cn/wiki/CcaewIWnSiAFgokOwLycwi0Encf 绘唐2AI工具是一款由中国国家语言资源监测与研究中心开发的人工智能绘画工具。该工具利用深度学习算法和人工智能技术&#xff0c;能够自动将输入的文字描述转…

【MySQL数据库】:MySQL内置函数

目录 日期函数 current_date 函数 current_time 函数 current_timestamp 函数 now 函数 date 函数 date_add 函数 date_sub 函数 datediff 函数 字符串函数 charset 函数 concat 函数 instr 函数 ucase 函数 lcase 函数 left 函数 length 函数 replace…

探索自动发邮件的奥秘:从配置到实现

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、引言&#xff1a;邮件自动化的魅力 二、配置环境&#xff1a;选择适合的SMTP服务器 示…

Spring Boot集成freemaker快速入门demo

1.什么是freemaker&#xff1f; FreeMarker 是一款模板引擎&#xff1a;即一种基于模板和要改变的数据&#xff0c;并用来生成输出文本(HTML网页&#xff0c;电子邮件&#xff0c;配置文件&#xff0c;源代码等)的通用工具。 它不是面向最终用户的&#xff0c;而是一个Java类库…

Adobe AntiCC 简化版 安装教程

Adobe AntiCC 简化版 安装教程 原文地址&#xff1a;https://blog.csdn.net/weixin_48311847/article/details/139277743