网站首页 > 编程文章 正文
前言:
本篇是《异构数据源的CDC实时同步系统》的续篇,继续介绍不同CDC的实际测试效果。
3.mysql-fdw
FDW是Foreign Data Wrappers的简称,中文含义为“外部数据包装器”,从postgresql9.3开始支持了读写操作,详细介绍见https://wiki.postgresql.org/wiki/Foreign_data_wrappers。这里采用的源端的fdw工具的github地址为:https://github.com/EnterpriseDB/mysql_fdw
在实际测试中发现,应用于postgresql端的mysql_fdw经过自行代码修改和编译后,可以正常提供服务,但是在面对greenplum6(gpdb6)的时候源码编译可通过,但是在运行的时候报错,无法正常运行。下面简要说明在postgresql模式下的源码修改:
#github下载的是源码,需要自行编译
#需要有mysql的client驱动,这里按postgresql说明
export PATH=/usr/local/pgsql/bin/:$PATH
export PATH=/usr/mysql/bin/:$PATH
#编译安装
unzip mysql_fdw-master.zip
cd mysql_fdw
make USE_PGXS=1
make USE_PGXS=1 install
chown postgres.postgres /usr/local/pgsql-9.6/lib/mysql_fdw.so
#修改pg的配置文件,增加mysql_fdw功能
shared_preload_libraries = 'mysql_fdw'
#重启pg后创建扩展
create extension mysql_fdw;
#org.postgresql.util.PSQLException: ERROR: failed to load the mysql query:
ln -s /usr/lib64/mysql/libmysqlclient.so.16.0.0 /usr/pgsql-9.6/lib/libmysqlclient.so
#创建server
CREATE SERVER mysql_server FOREIGN DATA WRAPPER mysql_fdw OPTIONS (HOST '192.168.1.111', PORT '3320');
#创建mapping
CREATE USER MAPPING FOR PUBLIC SERVER mysql_server OPTIONS (username 'third_admin', password 'eisoo.com');
#建立外部测试表
CREATE FOREIGN TABLE screens (
"screenid" bigint NOT NULL,
"name" varchar(255) NOT NULL,
"hsize" int NOT NULL ,
"vsize" int NOT NULL ,
"templateid" bigint DEFAULT NULL,
"userid" bigint DEFAULT NULL,
"private" int NOT NULL )
SERVER mysql_server OPTIONS (dbname 'zabbix', table_name 'screens');
4.go-mysql-postgresql
这个工具是国内coder在go-mysql-elasticsearch的基础上进行了代码调整,开源的工具,地址在https://github.com/frainmeng/go-mysql-elasticsearch/releases,这个工具的安装和使用是比较方便的,主要是需要提前配置好go的环境,具体go环境的配置就不在这里单独说明了,大家自行搜索
我们使用的主要问题的,在低并发的场景下,数据的同步是正常的,但是只要源端的数据更新比较频繁,这个程序就会崩溃退出,我们实际测试在update 1W条数据的时候,工具瞬间kill退出,这样的性能是无法满足我们在实际场景下的使用的,在高峰场景下,我们每秒数据更新和插入可能回到几千条,这也是我们放弃这个工具的主要原因。
5.gpkafka
这是pivotal公司官方给出的数据同步工具,现在也有叫gpss( greenplum stream server),由于我们目的端是greenplum,开始的时候我们对这个工具抱有很大的期望,但是在实际测试过程中,发现这个工具根本没有达到商用级别,问题比较多
具体的细节就不在详述了,网上有这个工具的很多介绍和详细的配置教程,因为它仅支持insert模式,在实际场景中是完全不能满足我们要求的,另外配置是按列处理的,我们有的表的列有70-80列,如果使用这个工具,我们的工作量也是无法承载的,所以我们认为这个工具其实还有很长的路要走。
猜你喜欢
- 2024-10-23 Ubuntu环境下MySQL卸载安装配置远程访问三步曲
- 2024-10-23 ubuntu 22 下qt5.15编译mysql驱动
- 2024-10-23 django开发笔记及如何利用pycharm发布到阿里云
- 2024-10-23 python连接mysql,使用mysqldb和mysqlclient、pymysql三者的异同
- 2024-10-23 Cowrie蜜罐部署教程(蜜罐一般部署在哪里)
- 2024-10-23 PHP 编程中最常见的错误,你犯过几个?
- 2024-10-23 「人脸识别实战一」系统架构设计(人脸识别架构图)
- 2024-10-23 ubuntu20.04 安装配置slurm-安装配置数据库
- 2024-10-23 Python 操作 MySQL 的5种方式(python连接mysql数据库增删改查)
- 2024-10-23 使用Ansible安装MySQL(ansible安装kubernetes)
你 发表评论:
欢迎- 06-24一个老爸画了超级有爱的365幅画 | 父亲节献礼
- 06-24产品小白看魏则西事件——用产品思维审视百度推广
- 06-24某教程学习笔记(一):13、脚本木马原理
- 06-24十大常见web漏洞——命令执行漏洞
- 06-24初涉内网,提权那些事(内网渗透提权)
- 06-24黑客命令第16集:47种最常见的**网站方法2/2
- 06-24铭说 | 一句话木马的多种变形方式
- 06-24Java隐藏的10倍效率技巧!90%程序员不知道的魔法方法(附代码)
- 最近发表
- 标签列表
-
- spire.doc (70)
- instanceclient (62)
- solidworks (78)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)