首页 > 数据库 >binlog_parse_clickhouse.py(ETL抽数据工具)将MySQL8.0迁移至ClickHouse

binlog_parse_clickhouse.py(ETL抽数据工具)将MySQL8.0迁移至ClickHouse

时间:2023-06-09 15:01:36浏览次数:78  
标签:语句 binlog py parse 线程 clickhouse SQL ClickHouse

binlog_parse_clickhouse.py(ETL抽数据工具)将MySQL8.0迁移至ClickHouse

原理:

将解析 binlog 和执行 SQL 语句两个过程由两个线程来执行。

其中,解析 binlog 的线程每次解析完一个事件后通过队列将 SQL 语句传给 SQL 执行线程, SQL 执行线程从队列中取出 SQL 语句并按顺序依次执行,这样就保证了 SQL 语句的串行执行。

https://github.com/hcymysql/binlog_parse_sql/

注:clickhouse_driver库需要调用ssl,由于python3.10之后版本不在支持libressl使用ssl,需要用openssl1.1.1版本或者更高版本

参见:python3.10编译安装报SSL失败解决方法

https://blog.csdn.net/mdh17322249/article/details/123966953


标签:语句,binlog,py,parse,线程,clickhouse,SQL,ClickHouse
From: https://blog.51cto.com/hcymysql/6448085

相关文章

  • Python基础之时间模块、随机模块
    时间模块time模块'''time模块是函数内置的模块可以直接拿来用的'''importtime#时间的3种格式1、时间戳:从1970年到现在经过的秒数 作用:用于时间间隔的计算print(time.time()) #1686229427.28574542、按照某种时间格式显示的时间:2023-06-0821:03:47strftime()......
  • pycharm/pyqt5/QTdesigner/PyUIC路径设置
    前言:pycharm安装遇到很多问题,1.5天。网上找到的解决方法每个都一点点去尝试,但不是很多方案也不是适用于我。只能把适用于我的方法和我的理解汇总如下。0、离线安装因为公司网络很慢所以只能离线安装,安装下载地址网上可找,不重复了。(一句话看起来很简单,想起当初为了寻找安装源......
  • cv2 undefined symbol: g_date_copy (or qt.qpa.plugin: Could not load..)解决
    cv2undefinedsymbol:g_date_copyorqt.qpa.plugin:Couldnotload问题背景:这次就是想用Qt5在Ubuntu上做一个GUI,结果一运行就报这个:QObject::moveToThread:Currentthread(0x7fc0f7435300)isnottheobject’sthread(0x7fc0f9f02cc0).Cannotmovetotargetthread(0x7......
  • Python进阶:进程的状态及基本操作
    文章目录Python进阶篇-系列文章全篇一、进程以及状态二、[重点]进程-基本使用三、[重点]进程-名称、PID四、[重点]进程-参数传递、全局变量问题五、[重点]进程-守护主进程六、进程、线程对比七、[重点]消息队列-基本操作八、消息队列-常见判断九、[重点]Queue实现进程间通信十、[......
  • Python进阶:利用线程实现多任务
    文章目录Python进阶篇-系列文章全篇一、多任务的介绍二、[重点]线程-基本使用三、[重点]线程-线程名称、总数量四、[重点]线程-参数及顺序五、[重点]线程-守护线程六、并行和并发七、[重、难点]自定义线程类八、[重点]多线程-共享全局变量九、[难点]多线程-共享全局变量-问......
  • N6、seq2seq翻译实战-Pytorch复现
    ......
  • python tkinter 动态批量建立Widget时,combobox 或 entry传递参数问题
    terminal_combobox.bind('<<ComboboxSelected>>',lambdaevent,arg=key_dict:self.terminal_select(key_dict=arg))#注意,传递参数方法defterminal_select(self,key_dict,*args):var=self.dict_widget[key_d......
  • python爬虫概念
    Python爬虫是指使用Python编写程序来自动化地提取互联网上的信息(如文本、图像、视频、音频等)。它通常使用HTTP协议向Web服务器发送请求,并通过解析HTML响应来提取所需的信息。Python爬虫可以用于数据挖掘、信息收集、自动化测试等任务。常用的Python爬虫库包括BeautifulSoup、lxml......
  • 实验6 turtle绘图与python库应用编程体验
    实验任务1:task1_1实验源码:1fromturtleimport*234defmove(x,y):5penup()6goto(x,y)7pendown()8910defdraw(n,size=100):11foriinrange(n):12fd(size)13left(360/n)141516defmain():17......
  • python - execjs使用crypto-js
    最近在研究一个网站发现网站使用了des加密,觉得使用python调用js可读性比较高,所以使用了以下方法来实现该网站的内容解密1.安装PyExecJSpip3installPyExecJs2.安装node.jshttps://nodejs.org/en/download3.node安装jsdom,crypto-js可以到py文件目录在运行npm,方便调用np......