乐趣区

关于数据库:CloudCanal-落地-StarRocks-数据迁移同步的实践与思考

作者:励强 , 现 ClouGence 公司联结创始人 & 技术负责人

大家好,我叫励强,是 ClouGence 公司联结创始人和技术负责人,明天我将和大家分享 CloudCanal 落地 StarRocks 数据迁徙同步的实际与思考。

本文内容次要分为以下三个局部:

  1. 什么是 CloudCanal:包含 CloudCanal 的 外围能力、利用场景、产品特点和用户群体;
  2. CloudCanal 落地 StarRocks 的数据迁徙同步过程: 包含 StarRocks 对端的应用、根底能力、写入优化,以及 StarRocks 和 CloudCanal 一起构建的数据体系在用户层面的利用。
  3. 将来瞻望
  1. CloudCanal 是什么

三年前,我和我的搭档们意识到中国的数据库行业的微小发展潜力,咱们始终认为,国内的数据库生态将迎来蓬勃的倒退,将这些数据库生态买通是十分有意义的。于是咱们一起创立了数据迁徙同步工具 CloudCanal。

在过来半年多的工夫里,ClouGence 和 StarRocks 团队一起单干,围绕 StarRocks 构建数据生态。在这个过程中,落地了很多用户场景,并且取得了相干的实践经验以及思考。

1.1 CloudCanal 外围能力

CloudCanal 的外围性能包含 数据迁徙和数据同步,并且具备构造迁徙、数据校验、数据勘误的能力。目前反对21 种支流数据源,并且在一直细化、晋升、减少数据迁徙同步链路。

基于以上能力,CloudCanal 在绝对较短的工夫之内,将源端的 MySQL、ORACLE、PostgreSQL、PolarDB-MySQL、Kafka、OceanBase 等数据,顺畅、稳固地迁徙同步到 StarRocks 中,给 StarRocks 的数据生态带来了十分大的变动。

1.2 CloudCanal 利用场景

CloudCanal 的利用场景蕴含以下四个方向:

场景一:IOT 畛域

场景特点:

  • 采集规范
  • 低成本存储
  • 轻量级传输
  • 非结构化数据

CloudCanal 的利用:

在 IOT 畛域,CloudCanal 次要帮忙业务从消息中间件中,将数据同步到时空时序数据库、大数据、数据湖等数据库中。

场景二:数据智能畛域

场景特点:

  • 大数据
  • 批量 / 流式
  • 任务调度
  • 元数据治理

CloudCanal 的利用:

在数据智能畛域,CloudCanal 可帮忙用户从音讯零碎及主数据库系统中,实时或 T+1 将数据迁徙到数据仓库、大数据、数据湖等数据库中,以供业务进行交互式剖析、BI 等动作。

场景三:业务经营

场景特点:

  • 数据实时性要求高
  • 数据准确性要求高
  • 高并发
  • 高稳定性

CloudCanal 在该方向投入了十分多的精力去保障这些场景特点,包含从主数据库中迁徙同步数据到缓存、消息中间件以及实时数仓,满足业务对数据的要求。

场景四:业务革新 / 容灾

场景特点:

  • 异构
  • 异地
  • 数据转换解决

在业务革新及容灾方向上,有很多典型的场景,如业务架构降级、换数据库、做异构的数据转换、灾备 / 多活数据库等。CloudCanal 在这些场景中,不仅能够帮用户做根底数据迁徙、同步的工作,也会帮用户做数据过滤、转换、生成、防循环等工作。

CloudCanal 跟 StarRocks 的单干次要是在数据智能、业务经营方向;在交互式剖析、BI 以及实时 / 离线报表畛域利用较多。

1.3 CloudCanal 产品特点

  1. 可视化 零代码 全自动

数据迁徙同步是一件非常复杂的事件,如果咱们用开源工具或脚本或本人去开发,对业务人员和开发人员都很辣手。而应用 CloudCanal,通过页面上的点击即可达成指标,实现开发、DBA、业务人员都能用。

  1. 可观测

因为咱们的产品波及到数据同步和业务稳定性,所以零碎的可观测是极其重要的。可观测性能够通过三个维度来解读。

  • 告警牢靠:当呈现问题的时候,咱们的告警是牢靠且及时的;
  • 调优有据:能够通过监控指标去做调优;
  • 危险可控:让 DBA、开发运维同学可能对数据迁徙同步工具有信念。
  1. 云原生

CloudCanal 对云原生的了解其实是对业务的将来状态的了解,咱们认为业务必定会有一部分在云上,而且要做云上云下以及混合云的一些场景,对于云资源的整合和应用应该是平滑的。咱们心愿用 API 级别的集成,达到如同云厂商方的产品的晦涩度,甚至更优。

1.4 CloudCanal 用户群体

在两年多的工夫里,CloudCanal 积攒了 500 多家用户,包含现实汽车、一汽大众、百草味等。同时,咱们构建了数千人的专属社群,且在一直壮大之中。

在和 StarRocks 近半年中,咱们积攒了 50+ 用户,200 条同步链路,且仍在不停增长。CloudCanal 跟 StarRocks 一起给用户带来的价值也在一直减少。

  1. CloudCanal 落地 StarRocks 数据迁徙同步

2.1 StarRocks 对端的应用过程

StarRocks 对端的应用过程相当晦涩,所有的链路——包含 MySQL 到 StarRocks;Oracle 到 StarRocks;PostgreSQL 到 StarRocks,均是如下步骤。

  1. 抉择数据库
  1. 抉择工作属性: 比方,是做迁徙还是同步,还是做解构的一些筹备。还要确定同步工作的规格以及形容等信息。
  1. 抉择表 / topic / collection:抉择迁徙的对象,抉择对迁徙对象动作的订阅。
  1. 抉择列 / Field:抉择列以及做一些数据处理,这个步骤能够上传本人代码,对数据做更加简单的变换、过滤等动作。
  1. 创立工作: 做完以上这五步,对数据迁徙同步的配置行将完结。
  1. 构造迁徙、全量迁徙、增量同步:这是一个全自动化的过程,该过程中可能蕴含以下几种情景。

    1. 如果对端建一些表,包含同构或者异构,CloudCanal 将会启动一个工作,去做构造迁徙的筹备;
    2. 如果须要在工作中做数据的初始化,CloudCanal 将启动一个迁徙过程,将数据筹备好;
    3. 最初当迁徙完后,CloudCanal 会启动增量工作,去追赶曾经落后的增量数据,直至达到一个稳态的水平。

2.2 StarRocks 对端根底能力:实时,且强统一

现用户 对于 数仓 有以下需要:

  1. 用户能够放弃局部的事务性,然而对 数据写入即可查 相当在意。
  2. 数仓须要 实时,且强统一。
  3. 解决当初少数数仓的痛点:在做增量写入之后,会多进去数据,须要期待零碎合并或手动合并。

StarRocks 解决方案— —写入即合并:

这个能力是通过主键模型的表构造实现的:CloudCanal 在接入 StarRocks 的时候,间接抉择了这个主键模型,再辅以自定义分桶、正本等 properties 设置,以及数据类型自适应(长度适配),让 StarRocks 的外围性能更加饱满,再搭配 CloudCanal 的根底性能,包含:类型映射、自定义代码数据处理、工作动静编辑、监控图表等等,让整条链路饱满起来,也让 StarRocks 可能十分顺滑地接入 CloudCanal 数据实时互通体系中。

2.3 StarRocks 对端写入优化

无论是全量的数据,还是通过各种日志解析、增量日志的查问,这些数据其实都会通过咱们的序列化器,放到分层的 cache 零碎中。对 StarRocks 而言,如何 尊重 其最佳写入形式,是所有数据迁徙同步工具的必须要做到的事件。

在实现对端的写入优化上,CloudCanal 以 精确、实时、稳固、可控 四个指标去落地。为了实现这四个指标,在用户的数据场景各异,每条数据长度不同,每个数据库起源的 IPS 或者流量也不同的状况下,咱们通过 4 个参数 使其可配置可优化。

  1. totalDataInMemMb: 这是咱们形容整个内存中数据容量的一个参数。当整个数据容量大于该值的时候,将刷出数据到 StarRocks 中。
  2. asyncFlushIntervalSec: 当满足这个参数的时候,也就是收回间隔时间的时候,咱们也会收回到 StarRocks 中。
  3. flushBatchMb: 有时,某些表是热点表,数据增长十分快。这个时候,咱们还会有另外一个参数去独自管制表的阈值——即 flushBatchMb。 当满足该值的时候,咱们将会把这张表的缓存数据刷出到 StarRocks 中。
  4. realFlushPauseSec: 在真正刷出的时候,因为 StarRocks 自身对于数据写入频次的一些要求,咱们又设置了另外一个参数去避免写入过快的产生 —— realFlushPauseSec,能够设成 0 秒钟,即不停顿,也能够设置一秒两秒等等。

通过一整套体系的构建,咱们的用户对于稳定性相当称心。对于呈现问题的链路,咱们也能够通过调整这些参数以及调整配套的体系去达到稳固的目标。

2.4 CloudCanal x StarRocks 客户胜利案例 - 百草味

StarRocks 和 CloudCanal 一起去构建的数据体系是如何利用于用户层面的呢?在这里举一个百草味的例子。

用户痛点:

  1. 传统 Hadoop 体系组件适度冗余,强耦合。
  2. 数据湖的概念至今没有成熟的产品。
  3. 保护量大老本高, 计算效率低下。

解决方案:

咱们通过 CloudCanal 实时以及定时的形式,将数据同步迁徙到 StarRocks 中,以 StarRocks Pk 模型为 ODS 层的主数据模型,往上辅以逻辑视图以及各种更新模型等表构造,达到 DWD 及 DWS 层的构建目标。最初通过数据及时凋谢给 APP 应用。

咱们大量的数据其实并没有达到须要用特地简单的架构去撑持的境地,然而明天咱们却能够通过 StarRocks 加 CloudCanal 去实现一套十分具备业务可能性的数据架构。

这套计划既有施行的可能性,对于百亿以下的数据也起到了十分好的示范作用。

  1. 将来瞻望

在过来半年多,CloudCanal 跟 StarRocks 有了很多实际,达成了很多单干,给用户也带来了诸多好处。我置信像 StarRocks 这样优良的产品将来会给用户带来更大的益处。咱们也心愿 CloudCanal 能和 StarRocks 一起单干,一起去打造一个新的数据生态。

退出移动版