influxdbのインストールと簡単な使用
8566 ワード
influxdbの簡単な使用リファレンスhttps://blog.51cto.com/caimengzhi/1895306 作者に感謝!以前はinfluxdbについて簡単な理解と入門の使用がありましたが、最近はinfluxdbを使って何かをして遊びたいので、influxdbを拾います.本編ではinfluxdbのデータベース・テーブルの概念について,添削・変更操作,RESTful操作などについてまとめる.
一、influxdbと従来のデータベースの比較ライブラリ、テーブルなどの比較:
Pointはタイムスタンプ(time)、データ(field)、タグ(tags)からなる.
ここではもう一つの名詞:series:
データベース内のすべてのデータは、グラフで表示する必要がありますが、このseriesはこのテーブルのデータを表し、グラフにいくつかの線を描くことができます.tags配列グループで計算します.具体的にはSHOW SERIES FROM「テーブル名」で問い合わせることができます.
influxdbで使用されるポートは次のとおりです.
二、インストール及び添削変更1、インストール#wgethttps://dl.influxdata.com/influxdb/releases/influxdb-1.1.0.x86_64.rpm#rpm -ivh influxdb-1.1.0.x86_64.rpm#systemctl enable influxdb#systemctl start influxdb注:この例はcentos 7/rhel 7で構成されたサービスで、rhel 6でserviceを使用してサービス構成および起動できます.
2、コマンドラインの下での作成とクエリーはinfluxコマンドで管理され、次のコマンドでデータベースを作成できます.
ライブラリを作成する操作はmysqlの下の操作と非常に似ていることがわかります.一方、influxdbの下に細分化されていないテーブルの概念では、influxdbの下のテーブルはデータベースを挿入するときに自動的に作成されます.SHOW measurementsコマンドですべてのテーブルを表示できます.これはmysqlの下のshow tablesに似ています.
update更新文はありませんが、alterコマンドがあり、influxdbでは削除操作用と更新はほとんどありません.データ保存ポリシーについては、後で説明する特殊な削除方法があります.
ユーザーの操作は次のとおりです.
influxdbの権限設定は比較的簡単で、読み取り、書き込み、ALLの数種類しかありません.詳細なユーザー権限設定は、公式ドキュメントを参照してください.https://docs.influxdata.com/influxdb/v1.0/query_language/authentication_and_authorization/.デフォルトでは、influxdbはmongodbと同様にユーザー認証をオンにしません.confファイルを変更してhttpブロックの内容を以下のように構成できます.
三、データ保存ポリシー及び連続クエリー1、データ保存ポリシー一般的には時間系列に基づくpointデータは直接削除操作を行わない.一般的に、私たちは普段現在のデータだけに関心を持っており、履歴データはずっと保存する必要はない.そうしないと、スペースが多すぎる.ここでは、データ保存ポリシー(Retention Policies)を設定し、指定した時間を超えると削除されます.
次のコマンドでポリシーを変更および削除することもできます.
2.連続クエリ(Continuous Queries)データが保存ポリシーで指定された時間を超えると削除されます.もし私たちが完全に削除したくないならば、例えば1つのデータ統計サンプリングをします:元の毎秒のデータを、1時間ごとのデータとして保存して、データの占有する空間を大幅に減らします(精度を下げる代わりに).これには、InfluxDBが提供する連続クエリー(Continuous Queries)が必要です.
現在のクエリー・ポリシーの表示
新しいContinuous Queriesの作成
新しいデータを挿入すると、SHOW MEASUREMENTSクエリで発見されます.データベースにweather 30 mという名前のものが1枚増えていることがわかります(計算済みのデータが保存されています).これらはすべてContinuous Queriesによって自動的に完了します.
Continuous Queriesの削除
四、RESTfulインタフェース操作挿入及び照会操作:
GZIP圧縮データ挿入と照会:
データ保存ポリシーおよびテーブルのキー値の挿入も指定できます.
詳細はgithubのテスト内容を参照してください.
influxであれRESETfulパラメータであれ、perttyパラメータであれば、出力のjsonフォーマットをより美しくすることができます.このほか、influxコマンドにはcolumn、CSVなどのフォーマット出力があり、influxコマンドはimportパラメータでクラスcsvクラスフォーマットのデータを入力することをサポートします.
五、influxdb.confはwebを構成して現在のバージョンのinfluxdbを管理し、デフォルトではweb管理機能がオンになっていない.influxdb.confファイルのadmin項目の構成を変更することで、Web管理インタフェースを開くことができます.具体的には、次のとおりです.
転載先:https://blog.51cto.com/oybw88/2107228
一、influxdbと従来のデータベースの比較ライブラリ、テーブルなどの比較:
influxDB
database
measurement
points
influxdb :
Pointはタイムスタンプ(time)、データ(field)、タグ(tags)からなる.
Point
time , ( )
fields ( ) : ,
tags : ,
ここではもう一つの名詞:series:
データベース内のすべてのデータは、グラフで表示する必要がありますが、このseriesはこのテーブルのデータを表し、グラフにいくつかの線を描くことができます.tags配列グループで計算します.具体的にはSHOW SERIES FROM「テーブル名」で問い合わせることができます.
influxdbで使用されるポートは次のとおりです.
8083: Web admin , http://localhost:8083
8086: HTTP API
8088: ( , bind-address, )
二、インストール及び添削変更1、インストール#wgethttps://dl.influxdata.com/influxdb/releases/influxdb-1.1.0.x86_64.rpm#rpm -ivh influxdb-1.1.0.x86_64.rpm#systemctl enable influxdb#systemctl start influxdb注:この例はcentos 7/rhel 7で構成されたサービスで、rhel 6でserviceを使用してサービス構成および起動できます.
2、コマンドラインの下での作成とクエリーはinfluxコマンドで管理され、次のコマンドでデータベースを作成できます.
> CREATE DATABASE "testDB"
> show databases //
> show databases
name: databases
---------------
name
_internal
testDB
> use testDB //
ライブラリを作成する操作はmysqlの下の操作と非常に似ていることがわかります.一方、influxdbの下に細分化されていないテーブルの概念では、influxdbの下のテーブルはデータベースを挿入するときに自動的に作成されます.SHOW measurementsコマンドですべてのテーブルを表示できます.これはmysqlの下のshow tablesに似ています.
> INSERT cpu,host=serverA,region=us_west value=0.64 // cpu
> SELECT * FROM cpu ORDER BY time DESC LIMIT 3 //
> SELECT * FROM /.*/ LIMIT 1 //
> delete from cpu where time=1480235366557373922 //
> DROP MEASUREMENT "measurementName" //
update更新文はありませんが、alterコマンドがあり、influxdbでは削除操作用と更新はほとんどありません.データ保存ポリシーについては、後で説明する特殊な削除方法があります.
ユーザーの操作は次のとおりです.
#
SHOW USERS
#
CREATE USER "username" WITH PASSWORD 'password'
#
CREATE USER "username" WITH PASSWORD 'password' WITH ALL PRIVILEGES
#
DROP USER "username"
influxdbの権限設定は比較的簡単で、読み取り、書き込み、ALLの数種類しかありません.詳細なユーザー権限設定は、公式ドキュメントを参照してください.https://docs.influxdata.com/influxdb/v1.0/query_language/authentication_and_authorization/.デフォルトでは、influxdbはmongodbと同様にユーザー認証をオンにしません.confファイルを変更してhttpブロックの内容を以下のように構成できます.
[http]
enable = true
bind-address = ":8086"
auth-enabled = true #
三、データ保存ポリシー及び連続クエリー1、データ保存ポリシー一般的には時間系列に基づくpointデータは直接削除操作を行わない.一般的に、私たちは普段現在のデータだけに関心を持っており、履歴データはずっと保存する必要はない.そうしないと、スペースが多すぎる.ここでは、データ保存ポリシー(Retention Policies)を設定し、指定した時間を超えると削除されます.
SHOW RETENTION POLICIES ON "testDB" // Retention Policies
CREATE RETENTION POLICY "rp_name" ON "db_name" DURATION 30d REPLICATION 1 DEFAULT // Retention Policies
# :
rp_name:
db_name:
30d: 30 ,30
, :h( ),w( )
REPLICATION 1: , 1
DEFAULT
次のコマンドでポリシーを変更および削除することもできます.
ALTER RETENTION POLICY "rp_name" ON db_name" DURATION 3w DEFAULT
DROP RETENTION POLICY "rp_name" ON "db_name"
2.連続クエリ(Continuous Queries)データが保存ポリシーで指定された時間を超えると削除されます.もし私たちが完全に削除したくないならば、例えば1つのデータ統計サンプリングをします:元の毎秒のデータを、1時間ごとのデータとして保存して、データの占有する空間を大幅に減らします(精度を下げる代わりに).これには、InfluxDBが提供する連続クエリー(Continuous Queries)が必要です.
現在のクエリー・ポリシーの表示
SHOW CONTINUOUS QUERIES
新しいContinuous Queriesの作成
CREATE CONTINUOUS QUERY cq_30m ON testDB BEGIN SELECT mean(temperature) INTO weather30m FROM weather GROUP BY time(30m) END
:
cq_30m:
testDB:
mean(temperature):
weather:
weather30m:
30m: 30
新しいデータを挿入すると、SHOW MEASUREMENTSクエリで発見されます.データベースにweather 30 mという名前のものが1枚増えていることがわかります(計算済みのデータが保存されています).これらはすべてContinuous Queriesによって自動的に完了します.
Continuous Queriesの削除
DROP CONTINUOUS QUERY ON
四、RESTfulインタフェース操作挿入及び照会操作:
#code from www.361way.com
now=$(date '+%FT%T.000Z')
tomorrow=$(date -v +1d '+%FT%T.000Z')
echo "creating database"
curl -G http://localhost:8086/query --data-urlencode "q=CREATE DATABASE foo"
echo "creating retention policy"
curl -G http://localhost:8086/query --data-urlencode "q=CREATE RETENTION POLICY bar ON foo DURATION INF REPLICATION 1 DEFAULT"
echo "inserting data"
curl -d "{\"database\" : \"foo\", \"retentionPolicy\" : \"bar\", \"points\": [{\"measurement\": \"cpu\", \"tags\": {\"region\":\"uswest\",\"host\": \"server01\"},\"time\": \"$now\",\"fields\": {\"value\": 100}}]}" -H "Content-Type: application/json" http://localhost:8086/write
echo "inserting data"
curl -d "{\"database\" : \"foo\", \"retentionPolicy\" : \"bar\", \"points\": [{\"measurement\": \"cpu\", \"tags\": {\"region\":\"uswest\",\"host\": \"server01\"},\"time\": \"$tomorrow\",\"fields\": {\"value\": 200}}]}" -H "Content-Type: application/json" http://localhost:8086/write
sleep 1
echo "querying data"
curl -G http://localhost:8086/query --data-urlencode "db=foo" --data-urlencode "q=SELECT count(value) FROM \"foo\".\"bar\".cpu"
echo "querying data"
curl -G http://localhost:8086/query --data-urlencode "db=foo" --data-urlencode "q=SELECT count(value) FROM \"foo\".\"bar\".cpu where time < now() + 10d"
GZIP圧縮データ挿入と照会:
#code from www.361way.com
echo "inserting data"
curl -v -i -H "Content-encoding: gzip" -H "Content-Type: application/json" -X POST -T foo.json.gz http://localhost:8086/write
rm foo.json.gz
echo "querying data with gzip encoding"
curl -v -G --compressed http://localhost:8086/query --data-urlencode "db=foo" --data-urlencode "q=SELECT sum(value) FROM \"foo\".\"bar\".cpu GROUP BY time(1h)"
データ保存ポリシーおよびテーブルのキー値の挿入も指定できます.
echo "creating retention policy"
curl -G http://localhost:8086/query --data-urlencode "q=CREATE RETENTION POLICY bar ON foo DURATION 300d REPLICATION 3 DEFAULT"
curl -d '{"database" : "foo", "retentionPolicy" : "bar", "points": [{"measurement": "network", "tags": {"host": "server01","region":"uswest"},"time": "2015-02-26T22:01:11.703Z","fields": {"rx": 2342,"tx": 9804}}]}' -H "Content-Type: application/json" http://localhost:8086/write
curl -d '{"database" : "foo", "retentionPolicy" : "bar", "points": [{"measurement": "network", "tags": {"host": "server01","region":"useast"},"time": "2015-02-27T22:01:11.703Z","fields": {"rx": 4324,"tx": 7930}}]}' -H "Content-Type: application/json" http://localhost:8086/write
詳細はgithubのテスト内容を参照してください.
influxであれRESETfulパラメータであれ、perttyパラメータであれば、出力のjsonフォーマットをより美しくすることができます.このほか、influxコマンドにはcolumn、CSVなどのフォーマット出力があり、influxコマンドはimportパラメータでクラスcsvクラスフォーマットのデータを入力することをサポートします.
五、influxdb.confはwebを構成して現在のバージョンのinfluxdbを管理し、デフォルトではweb管理機能がオンになっていない.influxdb.confファイルのadmin項目の構成を変更することで、Web管理インタフェースを開くことができます.具体的には、次のとおりです.
[admin]
#Determines whether the admin service is enabled.
enabled = true
#The default bind address used by the admin service.
bind-address = ":8083"
転載先:https://blog.51cto.com/oybw88/2107228