mysql是mpp数据库_mysql迁移mpp数据库Greenplum[通俗易懂]

mysql是mpp数据库_mysql迁移mpp数据库Greenplum[通俗易懂]1.场景描述因兄弟项目中mysql有点扛不住了,要做sql优化,但是业务有点小复杂,优化起来有点麻烦(sql嵌套有点多),便想着用Mpp数据库Greenplum测试下,看性能和复杂度怎么样,趟趟水。2.解决方案初步的想法是:因为mysql和postgresql(Greenplum建立在postgresql之上,i’m软件老王)都是使用的标准sql,直接把mysql的建表语句在Greenplum…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

1. 场景描述

因兄弟项目中mysql有点扛不住了,要做sql优化,但是业务有点小复杂,优化起来有点麻烦(sql嵌套有点多),便想着用Mpp数据库Greenplum测试下,看性能和复杂度怎么样,趟趟水。

2.解决方案

初步的想法是:因为mysql和postgresql(Greenplum建立在postgresql之上,i’m 软件老王)都是使用的标准sql,直接把mysql的建表语句在Greenplum建一边,把数据导入过来测试一下就行了,应该半天内就能搞定。

2.1 Greenplum建表

将mysql的表结构通过navicat for mysql导出(navivat中只导出表结构,如下图),但是发现导出的结构在

Greenplum中执行不了,mysql中的ddl语句:

`CONFIG_ID` varchar(36) COLLATE utf8_unicode_ci NOT NULL COMMENT ‘软件老王’

18f977f738f31c0e0df3df7ee21f30af.png

解决办法

(1)网上找了mysql转postgresql的java代码,写的不是太全面,改了几次还是有点问题,放弃。

(2)问了下dba,用的Navicat Premium 12 可以转,网址:https://www.navicat.com.cn/

b6a9b20cd1c3919faf18ede08e1611bd.png

Navicat Premium可以同时操作多个数据库,包括:mysql和greenplum(postgresql),以前使用navicat for mysql只能操作mysql数据库,navicat for postgresql只能操作postgresql。

2.2 导出数据结构

使用Navicat Premium,如下图:

85ee69d7249352dfd2fe6ff153599c8a.png

左边选择mysql,右边选择greenplum,同时去掉选项中的创建记录,就能在Greenplum中创建表结构了。(先创建所有表结构,数据量太大,我们只导几张表的数据进行测试)

0327c584349c9c7ce97db49965040e70.png

2.3 导入数据。

2.3.1 初步想法

初步想法是通过Navicat 直接导入,使用上面的Navicat Premium12就能直接从mysql导入Greenplum数据,但是导入了几张小表后,碰到的一张30多万的表,导了20多分钟还不到40%,看了下greenplum的master节点cpu有点高,后面还有好几张百万级的数据,这样的效率要导到猴年马月了。

2.3.2 外部表方式

(1)首先需要在master节点启动外部表程序fdisk,新建个目录,存放从mysql中导出的文件,我导出的是csv格式。

[gpadmin@软件老王 ~]$ mkdir script

[gpadmin@软件老王 ~]$ nohup gpfdist -d /home/gpadmin/script/ -p 8081 -l /home/gpadmin/script/ruanjianlaowang.log &

(2)创建外部表

————————

CREATE EXTERNAL TABLE “public”.”t_laowang_ex” (

“laowang_type” numeric(3),

“laowang_id” varchar(36)

)

location (‘gpfdist://10.192.0.168:8081/laowang.csv’) format ‘csv’ (DELIMITER ‘,’) encoding ‘utf8’;

说明:

(a)可以直接将原表的ddl语句拿出来,名称增加个_ex(新建外部表的时候,发现not null用不了要替换成空)

(b)其中ip地址是greenplum的master地址,laowang是csv文件名称,csv文件是通过navicat右键导出的,i‘m 软件老王。

gpfdist://10.192.0.168:8081/laowang.csv

(3)数据装载到greenplum表中

insert into t_laowang select * from t_laowang_ex;

i’m 软件老王

这样就完成了数据从mysql迁移到了greenplum中,具体测试结果对比就不在这里多说了。

2.4 总体结论

方案执行比想象的复杂,一是两个数据库建表sql不一样,后通过最新的Navicat Premium 12 解决;二是直接通过navicat导入,在效率上有问题,走不通,通过外部表的方式解决,外部表方式2-3秒就能导入完成;三是,新建外部表的时候,跟原表稍微有点差异,也的注意下。

I’m 「软件老王」,如果觉得还可以的话,关注下呗,后续更新秒知!欢迎讨论区、同名公众号留言交流!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230954.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • nginx php apache php 对比,Apache和nginx的比较「建议收藏」

    nginx php apache php 对比,Apache和nginx的比较「建议收藏」nginx相对apache的优点:● 轻量级,同样起web服务,比apache占用更少的内存及资源● 抗并发,nginx处理请求是异步非阻塞的,而apache则是阻塞型的,在高并发下nginx能保持低资源低消耗高性能● 高度模块化的设计,编写模块相对简单● 社区活跃,各种高性能模块出品迅速啊● Nginx支持更多的并发连接,能够支持高达50000个并发连接数的相应● 能在不间断服务…

    2022年6月6日
    28
  • cuDNN安装教程(Windows)「建议收藏」

    cuDNN安装教程(Windows)「建议收藏」简介NVIDIACUDA®深度神经网络库(cuDNN)是一个用于深度神经网络的GPU原始加速库。cuDNN为标准例程(如前向和反后卷积、池化、归一化和激活层)提供了高度调整的实现。世界各地的深度学习研究人员和框架开发人员依靠cuDNN获得高性能GPU加速。它允许他们专注于培训神经网络和开发软件应用程序,而不是花时间在低级别的GPU性能调整上。cuDNN加速广泛使用的深度学习框架,包括Caffe2、Chainer、Keras、MATLAB、MxNet、PaddlePaddle、PyTorch和T

    2022年6月6日
    103
  • python语法学习—打印九九乘法表

    python语法学习—打印九九乘法表用 python 语法打印九九乘法表 这肯定会用到循环 在其他很多编程语言 java c js 等都可以用 for 循环或者 while 循环进行嵌套从而实现乘法表的打印 但是在 python 中不能使用 for 循环 python 中的 for 循环一般是用来遍历 python 中的非数字类型也就序列或者容器 但是 python 中有 range 函数可以返回一个可迭代对象 可以用来计算 同样可以用来实现循

    2025年7月13日
    0
  • python入门教程(非常详细)书_python编程入门基础

    python入门教程(非常详细)书_python编程入门基础【Python第1课】安装…6【Python第2课】print.7【Python第3课】IDE.10【Python第4课】输入…12【Python第5课】变量…14【Python第6课】bool.16【Python第7课】if.19【Python第8课】while.23【Python第9课】random.

    2022年10月12日
    0
  • 修改phpstorm的字体样式和大小

    修改phpstorm的字体样式和大小

    2021年10月15日
    55
  • 视图~索引[通俗易懂]

    视图~索引[通俗易懂]视图1、什么是视图​视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可2、为什么要用视图​如果要频繁使用一张虚拟表,可以不用重复查询3、如何用视图“`mysqlcreat

    2022年7月4日
    21

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号