最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

go語言寫的簡要數據同步工具詳解

 更新時間:2024年07月22日 09:01:35   作者:Breeze0806  
作為go-etl工具的作者,想要安利一下這個小巧的數據同步工具,它在同步百萬級別的數據時表現極為優(yōu)異,基本能在幾分鐘完成數據同步,這篇文章主要介紹了go語言寫的簡要數據同步工具,需要的朋友可以參考下

go語言寫的簡要數據同步工具

go-etl工具

作為go-etl工具的作者,想要安利一下這個小巧的數據同步工具,它在同步百萬級別的數據時表現極為優(yōu)異,基本能在幾分鐘完成數據同步。

1.它能干什么的?

go-etl是一個數據同步工具集,目前支持MySQL,postgres,oracle,SQL SERVER,DB2等主流關系型數據庫以及csv,xlsx文件之間的數據同步,在同步百萬級別的數據時表現極為優(yōu)異,基本能在幾分鐘完成數據同步。

2.怎么獲取它?

可以在最新發(fā)布版本下載到windows或者linux操作系統(tǒng)的64位版本二進制程序

如圖所示第1個是不包含db2功能的linux二進制程序,第2個是linux版本的,第3個是windows版本的

3.怎么使用它?

go-etl datax二進制程序是一款即插即用的程序,它的唯一難點是配置導入配置文件,配置它的配置文件我們需要理解它的工作原理

3.1 工作原理

如上圖所示go-etl datax將數據從源數據源同步到目的數據源,

  • 讀取器:reader為數據采集模塊,負責采集數據源的數據,將數據發(fā)送給框架。

  • 寫入器:writer為數據寫入模塊,負責不斷向框架取數據,并將數據寫入到目的端。

  • 框架:框架用于連接readerwriter,作為兩者的數據傳輸通道,并處理緩沖,流控,并發(fā),數據轉換等核心技術問題

3.2 配置數據同步文件

通過工作原理,需要配置readerwriter才能使go-etl datax準確地開始工作,本次以csvmysql之間的數據同步為例, 以下是完整的配置文件,但僅需要關注job.content即可

{
    "core" : {
        "container": {
            "job":{
                "id": 1,
                "sleepInterval":100
            }
        }
    },
    "job":{
        "content":[
            {
                "reader":{
                    "name": "csvreader",
                    "parameter": {
                        "path":["split.csv"],
                        "encoding":"utf-8"
                    }
                },
                "writer":{
                    "name": "mysqlwriter",
                    "parameter": {
                        "username": "root",
                        "password": "123456",
                        "writeMode": "insert",
                        "column": ["*"],
                        "connection":  {
                                "url": "tcp(192.168.15.130:3306)/mysql",
                                "table": {
                                    "db":"source",
                                    "name":"split"
                                }
                         },
                        "batchTimeout": "1s",
                        "batchSize":1000
                    }
                },
               "transformer":[]
            }
        ],
        "setting":{
            "speed":{
                "byte":0,
                "record":1024,
                "channel":4
            }
        }
    }
}

這里先看reader,首先留意到的時reader的名字是csvreader,表明其源數據源的類型,再例如如mysql的讀取器為mysqlreader,接著留意到的時reader的參數,path代表csv文件的存儲位置,encoding為csv文件的字符集。

這里再看writer,首先留意到的時reader的名字是mysqlreader,表明其目的數據源的類型,再例如csv的讀取器為mysqlreader,接著留意到的時writer的參數,需要配置的是username,password,connectionurltable,用戶名密碼無需多言,這里要重點講講url,基本配置格式:tcp(ip:port)/db,ip:port代表mysql數據庫的IP地址和端口,db表示要默認連接的數據庫,table是需要寫入的表信息。

3.3 運行程序導入數據

將上述配置命名為config.json,將其和datax以及待導入的數據文件split.csv放到同一目錄下,在windows中使用命令行或者linux中使用終端執(zhí)行以下命令

datax

3.4 批量寫入數據

3.4.1 源目的配置向導文件

源目的配置向導文件是csv文件,每行配置可以配置如下:

path[table],path[table]

每一列可以是路徑或者是表名,注意所有的表要配置庫名或者模式名,需要在數據源配置文件配置。

3.4.2 批量生成數據配置集和執(zhí)行腳本

在windows中使用命令行或者linux中使用終端執(zhí)行以下命令

datax -c tools/testData/xlsx.json -w tools/testData/wizard.csv 

-c 指定數據源配置文件 -w 指定源目的配置向導文件。

執(zhí)行結果會在數據源配置文件目錄文件生成源目的配置向導文件行數的配置集,分別以指定數據源配置文件1.json,指定數據源配置文件2.json,...,指定數據源配置文件[n].json的配置集。

另外,在當前目錄會生成執(zhí)行腳本run.bat或者run.sh。

3.4.3 運行腳本

windows中使用命令行即可

run.bat

linux中使用終端執(zhí)行即可

run.sh

到此這篇關于go語言寫的簡要數據同步工具的文章就介紹到這了,更多相關go語言寫的簡要數據同步工具內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • golang為什么要統(tǒng)一錯誤處理

    golang為什么要統(tǒng)一錯誤處理

    這篇文章主要介紹了golang為什么要統(tǒng)一錯誤處理,統(tǒng)一錯誤處理的目的是為了前端開發(fā)接收到后端的statuscode,之后便于前端邏輯上開發(fā)以及開發(fā),下文具體操作過程需要的小伙伴可以參考一下
    2022-04-04
  • Go語言封裝HTTP請求的Curl工具包詳解

    Go語言封裝HTTP請求的Curl工具包詳解

    在 Go 語言開發(fā)中,與 HTTP 服務進行交互是非常常見的需求,本文將分享一個用 Go 語言封裝的 Curl 工具包,它提供了簡潔易用的接口來進行 HTTP 請求,需要的可以了解下
    2025-03-03
  • Go語言函數學習教程

    Go語言函數學習教程

    這篇文章主要介紹了Go語言函數基本用法,結合實例形式分析了Go語言函數的格式、定義、使用方法與相關注意事項,需要的朋友可以參考下
    2016-07-07
  • Golang基于文件魔數判斷文件類型的案例代碼

    Golang基于文件魔數判斷文件類型的案例代碼

    這篇文章主要介紹了Golang基于文件魔數判斷文件類型,本文介紹了基于文件魔數判斷文件類型的方法,主要涉及如何ReadSeek讀取文件指定字節(jié)內容,然后介紹文件魔數,最后給出示例基于魔數判斷文件類型,需要的朋友可以參考下
    2023-02-02
  • 詳解Golang中NewTimer計時器的底層實現原理

    詳解Golang中NewTimer計時器的底層實現原理

    本文將主要介紹一下Go語言中的NewTimer,首先展示基于NewTimer創(chuàng)建的定時器來實現超時控制。接著通過一系列問題的跟進,展示了NewTimer的底層實現原理,需要的可以參考一下
    2023-05-05
  • Go使用context控制協(xié)程取消的實戰(zhàn)案例

    Go使用context控制協(xié)程取消的實戰(zhàn)案例

    在并發(fā)編程中,合理地控制協(xié)程的生命周期是保證程序穩(wěn)定性和資源可控使用的關鍵,Go語言標準庫中的context包正是為了解決這一問題而生,它為我們提供了取消信號、超時控制、請求作用域的值傳遞等功能,本文將通過一個實際案例,演示如何使用context控制協(xié)程的取消
    2025-08-08
  • Go語言中調用外部命令的方法總結

    Go語言中調用外部命令的方法總結

    在工作中,我們時不時地會需要在Go中調用外部命令。本文為大家總結了Go語言中調用外部命令的幾種姿勢,感興趣的小伙伴可以跟隨小編一起學習一下
    2022-11-11
  • Go語言實現讀取文件的方式總結

    Go語言實現讀取文件的方式總結

    這篇文章主要為大家詳細介紹了Go語言實現讀取文件的幾個方式,文中的示例代碼講解詳細,對我們學習Go語言有一定的幫助,感興趣的小伙伴可以收藏一下
    2023-04-04
  • go實現冒泡排序的示例代碼

    go實現冒泡排序的示例代碼

    這篇文章主要介紹了go實現冒泡排序的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • Go語言中的內存布局詳解

    Go語言中的內存布局詳解

    這篇文章主要給大家介紹了Go語言中的內存布局,那么本文中將嘗試解釋Go如何在內存中構建結構體,以及結構體在字節(jié)和比特位方面是什么樣子。 有需要的朋友們可以參考借鑒,感興趣的朋友們下面來跟著小編一起學習學習吧。
    2016-11-11

最新評論

巴彦淖尔市| 昭觉县| 彭水| 平昌县| 鄢陵县| 丽江市| 涟水县| 邵阳市| 游戏| 手游| 新巴尔虎右旗| 中西区| 星座| 太保市| 哈巴河县| 高州市| 白玉县| 万州区| 天水市| 肥乡县| 伊宁县| 隆德县| 克什克腾旗| 桐柏县| 昔阳县| 留坝县| 齐河县| 乌拉特后旗| 尤溪县| 河间市| 红桥区| 竹山县| 新闻| 合江县| 武义县| 澄城县| 临沭县| 八宿县| 萝北县| 敦煌市| 双辽市|