TSDB for InfluxDB® は 2026 年 10 月 23 日にサービス終了となります。サービス中断を防ぐため、この日付までにデータを移行してください。本トピックでは、利用可能な移行ソリューションを紹介し、それぞれの移行パスについて説明します。
TSDB for InfluxDB® のサービス終了に関する詳細については、関連するお知らせをご参照ください。
移行ソリューションの選択
データ規模とターゲットデータベースに基づいて、以下のソリューションから選択してください。
| シナリオ | 推奨ソリューション |
|---|---|
| 同一技術スタックへの移行(ライク・フォー・ライク) | セルフホスト型 InfluxDB インスタンス |
| 大規模データ、時系列モニタリングワークロード | LindormTSDB |
| その他の時系列シナリオ | その他の分散型時系列データベースソリューション |
LindormTSDB は InfluxQL クエリ言語と互換性がありません。LindormTSDB への移行には、アプリケーション内のクエリコードを変更する必要があります。
セルフホスト型 InfluxDB インスタンスへの移行
この方法では、influxd backup および influxd restore を使用して、ご利用の TSDB for InfluxDB® インスタンスから Elastic Compute Service (ECS) 上で実行中のセルフホスト型 InfluxDB インスタンスへデータを転送します。
移行手順:
前提条件
開始前に、以下の条件を満たしていることを確認してください。
ご利用の TSDB for InfluxDB® インスタンスが最新バージョンである 1.8.14 にスペックアップ済みであること。
バックアップポート 8088 が有効になっていること。Alibaba Cloud チケットシステム を通じてチケットを起票し、ポートを開けてください。
セルフホスト型 InfluxDB インスタンスが、以下のすべての条件を満たしていること。
ご利用の TSDB for InfluxDB® インスタンスと同じリージョン、ゾーン、VPC 内にあること。
同じインスタンスタイプであること。
同じ vSwitch に接続されていること。
本ガイドでは、これらの条件を満たす ECS インスタンスを購入し、セルフホスト型 InfluxDB V1.8.10 をインストールしてください。ECS インスタンスの購入手順については、「サブスクリプションインスタンスのクイック購入」をご参照ください。
バックアップおよび復元プロセスの概要については、InfluxDB ドキュメントの「Backup and restore」をご参照ください。
注意事項
既存データのみ対応。 バックアップおよび復元プロセスは増分データ移行をサポートしていません。既存データの移行前に、デュアルライトを設定してください。
ストレージ要件。 宛先インスタンスの空きストレージ容量は、ご利用のデータサイズの 2 倍以上必要です。
メモリ使用量しきい値。 ご利用の TSDB for InfluxDB® インスタンスの現在のメモリ使用量が 80 %を超える場合、バックアップを開始する前にインスタンスをスペックアップしてください。
シャード単位のバックアップ。 データは 1 つのシャードずつバックアップします。各バックアップコマンドには、データベース名、保持ポリシー名、シャード ID が必要です。
dual-write の有効化
バックアップおよび復元は既存データのみをカバーするため、移行前に新しいデータを両方のインスタンスに同時に書き込むようにしてください。これにより、移行ウィンドウ中にデータが失われることを防げます。
アプリケーションを設定し、TSDB for InfluxDB® インスタンスとセルフホスト型 InfluxDB インスタンスの両方に同時に書き込むようにします。
すべての既存データの移行が完了するまで、デュアルライトをアクティブな状態にしておいてください。
データのバックアップ
セルフホスト型 InfluxDB がインストールされている ECS インスタンス上で、次のコマンドを実行します。
# 構文
influxd backup -portable \
-host <vpc-endpoint>:8088 \
-db <database-name> \
-rp <retention-policy-name> \
-shard <shard-id> \
<backup-destination-path>
# 例
influxd backup -portable \
-host ts-xxx.influxdata.tsdb.aliyuncs.com:8088 \
-db example_db \
-rp example_rp \
-shard 123 \
/root/tmp/influx_backupパラメーター:
| パラメーター | 説明 | 必須 |
|---|---|---|
-portable | ポータブルバックアップフォーマットを有効にします。 | はい |
-host | TSDB for InfluxDB® インスタンスの VPC エンドポイント(ポート 8088 含む)。この情報は、TSDB コンソール の インスタンス詳細 | はい |
-db | バックアップするデータベースの名前。データベース名は TSDB コンソールの インスタンスデータベース管理 > データベース管理 で確認できます。 | はい |
-rp | バックアップする保持ポリシーの名前。TSDB コンソールで インスタンス管理 > データベース管理 に移動し、対象データベースの 操作 列にある ストレージポリシー管理 をクリックしてください。 | はい |
-shard | バックアップするシャードの ID。show shards を実行すると、シャード ID の一覧を表示できます。 | はい |
<backup-destination-path> | バックアップファイルを保存するローカルパス(例:/root/tmp/influx_backup)。 | はい |
データの復元
詳細なリファレンスについては、InfluxDB ドキュメントの「Restore data to an existing database」をご参照ください。
ECS インスタンス上で、バックアップを一時データベースに復元します。
# 構文 influxd restore -portable \ -db <backed-up-database-name> \ -rp <backed-up-retention-policy-name> \ -shard <backed-up-shard-id> \ -newdb <temporary-database-name> \ <backup-source-path> # 例 influxd restore -portable \ -db example_db \ -rp example_rp \ -shard 123 \ -newdb example_tmp_db \ /root/tmp/influx_backupパラメーター 説明 -dbバックアップ内のデータベース名。 -rpバックアップ内の保持ポリシー名。 -shardバックアップ内のシャード ID。 -newdb復元先の一時データベース名。 <backup-source-path>バックアップファイルを含むフォルダのパス。 InfluxQL を使用して、一時データベースから宛先データベースにデータをコピーします。
SELECT * INTO "example_db"."example_rp".:MEASUREMENT FROM "example_tmp_db".autogen./.*/ GROUP BY *一時データベースを削除します。
DROP DATABASE "example_tmp_db"
すべてのデータが移行されるまで、上記ステップ 1~3 を各シャードに対して繰り返してください。
他のデータベース(LindormTSDB を含む)への移行
この方法では、TSDB for InfluxDB® からデータを CSV ファイルにエクスポートし、その後ターゲットデータベースにインポートします。
すべてのクエリにタグおよび時間フィルター条件を追加してください。フィルター条件のないクエリは大きな結果セットを返し、インスタンスが不安定になる可能性があります。
CSV へのデータエクスポート
Influx CLI (V1.x) を使用して、データをクエリおよびエクスポートします。
# メジャー列を含めてエクスポート(InfluxDB ターゲット向けに必須)
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.csvLindormTSDB 向けにメジャー列を削除するには、出力を sed で処理します。
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 ファイルの最初の列は、メジャーを表す name 列です。sed コマンドにより、この列がファイルへの書き込み前に削除されます。
LindormTSDB へのデータインポート
上記コマンドを使用して TSDB for InfluxDB® からデータをエクスポートします(
sedを使用してメジャー列を削除)。精度はmsまたはrfc3339に設定してください。LindormTSDB で、事前にすべてのフィールドを定義したうえで、宛先データベースおよびテーブルを作成します。
Lindorm CLI を使用して CSV ファイルをインポートします。
# 構文 lindorm-cli -url jdbc:lindorm:tsdb:url=http://<lindorm-endpoint>:8242 \ -format=csv \ -input <csv-file-path> \ -database <database-name> \ -table <table-name> # 例 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
InfluxDB へのデータインポート
このパスのすべてのステップでは、Influx CLI V2.x がサポートする CSV からラインプロトコルへの変換ワークフローを使用します。
必要なツールをダウンロードします。
Influx CLI V1.x(InfluxDB デプロイメントパッケージに含まれる):influxdata/influxdb v1.8.10
Influx CLI V2.x(別パッケージ):Download and install the influx CLI
Influx CLI V1.x を使用してデータをエクスポートします。精度フラグは指定せず、メジャー列を保持してください。
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.csvInflux CLI V2.x を使用して、CSV ファイルをラインプロトコルファイルに変換します。アノテーション形式の詳細については、「Write CSV data to InfluxDB」をご参照ください。
# 構文 influx write dryrun \ --format csv \ --header "<column-name>|<data-type>|<default-value>,..." \ --skipHeader=1 \ -f <csv-file-path> \ > <line-protocol-output-path> # 例 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の形式はcolumn_name|data_type|default_valueです。時間カラムタイプの詳細については、「Specify the time type」をご参照ください。ラインプロトコルファイルをセルフホスト型 InfluxDB V1.x インスタンスに書き込みます。