全部產品
Search
文件中心

Time Series Database:雲InfluxDB資料遷出方案

更新時間:Nov 30, 2025

2026年10月23日,TSDB for InfluxDB®將正式退市。為確保您的正常使用,請在退市之前儘快完成資料移轉。本文將為您詳細介紹雲InfluxDB資料遷出方案。

重要

關於TSDB for InfluxDB®退市詳情,請參見【通知】2026年10月23日時序資料庫 InfluxDB® 版退市

遷移方案選擇

根據業務需求選擇遷移方案:

  • 平遷需求時:推薦自建InfluxDB。

  • 大規模資料需使用分散式資料庫時:

    • 時序監控情境:推薦雲原生多模資料庫Lindorm時序引擎。注意:由於Lindorm時序引擎暫不相容InfluxQL查詢語言,您的應用程式代碼需要進行查詢改造。如果您接受改造,我們推薦您遷移至該引擎。

    • 其他時序情境:可評估其他分布式時序資料庫方案。

雲TSDB for InfluxDB遷移至自建InfluxDB

前提條件

  • 雲TSDB for InfluxDB已升級為最新版(1.8.14)。

  • 已開通備份連接埠號碼:8088。

    您可以通過阿里雲工單系統提交工單,開通備份連接埠號碼。

  • 需確保自建InfluxDB與雲TSDB for InfluxDB的地區、可用性區域、執行個體規格、專用網路以及虛擬交換器相同。

    本文以ECS環境為例,購買滿足上述條件的ECS執行個體並安裝V1.8.10版本的自建InfluxDB。詳情請參見快速購買執行個體一鍵購買訂用帳戶執行個體

您可以閱讀InfluxDB官網文檔備份與恢複章節瞭解遷移流程。

注意事項

  • 備份與恢複僅支援遷移歷史資料,無法保證增量資料的遷移。因此,建議您將資料同時寫入雲TSDB for InfluxDB和自建InfluxDB後再遷移歷史資料。

  • 備份期間會額外佔用儲存空間,確保有2倍儲存資料量以上的儲存空間

  • 若當前執行個體記憶體水位負載超過80%,請升配後再進行備份與遷移。

  • 按照Shard備份資料,備份需指定資料庫、保留原則、Shard。

備份Backup

在自建InfluxDB所在的ECS中執行如下命令。

influxd backup -portable \
  -host ts-xxx.influxdata.tsdb.aliyuncs.com:8088 \
  -db example_db \
  -rp example_rp \
  -shard 123 \
  /root/tmp/influx_backup

參數介紹:

  • host:雲TSDB for InfluxDB®執行個體的VPC網路地址。您可以登入TSDB控制台,在執行個體詳情頁面查看執行個體的VPC網路地址

  • -db:需要備份的資料庫名稱。您可以登入TSDB控制台,在實現資料庫管理 > 資料庫管理頁面,查看資料庫名稱。

  • -rp:需要備份的保留原則名稱。您可以登入TSDB控制台,在實現資料庫管理 > 資料庫管理頁面,單擊目標資料庫操作列中的儲存策略管理,查看保留原則名稱。

  • -shard:需要備份的分區ID。可通過show shards命令查看分區ID。

  • 備份的目標目錄。

恢複Restore

參考官網文檔,將備份後的資料恢複至已存在的資料庫

  1. 在自建InfluxDB所在的ECS中,執行如下命令,將資料恢複至臨時資料庫。

    influxd restore -portable \
      -db example_db \
      -rp example_rp \
      -shard 123 \
      -newdb example_tmp_db \
      /root/tmp/influx_backup

    參數說明:

    • -db:備份的資料庫名稱。

    • -rp:備份的保留原則名稱。

    • -shard:需要備份的分區ID。

    • newdb: 恢複的目標資料庫。

    • 資料備份所在的目標目錄。

  2. 使用InfluxQL從臨時資料庫中查詢資料並寫回至目標資料庫中。

    SELECT * INTO "example_db"."example_rp".:MEASUREMENT FROM "example_tmp_db".autogen./.*/ GROUP BY *
  3. 刪除臨時資料庫。

    DROP DATABASE "example_tmp_db"

雲TSDB for InfluxDB遷移至其他資料庫(含Lindorm時序引擎)

注意事項

查詢一定要添加Tag過濾條件和時間過濾條件,否則大查詢會造成執行個體不穩定。

匯出CSV檔案

您可以使用Influx-cli 工具(1.X版本)執行查詢,將查詢結果匯出成CSV檔案。

influx -ssl \
  -host ts-xxx.influxdata.tsdb.aliyuncs.com \
  -port 8086 \
  -username "xxx" \
  -password "xxx" \
  -format "csv" \
  -precision ms \
  -database example_db \
  -execute "select * from sensor" | \
  > /root/tmp/ouput.csv

匯出的CSV檔案第一列為name列(代表measurement),若不需要該列則使用如下命令。

influx -ssl \
  -host ts-xxx.influxdata.tsdb.aliyuncs.com \
  -port 8086 \
  -username "xxx" \
  -password "xxx" \
  -format "csv" \
  -precision ms \
  -database example_db \
  -execute "select * from sensor" | \
  sed -r 's/^[^,]+,//' | \
  > /root/tmp/ouput.csv

匯入至其他資料庫

通過開源工具或寫程式將CSV格式檔案匯入至其他資料庫。樣本如下。

樣本1:匯入至Lindorm時序引擎

  1. 使用Influx-cli 工具(1.X版本)匯出TSDB for InfluxDB®執行個體的資料。

    將precision指定為ms或rfc3339,並去除measurement列。

    influx -ssl \
      -host ts-xxx.influxdata.tsdb.aliyuncs.com \
      -port 8086 \
      -username "xxx" \
      -password "xxx" \
      -format "csv" \
      -precision ms \
      -database example_db \
      -execute "select * from sensor" | \
      sed -r 's/^[^,]+,//' | \
      > /root/tmp/ouput.csv
  2. 在Lindorm TSDB上建立目標資料庫和目標表(需提前建立所有欄位)。

  3. 通過Lindorm-cli匯入CSV檔案至目標資料庫的目標表中。

lindorm-cli -url jdbc:lindorm:tsdb:url=http://ld-xxx-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242 \
  -format=csv \
  -input /root/tmp/ouput.csv \
  -database example_db \
  -table example_table

樣本2:匯入至InfluxDB

  1. 下載以下工具。

  2. 使用 Influx-cli(1.X 版本)工具匯出資料。

    有兩點需要注意:

    1. 無需指定 precision。

    2. 保留measurement列。

      influx -ssl \
        -host ts-xxx.influxdata.tsdb.aliyuncs.com \
        -port 8086 \
        -username "xxx" \
        -password "xxx" \
        -format "csv" \
        -database example_db \
        -execute "select * from sensor" | \
        > /root/tmp/ouput.csv
  3. 使用Influx-cli(2.X 版本)工具將CSV檔案轉換成行協議檔案。詳情請參見Write CSV data to InfluxDB

    influx write dryrun \
      --format csv \
      --header "name|measurement,time|dateTime,device_id|tag,humidity|long|0,region|tag,temperature|double|0.0" \
      --skipHeader=1 \
      -f /root/tmp/ouput.csv \
      > /root/tmp/ouput.line

    參數說明:

    header:格式為列名|資料類型|預設值,詳情請參見header 格式。其中,時間類型可參考指定時間類型

  4. 將行協議檔案寫入自建的1.X 版本InfluxDB。