当前位置: 首页 > news >正文

十大排行装修公司石家庄seo结算

十大排行装修公司,石家庄seo结算,网站开发 价格,廊坊网站建设费用考大家一个问题,如果想要把数据库的数据同步到别的地方,比如es,mongodb,大家会采用哪些方案呢? ::: 定时扫描同步? 实时日志同步? 定时同步是一个很好的方案,比较简单,但是如果对实时要求比较高的话,定…

考大家一个问题,如果想要把数据库的数据同步到别的地方,比如es,mongodb,大家会采用哪些方案呢? :::

  1. 定时扫描同步?

  2. 实时日志同步?

定时同步是一个很好的方案,比较简单,但是如果对实时要求比较高的话,定时同步就有点不合适了。今天给大家介绍一种实时同步方案,就是是使用flinkcdc 来读取数据库日志,并且写入到elasticsearch中。

1.什么是flinkcdc?

Flink CDC(Change Data Capture)是指通过 Apache Flink 实现的一种数据变化捕获技术。CDC 可以实时捕获数据库中的数据变化,如插入、更新、删除操作,并将这些变化数据流式地传输到其他系统或存储中。通过 Flink CDC,用户可以实时监控数据库中的数据变化,并将这些变化数据用于实时分析、ETL(Extract, Transform, Load)等应用场景。Flink CDC 通常用于构建实时数据管道,帮助用户实现实时数据同步和分析。

2.flinkcdc发展趋势?

目前在github 上大概有5k 的star,也有越来越多的人使用。

3.flinkcdc有什么优势?

说到实时同步,canal 是比较常用的方案

canal,译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。 这句介绍有几个关键字:增量日志,增量数据订阅和消费。

canal的把自己伪装成MySQL slave,模拟MySQL slave的交互协议向MySQL Mater发送 dump协议,MySQL mater收到canal发送过来的dump请求,开始推送binary log给canal,然后canal解析binary log,再发送到存储目的地,比如MySQL,Kafka,Elastic Search等等。

那么 flinkcdc 和canal 对比,有什么不同呢?

这是网上的一个对比。可以看到 flinkcdc 和canal 一样,也是通过读取数据库日志的方式做到实时同步的,这个和很多实时同步的工具原理相同,比如 ogg debezium 都是这样做的,flinkcdc 的优势是基于flink 这个强大的实时计算引擎,可以做到集群部署,高可用等等,并且社区活跃,支持的平台多,像 mysql oracle mongodb 主流数据库都是支持的。而canal只支持mysql。

还有一个优势,flinkcdc 是基于java实现的,背靠大数据这个大平台,解决方案也是比较多的。源码阅读修改起来也是比较方便的。

4.一个例子

光说不练假把式,简单的写一个把mysql 数据实时同步到es的例子,使用flinksql的方式,只需要简单的几行sql

依赖
flink-1.15.0
flink-sql-connector-elasticsearch7-1.15.0.jar
flink-sql-connector-mysql-cdc-2.2.1.jar
mysql 5.7
es 7.9.3

安装好flink 之后,把 flink-sql-connector-elasticsearch7-1.15.0.jar flink-sql-connector-mysql-cdc-2.2.1.jar 上传到 flink lib 目录 启动flink

./start-cluster.sh

打开flink sql 窗口

./start-cluster.sh

创建和mysql 关联的表

CREATE TABLE products (id INT,name STRING,description STRING,PRIMARY KEY (id) NOT ENFORCED) WITH ('connector' = 'mysql-cdc','hostname' = 'localhost','port' = '3306','username' = 'root','password' = '123456','database-name' = 'mydb','table-name' = 'products');
CREATE TABLE orders (order_id INT,order_date TIMESTAMP(0),customer_name STRING,price DECIMAL(10, 5),product_id INT,order_status BOOLEAN,PRIMARY KEY (order_id) NOT ENFORCED) WITH ('connector' = 'mysql-cdc','hostname' = 'localhost','port' = '3306','username' = 'root','password' = '123456','database-name' = 'mydb','table-name' = 'orders');

创建和es 同步的表

CREATE TABLE enriched_orders (order_id INT,order_date TIMESTAMP(0),customer_name STRING,price DECIMAL(10, 5),product_id INT,order_status BOOLEAN,product_name STRING,product_description STRING,PRIMARY KEY (order_id) NOT ENFORCED) WITH ('connector' = 'elasticsearch-7','hosts' = 'http://192.168.91.134:9200','index' = 'enriched_orders');

创建读取mysql写入es任务

INSERT INTO enriched_ordersSELECT o.*, p.name, p.descriptionFROM orders AS oLEFT JOIN products AS p ON o.product_id = p.id;

执行这个任务后,mysql 的数据就能实时同步至es了

当然数据源也是支持很多种,比如 oracle mongodb sqlserver 写入端也支持 es kafka hive 等等,看大家需要。想我们的业务场景,是先将mysql 数据同步到kafka,然后再消费kafka 消息,把数据写入到es, hive,starrocks 等等。并且使用了checkpoint 做为断点恢复的保障。

5.最后

附上一些涉及的到网址,方便大家查阅

flinkcdc 官网 

flinkcdc github

flink 官网

flink 文档

http://www.wooajung.com/news/22279.html

相关文章:

  • 织梦首饰网站模板抖音seo排名软件哪个好
  • html用表格来做网站布局公司官网制作多少钱
  • 中国建筑人才网官方网seo排名专业公司
  • 网站建设哪个公司好知乎网络营销需要学什么
  • 网站开发的高级阶段包括电商培训
  • 深圳网站建设策划怎么把网站排名到百度前三名
  • 做视频网站付费版商务网站如何推广
  • 铁岭做网站一般多少钱百度快照网址
  • 阜宁网站设计免费b站推广入口2023
  • 全球网站域名后缀武汉seo网站排名优化公司
  • wordpress能找工作吗seo入门教程视频
  • 手机网站建设新闻汕头网站建设公司哪个好
  • 网站服务器如何做端口映射seo l
  • 最经典最常用的网站推广方式是网页设计与制作作业成品
  • 做网站广告费seo工具包括
  • 百度网站推广价格查询合肥正规的seo公司
  • 广州站扩建seo综合查询 站长工具
  • 网页游戏排行nvsheng手机优化大师官方版
  • 建设一个网站平台的费用广告联盟平台入口
  • 女生做网站编辑好吗疫情防控最新信息
  • 旅行社网站规划与建设怎么建企业网站
  • 南阳专业网站制作费用链接提交工具
  • 网站建设公司运营经验站长工具在线查询
  • 网站建设心得体会总结新闻发稿渠道
  • 静态网站代做广东深圳今天最新通知
  • 网站建好以后每年都续费么广州网站设计建设
  • 网站开发背景网络稿件投稿平台
  • 无锡网站建设f7wlb站是哪个网站
  • 不忘初心 继续前进网站怎么做苏州关键词排名提升
  • 东莞做网站费用seo基础知识