EMR StarRocks实战——Mysql数据实时同步到SR

   文章摘抄阿里云EMR上的StarRocks实践:《基于实时计算Flink使用CTAS&CDAS功能同步MySQL数据至StarRocks》

前言

     CTAS可以实现单表的结构和数据同步,CDAS可以实现整库同步或者同一库中的多表结构和数据同步。下文主要介绍如何使用Flink平台和E-MapReduce StarRocks,通过CTAS&CDAS功能实现实时数仓中TP(Transaction Processing)和AP(Analytical Processing)数据同步的场景。

一、背景信息

  通过CTAS(CREATE TABLE AS)语句可以在StarRocks中自动创建和Mysql中表结构一致的表,并进行数据同步,还能实时同步上游(Schema)的变更到下游表,提高在目标存储中创建表和维护源表结构变更的效率。

 当执行CTAS语句时,Flink会按照以下流程执行:

(1)检查目标存储中是否存在该目标表。

  • 如果不存在,则通过目标端Catalog在目标存储中创建相应的目标表,该目标表具有和数据源相同的Schema
  • 如果不存在,则跳过建表。如果已存在的目标表和源表Schema不一致,则会报错提示。

(2)提交和启动相应的数据同步作业。同步数据源的数据以及Schema的变更到目标表中。

      表结构变更同步策略通过CTAS语句,在实时同步数据的同时,还能同步源表Schema的变更到目标表中。

    Schema变更包括初始表的创建以及未来表的变更。

 1.当前支持同步的Schema变更:

  • 添加可空列:自动在目标表Schema末尾添加对应的列,并自动同步新增列的数据
  • 删除可空列:不会直接在目标表中删除该列,而是将该列的数据自动填充为null值
  • 重命名列:被看做添加列和删除列。直接在目标表中末尾添加重命名后的列,并将重命名前的列数据自动填充为NULL值。例如,如果col_a重命名为col_b,则会在目标表末尾添加col_b,并自动将col_a的数据填充为NULL值。

 2.暂不支持同步的Schema变更:

  • 数据类型的变更:例如由VARCHAR变为BIGINT,由NOT NULL变为NULLABLE属性。
  • 主键或索引等约束的变更
  • 非空列的增加或删除的变更
  • DDL中字段长度的调整

3.注意事项:

  • 如果遇到不支持的Schema变更,则需要您手动删除下游目标表,重新启动CTAS作业,即重新创建目标表并重新同步历史数据。

  • CTAS不会识别具体的DDL类型,而是对比前后两条数据的Schema差异。因此,如果您先删除了某列后,又加回了该列,且这两个DDL之间无数据变化,则CTAS会认为没有发生结构变更。同理,如果您添加了一列,直到该表有数据变化,CTAS才会感知到结构变更,才会同步结构变更到目标表。

  • 通过CTAS建表支持的字段类型信息,见文章:数据类型概述 | StarRocks

二、同步测试

  Mysql数据实时同步到StarRocks(SR)的操作流程,参见文章地址:
基于Flink平台同步MySQL数据至StarRocks_开源大数据平台 E-MapReduce(EMR)-阿里云帮助中心CTAS可以实现单表的结构和数据同步,CDAS可以实现整库同步或者同一库中的多表结构和数据同步。本文为您介绍如何使用实时计算Flink平台和E-MapReduce StarRocks通过CTAS&CDAS功能实现实时数仓中TP(Transaction Processing)和AP(Analytical Processing)数据同步的场景。icon-default.png?t=N7T8https://help.aliyun.com/zh/emr/emr-on-ecs/user-guide/use-the-ctas-and-cdas-statements-of-realtime-compute-for-apache-flink-to-synchronize-data-from-an-apsaradb-rds-for-mysql-instance-to-a-starrocks-cluster?spm=a2c4g.11186623.0.0.4aee4d38LFbGou

  参考文章:

基于Flink平台同步MySQL数据至StarRocks_开源大数据平台 E-MapReduce(EMR)-阿里云帮助中心

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

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

相关文章

【appium】App类型、页面元素|UiAutomator与appium|App元素定位

目录 一、App前端基础知识 1、App类型划分 2、App类型对比 3、App页面元素 App页面元素分为布局和控件两种 常见布局: 常见控件:定位软件:appium和sdk自带的uiautomatorviewer都可以定位 二、App元素定位 1、id定位 2、text定位 3…

Pytorch添加自定义算子之(5)-配置GPU形式的简单add自定义算子

参考:https://zhuanlan.zhihu.com/p/358778742 一、头文件 命名为:add2.h void launch_add2(float *c,const float *a,const float *b,int n);

docker desktop windows 下载

下载地址 xDocker: Accelerated Container Application Development 安装步骤:下一步,下一步即可

全面升级!Apache HugeGraph 1.2.0版本发布

图数据库以独特的数据管理和分析能力,在企业数智化转型的过程中正在成为数据治理的核心,根据IDC调研显示,95%的企业认为图数据库是重要的数据管理工具,超过65%的厂商认为在业务上图数据库优于其他选择,尤其是在金融风控…

Sentinel实战(待完善)

目录 服务雪崩 什么是服务雪崩 服务不可用原因 解决方案 技术选型对比 Sentinel 介绍 优点 核心概念 资源 规则 代码实战 API实现 SentinelResource注解埋点实现 服务雪崩 什么是服务雪崩 在服务调用链路中, 服务提供者不可用, 导致服务调用者不可用, 间接让上上游…

Day03:Web架构OSS存储负载均衡CDN加速反向代理WAF防护

目录 WAF CDN OSS 反向代理 负载均衡 思维导图 章节知识点: 应用架构:Web/APP/云应用/三方服务/负载均衡等 安全产品:CDN/WAF/IDS/IPS/蜜罐/防火墙/杀毒等 渗透命令:文件上传下载/端口服务/Shell反弹等 抓包技术&#xff1a…

面试数据库篇(mysql)- 10事务中的隔离性是如何保证

锁:排他锁(如一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁mvcc : 多版本并发控制MVCC 全称 Multi-Version Concurrency Control,多版本并发控制。指维护一个数据的多个版本,使得读写操作没有冲突 MVCC的具体实现,主要依赖于数据库记录中的隐式字段…

unity shaderGraph实例-物体线框显示

文章目录 本项目基于URP实现一,读取UV网格,由自定义shader实现效果优缺点效果展示模型准备整体结构各区域内容区域1区域2区域3区域4shader属性颜色属性材质属性后处理 实现二,直接使用纹理,使用默认shader实现优缺点贴图准备材质准…

C语言题目:求两个数二进制中不同位的个数

题目: 求两个数二进制中不同位的个数 样例 编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同? 输入例子: 1999 2299 输出例子:7 牛客网链接: 求两个数二进制中不同位的…

MySQL:常用的SQL语句

提醒:设定下面的语句是在数据库名为 db_book执行的。 一、创建表 1. 创建t_booktype表 USE db_book; CREATE TABLE t_booktype(id INT AUTO_INCREMENT, bookTypeName VARCHAR(20),bookTypeDesc varchar(200),PRIMARY KEY (id) );2. 创建t_book表 USE db_book; C…

Vue3之属性传值的四种情况

文章目录 Vue3之属性传值的四种情况一、引言二、父组件向子组件传值三、子组件向父组件传值四、祖先组件向后代组件传值五、兄弟组件之间传值 Vue3之属性传值的四种情况 一、引言 在vue3中,组件与组件之间是可以传递属性的,包括三种类型: …

YOLOv8改进,添加GSConv+Slim Neck,有效提升目标检测效果,代码改进(超详细)

目录 摘要 主要想法 GSConv GSConv代码实现 slim-neck slim-neck代码实现 yaml文件 完整代码分享 总结 摘要 目标检测是计算机视觉中重要的下游任务。对于车载边缘计算平台来说,巨大的模型很难达到实时检测的要求。而且,由大量深度可分离卷积层构…