天天看點

搭建ODS的幾套解決方案對比

公司業務,想要搭建一個醫院的ODS伺服器:将醫院不同廠家的不同資料庫版本資料庫類型整到一台伺服器中,最初想要是同步資料庫原生同步機制,最理想的是sqlserver釋出訂閱,但是後來發現釋出訂閱不能釋出無主鍵表,是以有了接下來的ODS方案研究

搭建ODS實作資料庫同步

開始的時候使用sqlserver本身的釋出訂閱機制,但是後來,發現他不能訂閱沒有主鍵的表,而醫院資料庫中沒有主鍵的表還挺多的,所有這裡需要找到解決不能同步無主鍵表同步的問題,或者是另一個資料庫同步機制

我這裡提供三個解決方案:

一:kettle+釋出訂閱

                Kettle不是基于日志,所有如果無主鍵表很大,速度上會有問題,100萬資料,1min,一張表

二:AlwaysOn(2012才有)

                搭建起來很麻煩,且2012才有

三:日志傳送

                https://docs.microsoft.com/zh-cn/sql/database-engine/log-shipping/about-log-shipping-sql-server?view=sql-server-2017

http://www.cnblogs.com/chenmh/p/3671030.html

https://www.cnblogs.com/maximo/p/5455041.html

這裡配置共享檔案時報的不能通路指定共享檔案夾的問,弄得很久,對照第三個連結穩穩的沒問題:可悲的是備份庫不可讀

四:鏡像

                副本不能用

五:Beedup(賣license)

            基于日志,完美,但收費,5萬一家客戶

六:Golden gate(賣license)

            https://www.oracle.com/technetwork/cn/articles/datawarehouse/oracle-sqlserver-goldengate-1396114-zhs.html

            基于日志,完美,但收費,10萬一家客戶

七:阿裡開源otter (mysql,Oracle)

https://github.com/alibaba/otter/wiki/Introduction

mysql -> mysql/oracle. (目前開源版本隻支援mysql增量,目标庫可以是mysql或者oracle,取決于canal的功能)

Shareplex replication

                基于資料庫日志,收費

不虛度光陰,享受生命裡的每一天!