📈
InfluxDBv2 CLIでSQLのDELETEあるいはTRUNCATE相当の事をする場合
macOSでの小さなハマりごと。date -u
オプションを使いましょう。
公式ドキュメント
influx delete
コマンドでできる。
今現在のドキュメントには次のコマンドラインで例示がされている。
influx delete --bucket example-bucket \
--start '1970-01-01T00:00:00Z' \
--stop $(date --utc +"%Y-%m-%dT%H:%M:%SZ") \
--predicate '_measurement="example-measurement" AND exampleTag="exampleTagValue"'
macOSでの問題点
しかし上記のコマンドの3行目までをmacOSでコピペし、条件を変えてもその手前で動かない。
問題点は単純にdate
コマンドオプションが異なり-—utc
を使っているから。
GNUとBSDのdate
コマンドの相違については次の記事を参照
それぞれのman date
を見てみると。
GNU date (Debian)
-u, --utc, --universal
print or set Coordinated Universal Time (UTC)
BSD date (macOS)
-u Display or set the date in UTC (Coordinated Universal) time. By default date displays the time in the time zone described by /etc/localtime or the TZ environment variable.
BSDでは-u
のみGNUでは-u
も-—utc
も-—universal
も受け付ける。
ということで
どっちもOKなdate -u
が良い。
条件なしで全件削除の場合は
$ influx delete --bucket example-bucket \
--start '1970-01-01T00:00:00Z' \
--stop $(date -u +"%Y-%m-%dT%H:%M:%SZ")
InfluxDataのドキュメントのCLIインストール説明ではmacOSが最初に書かれているのに…
-u
で例示してくれれば、macOSでもLinuxでも両方コピペで動くのにねぇ。
Discussion