在开始之前,你需要能够访问部署 InfluxDB 的服务器,以直接操作数据文件。如果你使用 InfluxDB 的 v1.8 官方 Docker 镜像运行服务器,存储数据文件的引擎路径为 /var/lib/influxdb/。
本教程将指导你如何迁移 InfluxDB 服务器上的数据,查看文末附录了解如何准备迁移环境。
在确定存储数据文件的引擎路径之后,首先创建一个 GreptimeDB 的服务作为数据迁移的目的地。
获取 GreptimeDB 集群最快的方式是注册 GreptimeCloud(https://greptime.com/product/cloud) 并启动一个 Hobby Plan Service(完全免费,不需要绑定银行卡)。
export GREPTIME_DB="<dbname>"
export GREPTIME_HOST="<host>"
export GREPTIME_USERNAME="<username>"
export GREPTIME_PASSWORD="<password>"

(图 1:创建服务后显示的示意图)
export DATABASE="<dbname>"
export ENGINE_PATH="<engine-path>"
influx_inspect export \
-database $DATABASE \
-lponly \
-datadir $ENGINE_PATH/data \
-waldir $ENGINE_PATH/wal \
-out /tmp/influxdb_export.lp
export DATABASE="mydb"
export ENGINE_PATH="/var/lib/influxdb"
docker exec influxdb1 influx_inspect export \
-database $DATABASE \
-lponly \
-datadir $ENGINE_PATH/data \
-waldir $ENGINE_PATH/wal \
-out /tmp/influxdb_export.lp
writing out wal file data for mydb/autogen...complete.
docker cp influxdb2:/influxdb_export.lp influxdb_export.lp
split -l 1000 -d -a 10 influxdb_export.lp influxdb_export_slice.
# -l [line_count] Create split files line_count lines in length.
# -d Use a numeric suffix instead of a alphabetic suffix.
# -a [suffix_length] Use suffix_length letters to form the suffix of the file name.
for file in influxdb_export_slice.*; do
curl -i -H "Authorization: token $GREPTIME_USERNAME:$GREPTIME_PASSWORD" \
-X POST "https://${GREPTIME_HOST}/v1/influxdb/api/v2/write?db=$GREPTIME_DB" \
--data-binary @${file}
# avoid rate limit in the hobby plan
sleep 1
done

(图 2:Web Dashboard 示意图)

(图 3:数据分析示意图)

(图 4:数据分析示意图 2)
附录:启动一个 InfluxDB v1 服务器
本节展示了如何启动一个 InfluxDB v1 服务器并准备示例数据。
docker run -p 8086:8086 --name influxdb1 influxdb:1.8
docker exec -it influxdb1 influx
通过 influx shell 创建一个数据库:
CREATE DATABASE mydb;
SHOW DATABASES;
然后,下载 InfluxDB 行协议格式的样例数据,并导入到刚刚创建的 mydb 数据库里:
curl -O https://raw.githubusercontent.com/influxdata/influxdb2-sample-data/master/air-sensor-data/air-sensor-data.lp
curl -i -XPOST "http://localhost:8086/write?db=mydb" --data-binary @air-sensor-data.lp
USE mydb;
SELECT COUNT(*) FROM airSensors;
name: airSensors
time count_co count_humidity count_temperature
---- -------- -------------- -----------------
0 5288 5288 5288
关于 Greptime
Greptime 格睿科技专注于为物联网(如智慧能源、智能汽车等)及可观测等产生大量时序数据的领域提供实时、高效的数据存储和分析服务,帮助客户挖掘数据的深层价值。目前主要有以下三款产品:
GreptimeDB 是一款用 Rust 语言编写的开源时序数据库,具有云原生、无限水平扩展、高性能和融合分析等特点,帮助企业实时读写、处理和分析时序数据的同时,降低长期存储的成本。我们提供 GreptimeDB 企业版,支持更多企业特性和定制化服务,如有需要欢迎联系我们:15310923206(同微信)。
GreptimeCloud 是一款全托管的云上数据库即服务(DBaaS)解决方案,基于开源时序数据库 GreptimeDB 打造,能够高效支持可观测、物联网、金融等领域的应用。用户可以通过内置的可观测性解决方案 GreptimeAI 全面掌握 LLM 应用的成本、性能、流量和安全等情况。
车云一体解决方案 是一款深入车企实际业务场景的时序数据库解决方案,解决了企业车辆数据呈几何倍数增长后的实际业务痛点。多模态车端数据库结合云端 GreptimeDB 企业版帮助车企极大降低流量、计算和存储成本,并帮助提升数据实时性和业务洞察能力。

Star us on GitHub Now:
https://github.com/GreptimeTeam/greptimedb
官网:https://greptime.cn/
文档:https://docs.greptime.cn/
Twitter: https://twitter.com/Greptime
Slack: https://greptime.com/slack
LinkedIn: https://www.linkedin.com/company/greptime/
往期精彩文章:


👇 点击下方阅读原文,立即体验 GreptimeDB!





