RM新时代网站-首页

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-11-02 10:54 ? 次閱讀

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

這看起來是一個常見場景,經(jīng)過一番查閱,發(fā)現(xiàn)了 GreatLakesEnergy /Mysql-to-influxdb 這個項目。

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

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

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

1.準備

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

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

當然,我更推薦大家用VSCode編輯器,把本文代碼Copy下來,在編輯器下方的終端運行命令安裝依賴模塊,多舒服的一件事啊:Python 編程的最好搭檔—VSCode 詳細指南。

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

解壓進入該目錄后,輸入以下命令安裝依賴:

pip install -r requirements.txt

2.遷移配置

在遷移開始前,請在你需要遷移的表里加一個字段 transfered,這個字段用于檢測某條數(shù)據(jù)是否被遷移,默認設為0。一旦遷移完成,這個字段會被設為1.

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

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

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

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




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


[server]
interval: 5

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

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

3.遷移是否完成

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

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

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

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

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

如果你的數(shù)據(jù)量非常大,更新MySQL數(shù)據(jù)有可能會耗時極長,因此查詢transfered數(shù)量的結果有可能不正確。這點需要特別關注。

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

    關注

    8

    文章

    7002

    瀏覽量

    88940
  • 代碼
    +關注

    關注

    30

    文章

    4779

    瀏覽量

    68521
  • MySQL
    +關注

    關注

    1

    文章

    804

    瀏覽量

    26528
收藏 人收藏

    評論

    相關推薦

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

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

    如何將EDK planAhead項目遷移到vivado

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

    如何將CCSv3.3遷移到CCSv4?

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

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

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

    請問一下mysql怎么快速遷移到oceanBase???

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

    如何將CubeMX項目從一系列MCU遷移到新系列的MCU?

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

    如何將項目Arm Compiler 5遷移到Arm Compiler 6

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

    Uber為什么Postgres遷移到MySQL

    。特別是在之前一些使用Postgres的案例,現(xiàn)在則改用Schemaless(一個基于MySQL的全新數(shù)據(jù)庫分片)。本文探索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ù)遷移到阿里云,提供了多個場景的實踐方案。文檔合集AWS 數(shù)據(jù)遷移至阿里云Amazon S3
    發(fā)表于 12-19 16:16 ?424次閱讀

    如何將項目VDK遷移到μC/OS-III

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

    如何將Hadoop遷移到云平臺中?

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

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

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

    如何將LPC84x遷移到LPC86x

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

    如何將MS訪問數(shù)據(jù)轉換為MySQL

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

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

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