0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何將數(shù)據(jù)從MySQL遷移到Influxdb中

科技綠洲 ? 來(lái)源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-11-02 10:54 ? 次閱讀

如果以前是將時(shí)序數(shù)據(jù)存放在MySQL,現(xiàn)在為了獲取更好的性能和使用可視化工具,我們需要將數(shù)據(jù)從MySQL遷移到Influxdb中。

這看起來(lái)是一個(gè)常見(jiàn)場(chǎng)景,經(jīng)過(guò)一番查閱,發(fā)現(xiàn)了 GreatLakesEnergy /Mysql-to-influxdb 這個(gè)項(xiàng)目。

可惜的是,作者是基于Python2進(jìn)行開(kāi)發(fā)的,而且用了幾個(gè)非常難搭建的模塊。想在Python3中重新使用這個(gè)項(xiàng)目比較困難。所以我Fork了作者的代碼進(jìn)行改造,改造后的代碼如下:

https://github.com/Ckend/Mysql-to-influxdb

如果你有這樣的遷移需求,可以繼續(xù)看下面的詳細(xì)教程。

1.準(zhǔn)備

開(kāi)始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上噢,如果沒(méi)有,請(qǐng)?jiān)L問(wèn)這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda

Windows環(huán)境下打開(kāi)Cmd(開(kāi)始—運(yùn)行—CMD),蘋果系統(tǒng)環(huán)境下請(qǐng)打開(kāi)Terminal(command+空格輸入Terminal),準(zhǔn)備開(kāi)始輸入命令安裝依賴。

當(dāng)然,我更推薦大家用VSCode編輯器,把本文代碼Copy下來(lái),在編輯器下方的終端運(yùn)行命令安裝依賴模塊,多舒服的一件事?。?a href="http://wenjunhu.com/outside?redirect=http://mp.weixin.qq.com/s?__biz=MzI3MzM0ODU4Mg==&mid=2247485849&idx=1&sn=ec098cf67a55bd1d61d4513397434c94&chksm=eb25eb10dc52620682db716d206c18b00bd53c01743729a9dea381e1791566a04a06f1fabca5&scene=21#wechat_redirect" target="_blank">Python 編程的最好搭檔—VSCode 詳細(xì)指南。

下載或Git Clone我修改好的代碼:
https://github.com/Ckend/Mysql-to-influxdb

解壓進(jìn)入該目錄后,輸入以下命令安裝依賴:

pip install -r requirements.txt

2.遷移配置

在遷移開(kāi)始前,請(qǐng)?jiān)谀阈枰w移的表里加一個(gè)字段 transfered,這個(gè)字段用于檢測(cè)某條數(shù)據(jù)是否被遷移,默認(rèn)設(shè)為0。一旦遷移完成,這個(gè)字段會(huì)被設(shè)為1.

此外,你需要找到你表里的時(shí)間序列字段(time)和分類字段(tag)。

分類字段可能比較難理解,比如說(shuō)你有一張表記錄了每支股票每天的開(kāi)盤價(jià),那么股票id字段便可理解為一個(gè)tag,即下面配置中的siteid_field.

在解壓后的目錄里新建一個(gè)settings.ini, 配置以下信息

[mysql]
host: mysql host # (本地為127.0.0.1)
port: mysql 端口號(hào) # 3306
username: 用戶名
password: 密碼
db: 數(shù)據(jù)庫(kù)
table: 要遷移的表
check_field: 檢測(cè)字段
time_field: 時(shí)間字段
siteid_field: 分類字段(tag)




[influx]
host: influxdb host # (本地為127.0.0.1)
port: 端口號(hào) # 8086
username: 用戶名
password: 密碼
db: 要遷移進(jìn)入的數(shù)據(jù)庫(kù)


[server]
interval: 5

配置完上述信息后,執(zhí)行命令即可開(kāi)始遷移:

python mysql2influx.py -d -c settings.ini -s

3.遷移是否完成

如何檢測(cè)遷移任務(wù)是否完成,還記得我們剛新增了一個(gè)字段 transfered 用于檢測(cè)某條數(shù)據(jù)是否被遷移嗎?

你只需要在mysql中輸入以下sql查詢是否還有未被遷移的數(shù)據(jù)即可:

SELECT count(1) FROM your_table where transfered = 0;

若不為0則說(shuō)明還有數(shù)據(jù)未被遷移成功。

不過(guò)值得注意的是,遷移腳本里是先進(jìn)行數(shù)據(jù)遷移,再回來(lái)修改transfered的值。

如果你的數(shù)據(jù)量非常大,更新MySQL數(shù)據(jù)有可能會(huì)耗時(shí)極長(zhǎng),因此查詢transfered數(shù)量的結(jié)果有可能不正確。這點(diǎn)需要特別關(guān)注。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7030

    瀏覽量

    89034
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4788

    瀏覽量

    68612
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    809

    瀏覽量

    26569
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何將DynamoDB的數(shù)據(jù)增量遷移到表格存儲(chǔ)

    何使用 Lambda DynamoDB 的數(shù)據(jù)增量遷移到表格存儲(chǔ)。Amazon DynamoDB是一個(gè)完全托管的NoSQL數(shù)據(jù)庫(kù)服務(wù),
    發(fā)表于 05-24 16:29

    如何將EDK planAhead項(xiàng)目遷移到vivado

    大家好,我正在EDK planAhead項(xiàng)目遷移到vivado。在遷移我的一個(gè)pcoreblock時(shí),我收到了該錯(cuò)誤,并且遷移根本沒(méi)有發(fā)生?!板e(cuò)誤:[filemgmt 20-730]
    發(fā)表于 05-05 16:59

    如何將CCSv3.3遷移到CCSv4?

    如何將CCSv3.3遷移到CCSv4
    發(fā)表于 02-25 07:15

    如何將SES工程GNU工具鏈遷移到Segger工具鏈上?

    的STM32F401RE的GNU工具鏈項(xiàng)目為例,介紹如何將遷移到Segger自己的工具鏈上。#遷移過(guò)程1、鏈接器改成Segger選中項(xiàng)目文件名,按右鍵,選擇Options,打開(kāi)項(xiàng)目
    發(fā)表于 04-21 14:34

    請(qǐng)問(wèn)一下mysql怎么快速遷移到oceanBase啊?

    mysql怎么快速遷移到oceanBase啊
    發(fā)表于 05-30 17:04

    如何將CubeMX項(xiàng)目從一系列MCU遷移到新系列的MCU?

    如何將 CubeMX 項(xiàng)目從一系列 MCU 遷移到新系列的 MCU?
    發(fā)表于 01-16 07:02

    如何將項(xiàng)目Arm Compiler 5遷移到Arm Compiler 6

    按照本教程的步驟,現(xiàn)有的Arm Compiler 5裸機(jī)項(xiàng)目遷移到Arm Compiler 6裸機(jī)項(xiàng)目。完成遷移后,就可以重新構(gòu)建您的可執(zhí)行并在DS-5提供的固定虛擬平臺(tái)(FVP)
    發(fā)表于 08-02 14:42

    Uber為什么Postgres遷移到MySQL

    。特別是在之前一些使用Postgres的案例,現(xiàn)在則改用Schemaless(一個(gè)基于MySQL的全新數(shù)據(jù)庫(kù)分片)。本文探索Postgres的缺陷,解釋
    發(fā)表于 09-30 14:45 ?4次下載
    Uber為什么<b class='flag-5'>從</b>Postgres<b class='flag-5'>遷移到</b><b class='flag-5'>MySQL</b>

    輕松上云系列之二:其他云數(shù)據(jù)遷移至阿里云

    本文檔圍繞如何將您其他云廠商上的數(shù)據(jù)遷移到阿里云,提供了多個(gè)場(chǎng)景的實(shí)踐方案。文檔合集AWS 數(shù)據(jù)遷移至阿里云Amazon S3
    發(fā)表于 12-19 16:16 ?425次閱讀

    如何將項(xiàng)目VDK遷移到μC/OS-III

    本培訓(xùn)模塊一步一步地說(shuō)明如何將一個(gè)項(xiàng)目VDK (VisualDSP++ Kernel)遷移到μC/OS-III?
    的頭像 發(fā)表于 07-12 06:10 ?2162次閱讀

    如何將Hadoop遷移到云平臺(tái)中?

    希望實(shí)現(xiàn)數(shù)據(jù)基礎(chǔ)設(shè)施的現(xiàn)代化并將Hadoop遷移到云平臺(tái)中嗎?以下是組織在數(shù)據(jù)遷移之前需要問(wèn)的五個(gè)問(wèn)題:
    發(fā)表于 05-05 16:59 ?857次閱讀

    如何將Keil μVision工程遷移到SEGEGR Embedded Studio?

    和GCC,也支持外部工具鏈,如Clang/LLVM、IAR或ARM/KEIL編譯器。我們以一個(gè)基于Keil μVision 5.32的項(xiàng)目為例,介紹如何將遷移到SES 。
    的頭像 發(fā)表于 01-13 11:24 ?2304次閱讀

    如何將LPC84x遷移到LPC86x

    電子發(fā)燒友網(wǎng)站提供《如何將LPC84x遷移到LPC86x.pdf》資料免費(fèi)下載
    發(fā)表于 08-16 16:56 ?0次下載
    <b class='flag-5'>如何將</b>LPC84x<b class='flag-5'>遷移到</b>LPC86x

    如何將MS訪問(wèn)數(shù)據(jù)轉(zhuǎn)換為MySQL

    借助dbForgeStudio for MySQL,您可以輕松地數(shù)據(jù)MicrosoftAccess遷移到
    的頭像 發(fā)表于 01-23 13:47 ?430次閱讀
    <b class='flag-5'>如何將</b>MS訪問(wèn)<b class='flag-5'>數(shù)據(jù)</b>轉(zhuǎn)換為<b class='flag-5'>MySQL</b>

    如何將自定義邏輯FPGA/CPLD遷移到C2000?微控制器

    電子發(fā)燒友網(wǎng)站提供《如何將自定義邏輯FPGA/CPLD遷移到C2000?微控制器.pdf》資料免費(fèi)下載
    發(fā)表于 09-23 12:36 ?0次下載
    <b class='flag-5'>如何將</b>自定義邏輯<b class='flag-5'>從</b>FPGA/CPLD<b class='flag-5'>遷移到</b>C2000?微控制器