首頁>Club>
mysql資料庫中的一張表,打算每天訪問sqlserver資料庫的檢視來更新資料。
21
回覆列表
  • 1 # Geek視界

    根據我所知道的回答一下這個問題。

    雖然mysql和sqlerver均屬於關係型資料庫,可以執行SQL查詢語句,但是mysql資料庫並不能直接連線而sqlserver資料庫,反之亦然。需要透過“中間人”完成這件事。

    如果需要定期的從sqlserver資料庫中取出資料放到mysql中,建議使用程式語言實現。該程式語言必須同時有mysql介面和sqlserver介面。由於題主的需求不是很複雜,只是定期的從sqlserver資料中提取資料到mysql資料庫,建議考慮使用指令碼語言:pyton或者php。

    pyhon實現方法

    step1:python讀取sqlserver的資料

    python讀取sqlserver資料的資料表的內容需要用到pymssql這個第三方庫,可以使用pip安裝;

    相關程式碼如下圖所示,用於讀取sqlserver資料庫的內容。

    step2:python將讀取的資料存入mysql資料庫

    python操作mysql資料庫需要第三方庫MySQLdb的支援,可以透過pip的方式安裝;

    如下顯示了透過python執行insert語句寫入mysql資料庫的操作。

    step3:將上述程式碼定期輪詢執行

    將上述程式碼透過定時的方式執行,加入是linux系統,可以使用linux的定時執行任務取執行;

    也可以採用python的定時任務去執行,推薦使用第三方庫,apscheduler去完成這個工作。下圖顯示了該庫的簡單應用,稍加改造就可以完成題主需求的定時任務:

    php實現方法

    php的實現方法與python的實現方法類似,需要mysql資料庫和sqlserver資料庫的相關外掛,也是如下所示的3個步驟,不同的是需要安裝一個簡單的web服務,才能執行php程式碼,推薦使用apache。

    step1:php讀取sqlserver的資料

    step2:php將讀取的資料存入mysql資料庫

    step3:將上述程式碼定期輪詢執行

  • 2 # 會點程式碼的大叔

    我的理解題主是要把Mysql中的資料,想辦法放到SqlServer中,如果是相同型別的兩個資料庫,會比較簡單一些,但是像這種不同型別的資料庫,是沒有辦法直接連線。

    關於這種場景,我談一談我能想到的解決方案。

    透過程式碼實現

    作為程式設計師,首先能想到的方法就是透過程式碼來實現,只要能透過程式碼(Java、Python、PHP等等,什麼熟悉用什麼)連上兩種型別的資料庫,做一個定式服務,把資料從Mysql資料庫中讀取出來,然後插入到SqlServer中即可。

    也可以做增量同步,一般是判斷資料中的時間戳,讀取增量資料進行同步。

    ETL工具

    有專門的ETL工具,實現這種跨資料庫的資料抽取功能,建議資料量比較大的時候,可以考慮ETL工具。可選用的工具很多,比如:Informatica,Kettle,Talend,Navicat Premium等等。

    我們專案現在使用的工具是Informatica(不過這個工具是收費的,也比較重量級,我們公司是有購買的),我們專案組也專門招聘了兩個做Informatica的程式設計師,優點就是抽取速度很快,非常得快,缺點也很明顯,一是重,二就是學習成本比較高。

    如果是要用開源免費的話,可以研究一下Kettle。

  • 3 # isNone

    你可以使用微軟的ACCESS透過ODBC建立到兩個庫表的連結串列,在ACCESS中編輯SQL語句來互傳資料。我想這也是微軟搞ACCESS的初衷,ACCESS打通各種資料庫的路徑

  • 中秋節和大豐收的關聯?
  • 經常性覺得生活艱難,很喪,如何調節自己?