2017-02-01 15 views
4

ホスト名を使用するデータが挿入されています。私はドメインを.lanから.mydomain.comに変更しようとしています。InfluxDBのタグ値を変更します

明らかに私はこの変更を横切ってマシンの履歴データを検索できるようにしたいと思います。

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

+1

InfluenceDBは、[タグの更新](https://github.com/influxdata/influxdb/issues/4157#issuecomment-354939104)のようないくつかの基本的な(SQLから来るものへの)操作をサポートしていません。 NULLs](https://github.com/influxdata/docs.influxdata.com/issues/717)、[フィールドの更新](https://stackoverflow.com/questions/48070399/update-field-value-in-influxdb )、[フィールドの削除](https://github.com/influxdata/influxdb/issues/6150)、または[IN](https://github.com/influxdata/influxdb/issues/2157)のような演算子です。 –

答えて

2

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

+0

新しいタグ名を手動で指定して、あるテーブルから別のテーブルにデータをコピーしようとしましたが、そのどちらもできないようです。 – dcole

+0

すべてのデータを照会し、手動で名前を変更してから書き直すことができます。 –

+0

csvにダンプしますか?それは可能ですか?そして輸入? – dcole

1

@ Michaelの答えは、InfluxDBコマンドでタグ値を変更できないという点で正しいですが、"duplicate"ポイントを同じタイムスタンプで挿入してタグ値を変更できるクライアントスクリプトを作成することはできますが、フィールドセットとタグセットを除いて、必要なタグの値が変更されます。 (Line Protocol形式で)間違ったタグと

ポイント:

cpu,hostname=machine.lan cpu=50 151497

スクリプトがすべて実行された後、CPU SELECT * FROMが

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

が含まれるであろう

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

を実行した後INSERTコマンドを使用する場合は、古いタグ値を使用して廃止された一連の点を削除する必要があります。もちろん

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

、これは非常に非効率的である(this bug特に注意してください)、あなたがanother tag value that other points you don't want to drop already haveにタグ値を更新する必要がある場合は、あなただけではなくできDROP SERIES。だからvote for InfluxDB to implement tag renamingと特にWHEREクエリに基づいてタグ値を変更してください。または、Timescaleのような通常のSQLを使用できる別の時系列データベースを検討してください。

関連する問題