mysql遷移mpp數據庫Greenplum

1. 場景描述

因兄弟項目中mysql有點扛不住了,要作sql優化,可是業務有點小複雜,優化起來有點麻煩(sql嵌套有點多),便想着用Mpp數據庫Greenplum測試下,看性能和複雜度怎麼樣,趟趟水。html

2.解決方案

初步的想法是:由於mysql和postgresql(Greenplum創建在postgresql之上,i'm 軟件老王)都是使用的標準sql,直接把mysql的建表語句在Greenplum建一邊,把數據導入過來測試一下就好了,應該半天內就能搞定。java

2.1 Greenplum建表

將mysql的表結構經過navicat for mysql導出(navivat中只導出表結構,以下圖),可是發現導出的結構在mysql

Greenplum中執行不了,mysql中的ddl語句:sql

`CONFIG_ID` varchar(36) COLLATE utf8_unicode_ci NOT NULL COMMENT '軟件老王'

解決辦法數據庫

(1)網上找了mysql轉postgresql的java代碼,寫的不是太全面,改了幾回仍是有點問題,放棄。數據結構

(2)問了下dba,用的Navicat Premium 12 能夠轉,網址:https://www.navicat.com.cn/post

Navicat Premium能夠同時操做多個數據庫,包括:mysql和greenplum(postgresql),之前使用navicat for mysql只能操做mysql數據庫,navicat for postgresql只能操做postgresql。性能

2.2 導出數據結構

使用Navicat Premium,以下圖:測試

左邊選擇mysql,右邊選擇greenplum,同時去掉選項中的建立記錄,就能在Greenplum中建立表了。(先建立全部表,數據量太大,咱們只導幾張表的數據進行測試)優化

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://www.cnblogs.com/ruanjianlaowang/p/11451891.html

相關文章
相關標籤/搜索