TSDB for InfluxDB® は 2026 年 10 月 23 日にサービス提供を終了します。サービスの中断を避けるため、できるだけ早くデータを移行してください。このトピックでは、TSDB for InfluxDB® のデータ移行ソリューションについて説明します。
TSDB for InfluxDB® のサービス提供終了に関する詳細については、関連する通知をご参照ください。
移行ソリューションの選択
ビジネスニーズに基づいて移行ソリューションを選択します。
同等の移行の場合:セルフホスト型 InfluxDB インスタンスを使用します。
分散データベースを必要とする大規模データの場合:
時系列モニタリングのシナリオの場合:LindormTSDB を使用します。LindormTSDB は InfluxQL クエリ言語と互換性がないことにご注意ください。ご利用のアプリケーションのクエリコードを修正する必要があります。コードの修正が可能な場合は、LindormTSDB への移行を推奨します。
その他の時系列シナリオの場合:他の分散型時系列データベースソリューションを評価します。
TSDB for InfluxDB® からセルフホスト型 InfluxDB インスタンスへの移行
前提条件
ご利用の TSDB for InfluxDB® インスタンスを最新バージョン (1.8.14) にスペックアップする必要があります。
バックアップポート 8088 を有効にする必要があります。
Alibaba Cloud チケットシステムからチケットを送信して、バックアップポートを開くことができます。
セルフホスト型 InfluxDB インスタンスと TSDB for InfluxDB® インスタンスは、同じリージョン、ゾーン、VPC にある必要があります。また、同じインスタンスタイプを使用し、同じ vSwitch に接続されている必要があります。
このトピックでは、Elastic Compute Service (ECS) 環境を例として使用します。これらの条件を満たす ECS インスタンスを購入し、セルフホスト型 InfluxDB V1.8.10 をインストールします。詳細については、「サブスクリプションインスタンスのクイック購入」をご参照ください。
移行プロセスを理解するには、InfluxDB 公式ドキュメントの「バックアップと復元」セクションをご参照ください。
注意事項
バックアップと復元のプロセスは、既存データの移行のみをサポートし、増分データ移行はサポートしていません。そのため、既存データを移行する前に、TSDB for InfluxDB® インスタンスとセルフホスト型 InfluxDB インスタンスの両方に同時にデータを書き込む必要があります。
バックアップには追加のストレージ容量が必要です。利用可能なストレージ容量がデータサイズの 2 倍以上あることを確認してください。
インスタンスの現在のメモリ使用量が 80% を超える場合は、データをバックアップして移行する前にインスタンスをスペックアップしてください。
データはシャードごとにバックアップする必要があります。これには、バックアップ対象のデータベース、保持ポリシー、シャードを指定する必要があります。
バックアップ
セルフホスト型 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 を確認できます。バックアップファイルの保存先フォルダへのパスです。
データの復元
手順については、公式ドキュメントの「バックアップされたデータを既存のデータベースに復元する方法」をご参照ください。
セルフホスト型 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:復元用の一時データベースの名前です。
バックアップファイルが含まれるフォルダへのパスです。
InfluxQL を使用して一時データベースからデータをクエリし、ターゲットデータベースに書き戻します。
SELECT * INTO "example_db"."example_rp".:MEASUREMENT FROM "example_tmp_db".autogen./.*/ GROUP BY *一時データベースを削除します。
DROP DATABASE "example_tmp_db"
TSDB for InfluxDB® から別のデータベース (LindormTSDB を含む) への移行
注意事項
クエリにはタグと時間フィルター条件を追加する必要があります。そうしないと、大規模なクエリによってインスタンスが不安定になる可能性があります。
データを CSV ファイルにエクスポートする
Influx-cli ツール (V1.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 列です。この列が不要な場合は、次のコマンドを実行します。
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:LindormTSDB へのデータのインポート
Influx-cli ツール (V1.x) を使用して、ご利用の TSDB for InfluxDB® インスタンスからデータをエクスポートします。
精度を ms または rfc3339 に設定し、メジャメント列を削除します。
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.csvLindormTSDB で、ターゲットデータベースとテーブルを作成します。すべてのフィールドを事前に作成する必要があります。
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 へのデータのインポート
次のツールをダウンロードします。
InfluxDB デプロイメントパッケージに含まれるもの: Influx-cli (V1.x)
個別のデプロイメントパッケージ: Influx-cli (V2.x)
Influx-cli (V1.x) ツールを使用してデータをエクスポートします。
次の 2 点にご注意ください:
精度を指定する必要はありません。
メジャー列を保持してください。
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
Influx-cli (V2.x) ツールを使用して、CSV ファイルを line protocol ファイルに変換します。詳細については、「InfluxDB への CSV データの書き込み」をご参照ください。
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です。詳細については、「ヘッダーフォーマット」をご参照ください。時間型に関する詳細については、「時間型を指定する」をご参照ください。line protocol ファイルをセルフホスト型 InfluxDB V1.x インスタンスに書き込みます。