MySQL + CloudCanal + Iceberg + StarRocks 构建全栈数据服务

article/2025/7/28 6:18:19

简述

在业务数据快速膨胀的今天,企业对 低成本存储实时查询分析能力 的需求愈发迫切。

本文将带你实战构建一条 MySQL 到 Iceberg 的数据链路,借助 CloudCanal 快速完成数据迁移与同步,并使用 StarRocks 完成数据查询等操作,构建涵盖 关系型数据库服务、实时数据分析、大数据存取 的全栈数据架构。

Iceberg 简介

Iceberg 是什么?

Iceberg 是一种开放的数据表格式,包含 Catalog数据存储 两种子概念。

Catalog 可简单理解为对数据的结构描述,如表列表、对应的表属性、包含的列、列类型、列长度等信息,这也是之所以为表格的原因。

数据存储 即以上 Catalog 数据 以及 实际业务数据 所组成的文件存放位置。

Iceberg 有什么特点?

Iceberg 架构开放,定义了 Catalog文件格式数据存储数据访问 等标准,从而被众多第三方组件实现和支持。

  • Catalog: AWS Glue、Hive、Nessie、Jdbc,或者专用的 Catalog 服务通过 Rest 方式读写。
  • 数据文件格式: Parquet、ORC、Avro 等。
  • 数据存储: AWS S3、Azure Blob Storage、MinIO、HDFS、Posix FS 等各类云存储或本地存储。
  • 数据访问: 可通过类似 StarRocks、Doris、ClickHouse 等实时数仓,Spark、Flink、Hive 等流/批计算引擎检索、分析、操作数据和结构。

除了 开放 这一大特点,Iceberg 同时在 超大数据量存储准实时增、删、改 之间实现了平衡。

下表从数据容量、增量实时性、事务支持、存储成本、架构开放度 5 个纬度,对各类数据库进行对比(仅作参考,欢迎讨论):

数据库种类关系型数据库实时数据仓库传统大数据数据湖
数据容量几 TB 级别百 TB 级别PB 级别PB 级别
增量实时性业务级别增量写入,延迟毫秒级别,万级别 QPS业务级别增量写入,延迟秒到分钟级别,千级别 QPS运维级别增量写入,延迟小时到天级别,个位数 QPS业务级别增量写入,延迟分钟级别,个位数 QPS(攒批)
事务支持ACID 强一致ACID 强一致或最终一致
存储成本高或很高很低
架构开放度中(存算分离)

从上表来看,使用 Iceberg,即可得到一个 低成本超大数据存储容量丰富数据检索分析工具的数据库,从某种意义上来说,可以作为传统大数据系统的换代升级产品。

当然得益于其架构的开放性,还可以不断探索更多的数据使用场景。

CloudCanal 技术亮点

典型 Catalog 和存储支持

CloudCanal 支持 Iceberg 3 种 Catalog 和 2 种存储方式,搭配关系为

  • AWS Glue + AWS S3
  • Nessie + MinIO / AWS S3
  • Rest + MinIO / AWS S3

对于全栈数据上云,AWS RDS + EC2 部署 CloudCanal + AWS Glue + AWS S3 即可构建。

对于全私有数据,自建关系型数据库 + 虚拟机部署 CloudCanal + Nessis/Rest Catalog + MinIO 则可快速达成。

数据迁移同步一体化

对于数据同步开始之前的繁重工作,CloudCanal 一直尝试利用自身的数据库知识,实现结构准备、历史数据迁移全自动化。

对于 Iceberg 这类非传统意义数据库交互的产品,CloudCanal 也实现了数据迁移同步的自动化流程,包括结构定义转换、类型映射、约束清理、类型长度适配等工作,都可在 CloudCanal 一站式完成。

全栈数据服务架构总览

本次构建的数据服务链路包含 4 大组件:

MySQL → CloudCanal → Iceberg (Glue + S3) → StarRocks
  • MySQL: 关系型数据库,源数据产生地。
  • CloudCanal: 数据迁移同步平台,支持结构转换、类型映射、全量+增量同步。
  • Iceberg (AWS Glue + S3): 数据湖存储 + 元数据管理。
  • StarRocks: 支持实时查询的分析型数据库,用于数据服务出口。

操作示例

前置准备

  1. 下载安装 CloudCanal 私有部署版本。
  2. 准备数据源:
  • 源端:自建 MySQL
  • 目标端:Iceberg (AWS Glue + S3)

添加数据源

  1. 登录 CloudCanal 平台,点击 数据源管理 > 添加数据源,添加 2 个数据源。
  2. 添加 Iceberg 所要填写的信息如下(<>内按实际情况替换)。
  • 网络地址:本例填写 AWS Glue 服务地址。
    glue.<aws_glue_region_code>.amazonaws.com
    
  • 版本:保持默认值即可。
  • 描述:用于辨别实例用途。
  • 额外参数
    • httpsEnabled:打开开关,即设置为 true。
    • catalogName:设置一个意义明确的名字,如 glue_<biz_name>_catalog。
    • catalogType:设置为 GLUE。
    • catalogWarehouse:元数据和数据文件最终存放位置,如 s3://<biz_name>_iceberg。
    • catalogProps:参考如下
      {"io-impl": "org.apache.iceberg.aws.s3.S3FileIO","s3.endpoint": "https://s3.<aws_s3_region_code>.amazonaws.com","s3.access-key-id": "<aws_s3_iam_user_access_key>","s3.secret-access-key": "<aws_s3_iam_user_secret_key>","s3.path-style-access": "true","client.region": "<aws_s3_region>","client.credentials-provider.glue.access-key-id": "<aws_glue_iam_user_access_key>","client.credentials-provider.glue.secret-access-key": "<aws_glue_iam_user_secret_key>","client.credentials-provider": "com.amazonaws.glue.catalog.credentials.GlueAwsCredentialsProvider"
      }
      

创建任务

  1. 点击 同步任务 > 创建任务

  2. 选择源和目标实例,并分别点击 测试连接。其中 Iceberg 数据源 结构迁移属性配置 推荐如下:

    {"format-version": "2","parquet.compression": "snappy","iceberg.write.format": "parquet","write.metadata.delete-after-commit.enabled": "true","write.metadata.previous-versions-max": "3","write.update.mode": "merge-on-read","write.delete.mode": "merge-on-read","write.merge.mode": "merge-on-read","write.distribution-mode": "hash","write.object-storage.enabled": "true","write.spark.accept-any-schema": "true"
    }
    
  3. 功能配置 页面,选择 增量同步,并勾选 全量初始化

  4. 表&action过滤 页面,选择需要迁移同步的表,可同时选择多张。

  5. 数据处理 页面,保持默认配置。

  6. 创建确认 页面,点击 创建任务,开始运行。
    请添加图片描述

验证数据(接入 StarRocks)

  1. 造增删改数据。
    请添加图片描述

  2. 停止造数据。

  3. 创建一个按量 Aliyun EMR for StarRocks,添加 AWS Glue 的 Iceberg Catalog 并查询。

  • StarRocks 中添加 External Catalog 并设置查询环境。

    CREATE EXTERNAL CATALOG glue_test
    PROPERTIES
    ("type" = "iceberg","iceberg.catalog.type" = "glue","aws.glue.use_instance_profile" = "false","aws.glue.access_key" = "<aws_glue_iam_user_access_key>","aws.glue.secret_key" = "<aws_glue_iam_user_secret_key>","aws.glue.region" = "ap-southeast-1","aws.s3.use_instance_profile" = "false","aws.s3.access_key" = "<aws_s3_iam_user_access_key>","aws.s3.secret_key" = "<aws_s3_iam_user_secret_key>","aws.s3.region" = "ap-southeast-1"
    )set CATALOG glue_test;set global new_planner_optimize_timeout=30000;
    
  • MySQL 数据量
    请添加图片描述

  • Iceberg 数据量
    请添加图片描述

总结

通过 CloudCanal,你可以轻松打通 MySQL 与 Iceberg 之间的实时同步通道,并结合 StarRocks 实现高效查询,实现实时数据服务闭环,打造真正的全栈数据结构解决方案。


http://www.hkcw.cn/article/nexWKoOPgD.shtml

相关文章

实验设计与分析(第6版,Montgomery)第5章析因设计引导5.7节思考题5.13 R语言解题

本文是实验设计与分析&#xff08;第6版&#xff0c;Montgomery著&#xff0c;傅珏生译) 第5章析因设计引导5.7节思考题5.13 R语言解题。主要涉及方差分析&#xff0c;正态假设检验&#xff0c;残差分析&#xff0c;交互作用图。 dataframe<-data.frame( yc(36,18,30,39,20…

Excel 中的SUMIFS用法(基础版),重复项求和

1. 首先复制筛选条件所在的列&#xff0c;去除重复项目 数据 》重复项 》删除重复项 2. 输入函数公式 SUMIFS(C:C,A:A,E2) 3. 选中单元格&#xff0c;通过 ShiftF3 查看函数参数 第一个参数&#xff1a;求和区域&#xff0c;要累加的值所在的区域范围 第二个参数&#xff1a…

HCIP:MPLS静态LSP的配置及抓包

目录 一、MPLS的简单的一些知识点 1.MPLS的概述&#xff1a; 2.MPLS工作原理&#xff1a; 3.MPLS的核心组件&#xff1a; 4. MPLS标签 5.MPLS标签的处理 6.MPLS转发的概述&#xff1a; 7.MPLS的静态LSP建立方式 二、MPLS的静态LSP的实验配置 1.配置接口的地址和配置OS…

世冠科技亮相中汽中心科技周MBDE会议,共探汽车研发数字化转型新路径

近日&#xff0c;中汽中心2025年科技周MBDE前沿应用主题会议在天津成功举办。本次会议以“智汇津门共探MBDE前沿应用新征程”为主题&#xff0c;聚焦基于模型的数字工程&#xff08;MBDE&#xff09;方法论在汽车复杂系统研发中的创新实践与跨领域协同&#xff0c;旨在推动行业…

Linux之Nginx配置篇

一、Ngixn核心重点 Nginx是一款功能强大HTTP和反向代理服务器&#xff0c;目前大部分公司用于使用其Web服务器 在Nginx还未出世之前都是在使用比较传统Apache服务器&#xff0c;两则都能处理Web请求,但是后者处理效率更高、包括其负载均衡&#xff0c;反向代理功能都很强&#…

RAG混合检索:倒数秩融合RRF算法

文章目录 检索增强生成 (RAG)倒数秩融合在 RAG 中的工作原理RRF 背后的数学直觉检索增强生成 (RAG) RAG 是自然语言处理中的一种强大技术,结合了基于检索的模型和生成模型的优势。 如果检索器未能从检索器中获取相关文档,则精度较低,幻觉的可能性会增加。 有些查询适合…

2023年09月GESPC++二级真题解析(含视频)

视频讲解&#xff1a;GESP2023年9月二级C真题讲解 一、单选题 第1题 解析&#xff1a; 答案D&#xff0c;第一台用的就是电子管 第2题 解析&#xff1a; 答案B&#xff0c;x>y不符合条件&#xff0c;执行ay,bx&#xff0c;输出a、b&#xff0c;即输出y、x&#xff0c;也…

STUSB4500 PPS(PD3.0)快充SINK模块——应用 解析

0 前言 朋友参加车展&#xff0c;收获一枚很漂亮的倍思65W氮化镓快充头&#xff0c;送给我了。 我看了手中只支持33W快充的三星陷入了沉思… 快充头支持PPS协议&#xff0c;我心思这玩意适合做可调电源啊&#xff01; 上网随便一查没查到&#xff0c;都是转换成5V、9V、12V等…

4644芯片在商业航天与特种工业中的低温环境适应性研究

摘要 在现代电子技术的广泛应用中&#xff0c;商业航天和特种工业领域对于电子元件的环境适应性提出了极为苛刻的要求。本文以国科安芯研发的 ASP4644S 芯片为例&#xff0c;深入探讨其在-55℃极端低温条件下的运行性能、技术难点以及在商业航天与特种工业领域的应用。通过对芯…

Windows 权限提升 | TryHackMe | Windows Privilege Escalation

Windows 权限提升 [!quote] 权限提升就是利用用户A的主机访问权限,利用目标系统中的漏洞来获取到用户B的访问权限 Windows 服务或计划任务的配置错误账户被赋予过多权限缺少Windows安全补丁 Windows 用户 Windows系统主要存在两种类型的用户,根据访问级别,分为两类 Administ…

Redis持久化机制

一. Redis应用概述 Redis是一种高性能的KV键值对存储数据库&#xff0c;通常用作数据库、缓存和消息队列等。它支持多种数据结构&#xff0c;如字符串、哈希表、列表、集合和有序集合。Redis具有快速存取和实时响应的特点&#xff0c;广泛应用于Web开发、大数据处理和实时分析…

VMware使用时出现的问题,此文章会不断更新分享使用过程中会出现的问题

VMware使用时出现的问题&#xff0c;此文章会不断更新分享使用过程中会出现的问题 一、VMware安装后没有虚拟网卡&#xff0c;VMnet1&#xff0c;VMnet8显示黄色三角警告 此文章会不断更新&#xff0c;分享VMware使用过程中出现的问题 如果没找到你的问题可以私信我 一、VMware…

60天python训练计划----day40

DAY 40 训练和测试的规范写法 知识点回顾&#xff1a; 彩色和灰度图片测试和训练的规范写法&#xff1a;封装在函数中展平操作&#xff1a;除第一个维度batchsize外全部展平dropout操作&#xff1a;训练阶段随机丢弃神经元&#xff0c;测试阶段eval模式关闭dropout 一.单通道图…

leetcode:479. 最大回文数乘积(python3解法,数学相关算法题)

难度&#xff1a;简单 给定一个整数 n &#xff0c;返回 可表示为两个 n 位整数乘积的 最大回文整数 。因为答案可能非常大&#xff0c;所以返回它对 1337 取余 。 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;987 解释&#xff1a;99 x 91 9009, 9009 % 1337 …

vue2 + webpack 老项目升级 node v22 + vite + vue2 实战全记录

前言 随着这些年前端技术的飞速发展&#xff0c;几年前的一些老项目在最新的环境下很可能会出现烂掉的情况。如果项目不需要升级&#xff0c;只需要把编译后的文件放在那里跑而不用管的话还好。但是&#xff0c;某一天产品跑过来给你讲要升级某一个功能&#xff0c;你不得不去…

Golang | 运用分布式搜索引擎实现视频搜索业务

把前面所设计好的搜索引擎引用进来开发一个简单的具体的视频搜索业务。代码结构&#xff1a; handler目录&#xff1a;后端接口&#xff0c;负责接收请求并返回结果&#xff0c;不存在具体的搜索逻辑。video_search目录&#xff1a;具体的搜索逻辑存放在这&#xff0c;包括reca…

硬件学习笔记--64 MCU的ARM核架构发展及特点

MCU&#xff08;微控制器&#xff09;的ARM核架构是当前嵌入式系统的主流选择&#xff0c;其基于ARM Cortex-M系列处理器内核&#xff0c;具有高性能、低功耗、丰富外设支持等特点。以下是ARM核MCU的主要架构及其发展&#xff1a; 1. ARM Cortex-M系列内核概览 ARM Cortex-M系…

【笔记】Windows 系统安装 Scoop 包管理工具

#工作记录 一、问题背景 在进行开源项目 Suna 部署过程中&#xff0c;执行设置向导时遭遇报错&#xff1a;❌ Supabase CLI is not installed. 根据资料检索&#xff0c;需通过 Windows 包管理工具Scoop安装 Supabase CLI。 初始尝试以管理员身份运行 PowerShell 安装 Scoop…

网络安全-等级保护(等保) 3-2-2 GB/T 28449-2019 第7章 现场测评活动/第8章 报告编制活动

################################################################################ GB/T 28449-2019《信息安全技术 网络安全等级保护测评过程指南》是规定了等级测评过程&#xff0c;是纵向的流程&#xff0c;包括&#xff1a;四个基本测评活动:测评准备活动、方案编制活…

软件测评中心如何确保软件品质?需求分析与测试计划很关键

软件测评中心承担着对软件进行评估、测试和审查的任务&#xff0c;它有一套规范的流程来确保软件的品质&#xff0c;并且能够向客户和开发者提供详实的软件状况分析报告。 需求分析环节 这一环节至关重要&#xff0c;必须与客户和开发团队保持密切交流。我们需要从他们那里精…