5分鐘搞定 MySQL 到 Greenplum / PostgreSQL 數據遷移同步

来源:https://www.cnblogs.com/clougence/archive/2022/12/02/16943630.html
-Advertisement-
Play Games

簡述 本文主要介紹如何使用 CloudCanal 構建一條 MySQL 到 Greenplum / PostgreSQL 的數據同步鏈路。 支持版本 源端 MySQL 支持的版本為:5.6、5.7、8.X 對端 PostgreSQL 支持的版本為:8.4、9.0、9.1、9.2、9.3 9.4、9. ...


簡述

本文主要介紹如何使用 CloudCanal 構建一條 MySQLGreenplum / PostgreSQL 的數據同步鏈路。

支持版本

源端 MySQL 支持的版本為:5.65.78.X
對端 PostgreSQL 支持的版本為:8.49.09.19.29.3 9.49.59.610.X11.X12.X13.X14.X15.X16.X17.X
對端 Greenplum 支持的版本為:6.X

技術點

流程自動化&功能豐富

支持創建結構遷移、全量遷移、增量同步、數據校驗、數據訂正類型的任務。結構遷移、全量遷移和增量同步可作為一個任務的多個階段自動化進行。

新增表自動遷移同步

CloudCanal 提供了修改訂閱的能力。對於一個正在運行的增量同步的任務,CloudCanal 提供了動態修改訂閱的方式,可以對一個正在運行的增量同步任務新增需要訂閱的表。對於新增的表,CloudCanal 會自動遷移、同步其數據。

自定義數據處理

用戶在遷移、實時同步期間如需要對傳輸的數據行進行自定義的加工可以採用 CloudCanal提供的自定義數據處理能力,這對於實時寬表構建、新增動態列、基於微服務、緩存的數據清洗等數據處理場景都非常有幫助。關於更多自定義數據的使用方式可以參考:數據處理插件使用方式

支持多種 DDL

MySQL -> Greenplum / PostgreSQL 鏈路支持的DDL有 Create TableDrop TableAlter TableRname TableCreate Index

支持高性能寫入模式

CloudCanal 中預設採用 PostgreSQL/Greenplum的驅動通過JDBC的方式進行批量寫入。如果用戶對性能要求很苛刻,可以嘗試開啟基於Copy模式的高性能寫入模式。在Copy寫入模式下,寫入性能相比採用JDBC的方式有很大的提升。瞭解基於Copy的高性能寫入模式可以參考:開啟PG/GP高性能寫入

支持地理信息類型寫入

PostgreSQLGreenplum對於地理信息類型的處理比較友好,因此常常被用於存儲地理信息數據。CloudCanal 支持遷移同步源端地理信息類型的數據並且對其做自動轉換後寫入對端。瞭解更多 CloudCanal對於地理信息類型的處理可以參考文章:CloudCanal地理數據同步與處理

結構遷移類型自動處理

異構數據源之間對類型的處理都存在差異,CloudCanal 會進行自動的轉化和優化,例如在 MySQL 中可以定義的VARCHAR(0)數據類型,在 PostgreSQL / Greenplum 中不支持,CloudCanal 結構遷移時會自動將源端MySQLVARCHAR(0)類型映射為 VARCHAR(1)

數據類型映射

CloudCanal 結構遷移和數據遷移同步時會自動進行數據類型映射。類型映射見下表:

MySQL 類型 PostgreSQL / Greenplum 類型
BIT BIT
TINYINT SMALLINT
SMALLINT SMALLINT
MEDIUMININT INTEGER
INT INTEGER
BIGINT BIGINT
DECIMAL NUMERIC
FLOAT NUMERIC
DOUBLE NUMERIC
DATE TIMESTAMP WITHOUT TIME ZONE
DATETIME TIMESTAMP WITHOUT TIME ZONE
TIMESTAMP TIMESTAMP WITHOUT TIME ZONE
TIME TIME WITHOUT TIME ZONE
YEAR INTEGER
CHAR CHARACTER
VARCHAR CHARACTER VARYING
BINARY BYTEA
VARBINARY BYTEA
TINYBLOB BYTEA
BLOB BYTEA
MEDIUMBLOB BYTEA
LONGBLOB BYTEA
TINYTEXT BYTEA
TEXT TEXT
MEDIUMTEXT TEXT
LONGTEXT TEXT
ENUM TEXT
SET TEXT
JSON JSON
GEOMETRY� TEXT
POINT� POINT�
LINESTRING� TEXT
POLYGON� POLYGON�
MULTIPOINT� TEXT
GEOMETRY_COLLECTION� TEXT
GEOM_COLLECTION� TEXT
MULTILINESTRING� TEXT

準備工作

  • 安裝好 CloudCanal 社區版 2.2.5.10 及以上版本
  • 準備好源端和目標端資料庫以及對應的測試數據

操作示例

添加數據源

  • 登錄 CloudCanal 平臺
  • 數據源管理 -> 新增數據源 -> 自建資料庫

image.png

  • 添加 Greenplum 或者 PostgreSQL後可以在數據源列表看到新增的數據源。

image.png

創建同步任務

  • 任務管理 -> 創建任務
  • 源端選擇 MySQL 數據源,對端選擇 Greenplum / PostgreSQL
  • 分別點擊 測試連接,選擇源端對端需要訂閱的庫,選擇 下一步

image.png

  • 選擇 增量同步 -> 選擇 全量初始化
  • 根據自身機器配置選擇 規格
  • 選擇 下一步

image.png

  • 選擇源端需要同步的表,如果目標表顯示橙色表示對端不存在該表,任務創建之後,會自動生成該表
  • 點擊下一步

image.png

  • 可以在左側,添加 數據過濾條件
  • 選擇 下一步

image.png

  • 選擇 創建任務

image.png

任務執行

任務創建並且啟動後,會自動進行如下的三個階段:

  • 結構遷移:任務創建之後,如果對端沒有表結構,那麼 CloudCanal 會去自動在對端創建表結構
  • 數據初始化:將源端存量數據整體遷移到對端
  • 數據同步:全量遷移期間以及全量完成以後的源端增量數據變更會實時同步到對端

image.png

image.png

總結

本文簡單介紹瞭如何使用 CloudCanal 進行 MySQL -> Greenplum 數據遷移同步。各位讀者朋友,如果你覺得還不錯,請點贊、評論加轉發吧。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 有一個煤礦項目,使用iNeuOS系統時有一個需要是:要統計設備的運行時長,進一步統計設備運行效率。主要是有效分析設備運行狀態,合理的進行節能。iNeuOS本身具備強大的腳本能力,需要現場實施人員有一定腳本編寫能力,如果不具備腳本編寫能力,那麼下麵的模板修改相應的參數即可。 ...
  • 前言:本系列是我自己學習.net相關知識,以便跟上.net跨平臺的步伐,目前工作原因基本在.net Framework4.7以下,所以才有了這一系列的學習總結,但是並不是從基本的C#語法和基礎知識開始的,而是圍繞.net core以後平臺的重要設計和差異進行溫故知新。目的在於通過要點的梳理最後串聯起 ...
  • Linux 基礎-新手必備命令 概述 常見執行 Linux 命令的格式是這樣的: 命令名稱 [命令參數] [命令對象] 註意,命令名稱、命令參數、命令對象之間請用空格鍵分隔。 命令對象一般是指要處理的文件、目錄、用戶等資源,而命令參數可以用長格式(完整的選項名稱),也可以用短格式(單個字母的縮寫), ...
  • 1 hadoop-最全最完整的保姆級的java大數據學習資料 大數據技術解決的是什麼問題? 大數據技術解決的主要是海量數據的存儲和計算。 Hadoop的廣義和狹義之分 狹義的Hadoop:指的是一個框架,Hadoop是由三部分組成:HDFS:分散式文件系統--> 存儲; MapReduce:分散式離 ...
  • 學習中的思考 在 mysql 學習和使用中,我遇到了不少的難題,我覺得我應該形成一套邏輯思考體系,可以讓我在初識 mysql 的過程中加入理性思考,從一開始就探求原理,瞭解所學內容的核心和關鍵點,做到一葉知秋而不是只見樹木不見森林。 mysql 幾種數據類型的底層是如何存儲的,不同的 sql 語句對 ...
  • 緣起 StoneDB 在列式存儲引擎 Tianmu 的加持下,在大多數場景下相對 MySQL 都會有大幅性能提升。當然,這是需要工程師不斷優化代碼才能做到的,而且,性能好也需要通過基準測試才有說服力,所以我們也會針對 TPC-H 的測試語句進行測試排查,爭取不斷提升 StoneDB 的性能。本文主要 ...
  • 近年來大家可能都有這樣一種感受:與編程語言市場不同,資料庫市場的競爭激烈異常——一線的在停滯甚至下墜,二線的正在反超。有種種跡象表明:MySQL 這個流行榜上的榜一大哥,正在逐漸淡出專業開發者的視野。再見 MySQL,可能不再只是一個嘩眾取寵的梗了! ...
  • 摘要:為實現不同的功能,GaussDB(DWS)提供了不同的數據對象類型,包括索引、行存表、列存表及其輔助表等。這些數據對象在特定的條件下實現不同的功能,為資料庫的快速高效提供了保證,本文對部分數據對象進行介紹。 本文分享自華為雲社區《GaussDB(DWS)之數據對象及相互關係總結》,作者:我的橘 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...