web-dev-qa-db-ja.com

InfluxDBのタグ値を変更する

ホスト名を使用するデータが挿入されています。厄介なことに、ドメインを.lanから.mydomain.comに変更しようとしています

明らかに、マシンがこの変更を通過するときに、マシンの履歴データを検索できるようにしたいと思います。

タグ定義をmachine.lanからmachine.mydomain.comに更新できますか?

11
dcole

@Michaelの答えは正しいですが、InfluxDBコマンドを介してタグ値を変更することはできませんが、測定に "duplicate" ポイントを挿入することでタグの値を変更できるクライアントスクリプトを作成できます。タイムスタンプ、フィールドセット、タグセットは同じですが、目的のタグの値が変更されます。

間違ったタグのあるポイント( ラインプロトコル 形式):

cpu,hostname=machine.lan cpu=50 1514970123

実行した後

INSERT cpu,hostname=machine.mydomain.com cpu=50 1514970123

sELECT * FROM CPUには

cpu,hostname=machine.lan cpu=50 1514970123
cpu,hostname=machine.mydomain.com cpu=50 1514970123

スクリプトがすべてのINSERTコマンドを実行した後、古いタグ値を持つ古い一連のポイントを削除する必要があります。

DROP SERIES FROM cpu WHERE hostname='machine.lan'

もちろん、これは非常に非効率的です(特に このバグ に注意してください)。タグ値を ドロップしたくない他のポイントにすでにある別のタグ値に更新する必要がある場合) 、単にDROP SERIES。したがって、 InfluxDBがタグの名前変更を実装するための投票 、特にWHEREクエリに基づいてタグ値を変更してください。または、通常のSQLを使用できる Timescale などの代替の時系列データベースを検討してください。

8
Dan Dascalescu

残念ながら、InfluxDBの履歴データのタグ名を変更する方法はありません。

4
Michael Desa

これについては、GitHubにオープン機能のリクエストがすでにあります。 https://github.com/influxdata/influxdb/issues/4157

すべてをダンプし、変更し、パスを再インポートする場合(残忍ですが効果的)、influx開発者が提案する可能性のある解決策です。このコメントが役立つ場合があります。

https://github.com/influxdata/influxdb/issues/3904#issuecomment-26891861

4
Hardik Sondagar