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

将 mysql 数据迁移到 clickhouse (最新版)

一、前驱知识

已经在mysql中插入了海量的数据了,这个时候mysql 承载不了这么大的数据,并且数据只需要查询,修改和删除非常少,并且不需要支持事务,这个时候需要换一个底层存储,这里选用的是 clickhouse 来进行存储。

演示方便这里使用的数据量很小,其实很大的话也很快。

本文迁移示例表

  • mysql安装在docker中,迁移的表结构
CREATE TABLE `change_handler1` (`client_id` int NOT NULL COMMENT '网关id',`equipment` varchar(48) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '设备编码',`point_id` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '测点id',`value_last` decimal(18,6) DEFAULT NULL COMMENT '上值',`value_latest` decimal(18,6) DEFAULT NULL COMMENT '下值',`value_change` decimal(18,6) DEFAULT NULL COMMENT '电量',`window_end_time_last` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最新封窗时间',`window_end_time_latest` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '上个封窗时间',`window_end_time_msg_time` datetime DEFAULT NULL COMMENT '窗口网关发送时间',`window_size` bigint DEFAULT NULL COMMENT '窗口时间长度秒',`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',`electricity_value` decimal(18,6) DEFAULT NULL COMMENT '电费',`price_type` bigint DEFAULT NULL COMMENT '峰谷平尖类型',PRIMARY KEY (`client_id`,`equipment`,`point_id`,`window_end_time_last`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC COMMENT='电量清洗';
  • clickhouse 安装在docker中,映射后的表结构
CREATE TABLE history_db.change_handler(`client_id` int  COMMENT '网关id',`equipment` String  COMMENT '设备编码',`point_id`  String COMMENT '测点id',`value_last` Decimal(18,6)  COMMENT '上值',`value_latest` Decimal(18,6)  COMMENT '下值',`value_change` Decimal(18,6)  COMMENT '电量',`window_end_time_last` DateTime  COMMENT '最新封窗时间',`window_end_time_latest` DateTime  COMMENT '上个封窗时间',`window_end_time_msg_time` DateTime  COMMENT '窗口网关发送时间',`window_size` Int32  COMMENT '窗口时间长度秒',`create_time` DateTime  COMMENT '创建时间',`update_time` DateTime  COMMENT '更新时间',`electricity_value` Decimal(18,6)  COMMENT '电费',`price_type` Int32  COMMENT '峰谷平尖类型') ENGINE = MergeTree()order by (client_id,equipment,point_id,window_end_time_last)PRIMARY KEY (client_id,equipment,point_id,window_end_time_last);

二、数据迁移

我看了网上的几种方式,几种都是在clickhouse 这边来做的,我觉得没必要,因为表非常大的话,网络开销是非常大的,所以我这里采用的是从mysql 那里将数据迁移出来,然后导入clickhouse 用 clickhouse-client 来导入

2.1 mysql 数据导出

首先进到mysql的机器里面执行命令

select change_handler1.* into outfile '/var/lib/mysql-files/change_handler1.txt' from change_handler1;

ps: 注意这里的导出路径,如果不是这个(/var/lib/mysql-files)路径下会报错,最好写这个路径,反正只是一个临时存储路径

然后我们将导出的文件拷贝到clickhouse的机器上,我这里是容器,直接用 docker cp 拷贝的,如果不是容器,用FTP之类的拷贝过去
mysql容器拷贝出来

拷贝到 clickhouse 容器中
拷贝到clickhouse容器中

2.2 clickhouse 导入

先进入clickhouse容器,这里使用的是 clickhouse-client 来导入的,如果没有的话可以直接安装

sudo apt-get install clickhouse-client

执行导入命令,如果设置了密码的话用 --password 来指定

cat change_handler1.txt | clickhouse-client -u 用户 --password 密码 --query="INSERT INTO history_db.change_handler FORMAT TabSeparated"

FORMAT 后面跟的是格式,如果导入的是CSV格式的话 写CSV

2.3 结果

执行完成之后就可以连接clickhouse 看数据了,数据已经过去了
完成后的数据

相关文章:

将 mysql 数据迁移到 clickhouse (最新版)

一、前驱知识 已经在mysql中插入了海量的数据了,这个时候mysql 承载不了这么大的数据,并且数据只需要查询,修改和删除非常少,并且不需要支持事务,这个时候需要换一个底层存储,这里选用的是 clickhouse 来进…...

LeetCode 69.x的平方

LeetCode 69.x的平方 思路&#xff1a; 二分查找。从1到x进行二分查找&#xff0c;每次判断mid的平方是否<x&#xff0c; 如果是&#xff0c;则更新ansmid&#xff0c;并缩小区间&#xff1b; 如果不是&#xff0c;则缩小区间&#xff1b; 最后则找到最接近的ans&#xff0…...

【小白入门】ASP.NET Core 创建 Web API

ASP.NET Core 支持使用 C# 创建 RESTful 服务&#xff0c;也称为 Web API。 若要处理请求&#xff0c;Web API 使用控制器。 Web API 中的 控制器 是派生自 ControllerBase 的类。 本文介绍了如何使用控制器处理 Web API 请求。 Web API 包含一个或多个派生自 ControllerBase …...

如何使用摩尔信使MThings连接网络设备

帽子&#xff1a; 摩尔信使MThings支持Modbus-TCP、Modbus-RTU Over TCP、Modbus-TCP Over UDP、Modbus-RTU Over UDP。 TCP链接中&#xff0c;摩尔信使MThings支持灵活的连接方式&#xff0c;主机可作为客户端也可以作为服务端&#xff0c;同时支持模拟从机以客户端方式向远…...

2023自动驾驶 车道线检测数据集

目录 2023自动驾驶 车道线检测关键数据集 下载链接 labelme标注制作数据: 车道线分割项目记录-tusimple数据集处理 2023自动驾驶 车道线检测关键数据集 下载链接 2023自动驾驶 车道线检测关键数据集 下载链接_Xiaobai_Zhao的博客-CSDN博客 labelme标注制作数据:...

排序算法-冒泡排序法(BubbleSort)

排序算法-冒泡排序法&#xff08;BubbleSort&#xff09; 1、说明 冒泡排序法又称为交换排序法&#xff0c;是从观察水中的气泡变化构思而成的&#xff0c;原理是从第一个元素开始&#xff0c;比较相邻元素的大小&#xff0c;若大小顺序有误&#xff0c;则对调后再进行下一个…...

3d tiles规范boundingVolume属性学习

3d tiles的瓦片&#xff08;Tiles&#xff09;包含一些属性&#xff0c;其中第一项是boundingVolume&#xff1b;下面学习boundingVolume&#xff1b; boundingVolume&#xff0c;这个翻译为边界范围框&#xff0c;如果直译为边界体积可能有问题&#xff0c;其实就是包围盒的意…...

【开题报告】如何借助chatgpt完成毕业论文开题报告

步骤 1&#xff1a;确定论文主题和研究问题 首先&#xff0c;你需要确定你的论文主题和研究问题。这可以是与软件开发、算法、人工智能等相关的任何主题。确保主题具有一定的研究性和可行性。 步骤 2&#xff1a;收集相关文献和资料 在开始撰写开题报告之前&#xff0c;收集相…...

微信小程序通过 movable-area 做一个与vuedraggable相似的上下拖动排序控件

因为只是做个小案例 我就直接代码写page页面里了 其实很简单 组件稍微改一下就好了 wxss /* 设置movable-area的宽度 */ .area{width: 100%; }/* a b c 每条元素的样式 */ movable-view {width: 100%;background-color: red;height: 40px;line-height: 40px;color: #FFFFFF;tex…...

Ceph入门到精通-Nginx超时参数分析设置

nginx中有些超时设置&#xff0c;本文汇总了nginx中几个超时设置 Nginx 中的超时设置包括&#xff1a; “client_body_timeout”&#xff1a;设置客户端向服务器发送请求体的超时时间&#xff0c;单位为秒。 “client_header_timeout”&#xff1a;设置客户端向服务器发送请…...

TCP/IP(十)TCP的连接管理(七)CLOSE_WAIT和TCP保活机制

一 CLOSE_WAIT探究 CLOSE_WAIT 状态出现在被动关闭方,当收到对端FIN以后回复ACK,但是自身没有发送FIN包之前 ① 服务器出现大量 CLOSE_WAIT 状态的原因有哪些? 1、通常来讲,CLOSE_WAIT状态的持续时间应该很短,正如SYN_RCVD状态2、但是在一些特殊情况下,就会出现大量连接长…...

LeetCode 面试题 08.10. 颜色填充

文章目录 一、题目二、C# 题解 一、题目 编写函数&#xff0c;实现许多图片编辑软件都支持的「颜色填充」功能。 待填充的图像用二维数组 image 表示&#xff0c;元素为初始颜色值。初始坐标点的行坐标为 sr 列坐标为 sc。需要填充的新颜色为 newColor。 「周围区域」是指颜色相…...

内排序算法

排序算法是面试中常见的问题&#xff0c;不同算法的时间复杂度、稳定性和适用场景各不相同。按照数据量和存储方式可以将排序算法分为 内排序&#xff08;Internal Sorting&#xff09;和 外排序&#xff08;External Sorting&#xff09;。 内排序是指对所有待排序的数据都可…...

options.html 页面设计成聊天框,左侧是功能列表,右侧是根据左侧的功能切换成不同的内容。--chatGpt

gpt: 要将 options.html 页面设计成一个聊天框式的界面&#xff0c;其中左侧是功能列表&#xff0c;右侧根据左侧的功能切换成不同的内容&#xff0c;你可以按照以下步骤进行设计和实现&#xff1a; 1. 首先&#xff0c;创建 options.html 文件&#xff0c;并在其中定义基本的…...

排序算法-选择排序法(SelectionSort)

排序算法-选择排序法&#xff08;SelectionSort&#xff09; 1、说明 选择排序法也是枚举法的应用&#xff0c;就是反复从未排序的数列中取出最小的元素&#xff0c;加入另一个数列中&#xff0c;最后的结果即为已排序的数列。选择排序法可使用两种方式排序&#xff0c;即在所…...

Java-集合框架

文章目录 摘要CollectionCollection集合遍历Iterator迭代器增强for循环 排序 ListArrayListLinkedListVector SetHashSet Map小结 摘要 Java的集合框架提供了一组用于存储、管理和操作数据的类和接口。这个框架提供了各种数据结构&#xff0c;如列表、集合、队列和映射&#x…...

联想携中国移动打造车路协同方案 助力重庆实现32类车联网场景

10月11日&#xff0c;联想集团在中国移动全球合作伙伴大会上首次分享了与中国移动等合作伙伴共同打造的5G车路协同案例——重庆两江协同创新区车路协同应用。联想利用基于5G智能算力技术&#xff0c;在总里程55公里路段实现了32类车联网场景。 据了解&#xff0c;重庆两江协同创…...

Rust入门基础

文章目录 Rust相关介绍为什么要用Rust&#xff1f;Rust的用户和案例 开发环境准备安装Rust更新与卸载Rust开发工具 Hello World程序编写Rust程序编译与运行Rust程序 Cargo工具Cargo创建项目Cargo构建项目Cargo构建并运行项目Cargo检查项目Cargo为发布构建项目 Rust相关介绍 为…...

民族民俗景区3d智慧旅游系统提升游客旅游体验和质量

随着科技的不断发展&#xff0c;传统的旅游方式正在逐渐被新的技术和系统所取代。网上3D沉浸式旅游体验凭借其身临其境的沉浸式体验优势&#xff0c;正成为旅游业的新宠。 网上3D沉浸式旅游体验是将旅游景区、度假区、休闲街区、科博馆等场所空间&#xff0c;利用VR全景制作、w…...

Webpack 解决:Error: error:0308010C:digital envelope routines::unsupported 的问题

1、问题描述&#xff1a; 其一、报错为&#xff1a; Error: error:0308010C:digital envelope routines::unsupported 中文为&#xff1a; 错误&#xff1a;错误&#xff1a;0308010C&#xff1a;数字信封例程::不支持 其二、问题描述为&#xff1a; 在项目打包的时候 np…...

Steam Achievement Manager终极指南:如何完全掌控你的Steam成就系统

Steam Achievement Manager终极指南&#xff1a;如何完全掌控你的Steam成就系统 【免费下载链接】SteamAchievementManager A manager for game achievements in Steam. 项目地址: https://gitcode.com/gh_mirrors/st/SteamAchievementManager Steam Achievement Manage…...

GPS定位误差从几十米到厘米级:RTK技术如何实现高精度定位(附手机实测对比)

GPS定位误差从几十米到厘米级&#xff1a;RTK技术如何实现高精度定位&#xff08;附手机实测对比&#xff09; 你是否曾在城市峡谷中看着导航地图上飘忽不定的定位箭头哭笑不得&#xff1f;或是户外徒步时发现轨迹记录偏离实际路线数十米&#xff1f;这些困扰背后&#xff0c;是…...

每日一道面试题 08:SpringBoot 自动配置原理

一、核心前提SpringBoot 核心优势&#xff1a;自动配置&#xff0c;无需手动编写大量 XML 配置&#xff0c;简化开发&#xff08;本质是 “约定优于配置”&#xff09;自动配置底层依赖&#xff1a;EnableAutoConfiguration 注解 Spring 工厂加载机制 条件注解核心目标&#…...

人形机器人手指关节选材:铝合金 vs PEEK,谁才是轻量化的终极方案?

在人形机器人研发中&#xff0c;末端执行器&#xff08;手部&#xff09;的性能直接决定了机器人的交互上限。而在手指关节这种“空间极度受限、重量极度敏感、运动频率极高”的部位&#xff0c;选铝合金还是 PEEK&#xff08;聚醚醚酮&#xff09;&#xff0c;本质上是在“结构…...

字幕提取与格式转换解决B站内容离线使用难题:BiliBiliCCSubtitle的多场景应用指南

字幕提取与格式转换解决B站内容离线使用难题&#xff1a;BiliBiliCCSubtitle的多场景应用指南 【免费下载链接】BiliBiliCCSubtitle 一个用于下载B站(哔哩哔哩)CC字幕及转换的工具; 项目地址: https://gitcode.com/gh_mirrors/bi/BiliBiliCCSubtitle 当你在B站发现一门优…...

如何用 Kinovea 实现专业运动分析?免费视频解析工具完全指南

如何用 Kinovea 实现专业运动分析&#xff1f;免费视频解析工具完全指南 【免费下载链接】Kinovea Video solution for sport analysis. Capture, inspect, compare, annotate and measure technical performances. 项目地址: https://gitcode.com/gh_mirrors/ki/Kinovea …...

零基础入门飞书机器人开发:快马平台带你写好第一个openclaw程序

零基础入门飞书机器人开发&#xff1a;快马平台带你写好第一个openclaw程序 最近想给团队做个飞书机器人小助手&#xff0c;但作为编程新手完全不知道从哪开始。摸索后发现用openclaw框架配合InsCode(快马)平台特别适合零基础入门&#xff0c;这里记录下我的学习过程。 1. 理…...

安全是跑出来的:从萝卜快跑看自动驾驶的“成人礼”

近日&#xff0c;武汉市区部分“萝卜快跑”自动驾驶车辆出现突发停驶异常状况&#xff0c;部分车辆在道路上停止运行&#xff0c;导致乘客被困、交通受阻。官方通报显示&#xff0c;此次事件为系统故障触发的车辆停滞&#xff0c;所有乘客已安全撤离&#xff0c;无人员伤亡。作…...

3个技巧让百度网盘下载提速10倍:突破限速的完整技术方案

3个技巧让百度网盘下载提速10倍&#xff1a;突破限速的完整技术方案 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 百度网盘解析工具 baidu-wangpan-parse 是一款专为解决百度…...

如何建立有利于SEO的网站内容体系_网站 SEO 优化的周期是多长时间

如何建立有利于SEO的网站内容体系 在当今的数字时代&#xff0c;建立一个有利于SEO&#xff08;搜索引擎优化&#xff09;的网站内容体系是任何企业或个人在网络上获得成功的关键。一个优化良好的网站不仅能吸引更多的访问者&#xff0c;还能提升品牌的知名度和销售转化率。如…...