英語 | 中国語
IoTDB (Internet of Things Database) は、時系列データのデータ管理システムであり、データの収集、保管、分析などの特定のサービスをユーザーに提供します。 IoTDB は、その軽量構造、高性能、使いやすい機能に加え、Hadoop および Spark エコシステムとのシームレスな統合により、産業用 IoT 分野における大規模なデータセット ストレージ、高スループットのデータ入力、および複雑なデータ分析の要件を満たします。
詳細についてはここをクリックしてください
IoTDB は、時系列データ用に設計された列指向ストレージ ファイル形式である TsFile に依存しています。 TsFile プロジェクトのブランチiotdb
、IoTDB プロジェクトの SNAPSHOT バージョンをデプロイするために使用されます。
IoTDB の主な機能は次のとおりです。
IoTDBの最新情報はIoTDB公式サイトをご覧ください。 IoTDB の使用中に問題が発生したりバグを特定した場合は、Jira で問題を報告してください。
この短いガイドでは、IoTDB を使用する基本的なプロセスについて説明します。より詳細な紹介については、当社 Web サイトのユーザー ガイドをご覧ください。
IoTDB を使用するには、以下が必要です。
# Linux
> sudo sysctl -w net.core.somaxconn=65535
# FreeBSD or Darwin
> sudo sysctl -w kern.ipc.somaxconn=65535
(このガイドは、Ubuntu 22.04 のインストールに基づいています。)
Git
がインストールされていることを確認してください。Git がインストールされていない場合は、次の方法でインストールしてください。
sudo apt install git
Java
がインストールされていることを確認してください。Java がインストールされていない場合は、次の方法でインストールしてください。
sudo apt install default-jdk
sudo apt install flex
sudo apt install bison
sudo apt install libboost-all-dev
通常、OpenSSL はすでにインストールされていますが、コンパイルする必要があるヘッダー ファイルが欠落しています。したがって、これらがインストールされていることを確認してください。
sudo apt install libssl-dev
まずgit
動作することを確認します。
通常、新しい Mac では、 Terminal
ウィンドウにgit
と入力するとすぐに、ポップアップが表示され、Mac 開発者ツールのインストールを完了するかどうかを尋ねられます。ただ「はい」と言ってください。これが完了すると、すぐにgit
自由に使用できるようになります。
次に、 Homebrew
インストールします。これがまだインストールされていない場合は、 Homebrew
使用してすべてをインストールします。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Java
がまだインストールされていない場合は、それが完了したらすぐにインストールします。
brew install java
Homebrew のバージョンに応じて、次のいずれかを実行するように指示されます (デバイスのプロセッサの種類に応じて)。
主に Intel ベースのモデル:
sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
主に ARM ベースのモデル:
sudo ln -sfn /opt/homebrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
Thrift
構築するには、さらに 2 つの依存関係を図に追加する必要があります。
ただし、これはwith-cpp
プロファイルを有効にする場合にのみ必要です。
brew install boost
brew install bison
brew install openssl
次に、 Chocolatey
インストールします。これがまだインストールされていない場合は、 Chocolatey
使用してすべてをインストールします。
https://chocolatey.org/install
choco install git.install
choco install openjdk
choco install visualstudio2022community
choco install visualstudio2022buildtools
choco install visualstudio2022-workload-nativedesktop
choco install winflexbison
choco install boost-msvc-14.2
choco install openssl
IoTDB には 3 つのインストール方法が用意されており、次の提案を参照して、最適なものを選択してください。
このクイック スタートでは、ソース コードを使用して IoTDB をインストールする方法を簡単に紹介します。詳細については、ユーザーガイドを参照してください。
Windows を使用している場合は、この章をスキップしてください。
RPC モジュール (通信およびプロトコル定義) に Thrift を使用するため、コンパイル中に Thrift が関与するため、Thrift Java コードを生成するには Thrift コンパイラ 0.13.0 (またはそれ以降) が必要です。 Thrift は Windows 用のバイナリ コンパイラを公式に提供していますが、残念ながら Unix OS 用のバイナリ コンパイラは提供していません。
新しいソフトウェアをインストールする権限がある場合は、 apt install
、 yum install
、またはbrew install
使用して Thrift コンパイラをインストールします。 (すでに thrift コンパイラーをインストールしている場合は、この手順をスキップしてください。) 次に、Maven の実行時に次のパラメーターを追加できます: -Dthrift.download-url=http://apache.org/licenses/LICENSE-2.0.txt -Dthrift.exec.absolute.path=<YOUR LOCAL THRIFT BINARY FILE>
。
そうでない場合は、thrift コンパイラをコンパイルする必要があり、最初に boost ライブラリをインストールする必要があります。そこで、Unix コンパイラーを自分たちでコンパイルして GitHub に置き、Maven プラグインの助けを借りて、コンパイル中に自動的にダウンロードされるようにしました。このコンパイラは gcc8 以降、Ubuntu MacOS、CentOS で正常に動作しますが、それ以前のバージョンおよびその他の OS については保証されません。
ネットワークの問題により thrift コンパイラーを自動的にダウンロードできない場合は、自分でダウンロードしてから、次のいずれかを実行できます。 thrift ファイルの名前を{project_root}thrifttargettoolsthrift_0.12.0_0.13.0_linux.exe
に変更します。 ;または、Maven コマンドを追加します: -Dthrift.download-url=http://apache.org/licenses/LICENSE-2.0.txt -Dthrift.exec.absolute.path=<YOUR LOCAL THRIFT BINARY FILE>
。
ソースコードは次からダウンロードできます。
git clone https://github.com/apache/iotdb.git
リリースされたバージョン xxx を使用する場合、デフォルトの dev ブランチは master ブランチです。
git checkout vx.x.x
または、大きなバージョンのブランチにチェックアウトします。たとえば、1.0 のブランチは rel/1.0 です。
git checkout rel/x.x
iotdb のルート パスの下:
> mvn clean package -pl distribution -am -DskipTests
ビルド後、IoTDB ディストリビューションはフォルダー「distribution/target」に配置されます。
iotdb/iotdb-client パスの下:
> mvn clean package -pl cli -am -DskipTests
ビルド後、IoTDB cli はフォルダー「cli/target」に配置されます。
cpp クライアントをコンパイルするには、 -P with-cpp
使用します。 (詳細については、client-cpp の Readme ファイルを参照してください。)
注: ディレクトリ「 thrift/target/generated-sources/thrift
」、「 thrift-sync/target/generated-sources/thrift
」、「 thrift-cluster/target/generated-sources/thrift
」、「 thrift-influxdb/target/generated-sources/thrift
" および " antlr/target/generated-sources/antlr4
" は、 IDE でのコンパイル エラーを避けるために、ソース ルートに追加する必要があります。
IDEA では、 mvn package
正常に実行した後、ルート プロジェクト名を右クリックし、「 Maven->Reload Project
」を選択するだけです。
設定ファイルは「conf」フォルダの下にあります。
datanode-env.bat
、 datanode-env.sh
)、iotdb-datanode.properties
)logback.xml
)。詳細については、設定マニュアルを参照してください。
次の手順に従ってインストールをテストできます。実行後にエラーが返されなければ、インストールは完了です。
ユーザーは、sbin フォルダーの下にある start-standalone スクリプトによって 1C1D IoTDB を起動できます。
# Unix/OS X
> sbin/start-standalone.sh
# Windows
> sbinstart-standalone.bat
IoTDB はサーバーと対話するためのさまざまな方法を提供します。ここでは、Cli ツールを使用してデータを挿入およびクエリする基本的な手順を紹介します。
IoTDB をインストールすると、デフォルトのユーザー「root」が作成され、そのデフォルトのパスワードも「root」になります。ユーザーは、このデフォルト ユーザーを使用して Cli にログインし、IoTDB を使用できます。 Cli の起動スクリプトは、sbin フォルダ内の start-cli スクリプトです。スクリプトを実行するとき、ユーザーは IP、PORT、USER_NAME、および PASSWORD を割り当てる必要があります。デフォルトのパラメータは「-h 127.0.0.1 -p 6667 -u root -pw -root」です。
Cl を起動するコマンドは次のとおりです。
# Unix/OS X
> sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root
# Windows
> sbinstart-cli.bat -h 127.0.0.1 -p 6667 -u root -pw root
コマンド ライン cli は対話型であるため、すべての準備が完了すると、ようこそロゴとステートメントが表示されます。
_____ _________ ______ ______
|_ _| | _ _ ||_ _ `.|_ _
| | .--.|_/ | | _| | | `. | |_) |
| | / .'` | | | | | | | __'.
_| |_| __. | _| |_ _| |_.' /_| |__) |
|_____|'.__.' |_____| |______.'|_______/ version x.x.x
IoTDB> login successfully
IoTDB>
ここで、時系列の作成、データの挿入、データのクエリの方法を紹介します。
IoTDB のデータは時系列として編成されます。各時系列には複数のデータと時間のペアが含まれており、データベースによって所有されます。 timeseries を定義する前に、まず CREATE DATABASE を使用してデータベースを定義する必要があります。例を次に示します。
IoTDB> CREATE DATABASE root.ln
SHOW DATABASES を使用して、作成中のデータベースを確認することもできます。
IoTDB> SHOW DATABASES
+-------------+
| Database|
+-------------+
| root.ln|
+-------------+
Total line number = 1
データベースを設定したら、CREATE TIMESERIES を使用して新しい timeseries を作成できます。 timeseries を作成するときは、そのデータ型とエンコード スキームを定義する必要があります。ここでは 2 つの時系列を作成します。
IoTDB> CREATE TIMESERIES root.ln.wf01.wt01.status WITH DATATYPE=BOOLEAN, ENCODING=PLAIN
IoTDB> CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=FLOAT, ENCODING=RLE
特定の時系列をクエリするには、 SHOW TIMESERIES を使用します。時系列の位置を表します。デフォルト値は「null」で、システム内のすべての時系列をクエリします (「SHOW TIMESERIES root」を使用するのと同じです)。以下にいくつかの例を示します。
IoTDB> SHOW TIMESERIES
+-----------------------------+-----+-------------+--------+--------+-----------+----+----------+
| Timeseries|Alias|Database|DataType|Encoding|Compression|Tags|Attributes|
+-----------------------------+-----+-------------+--------+--------+-----------+----+----------+
|root.ln.wf01.wt01.temperature| null| root.ln| FLOAT| RLE| SNAPPY|null| null|
| root.ln.wf01.wt01.status| null| root.ln| BOOLEAN| PLAIN| SNAPPY|null| null|
+-----------------------------+-----+-------------+--------+--------+-----------+----+----------+
Total line number = 2
IoTDB> SHOW TIMESERIES root.ln.wf01.wt01.status
+------------------------+-----+-------------+--------+--------+-----------+----+----------+
| timeseries|alias|database|dataType|encoding|compression|tags|attributes|
+------------------------+-----+-------------+--------+--------+-----------+----+----------+
|root.ln.wf01.wt01.status| null| root.ln| BOOLEAN| PLAIN| SNAPPY|null| null|
+------------------------+-----+-------------+--------+--------+-----------+----+----------+
Total line number = 1
timeseries データの挿入は IoTDB の基本操作であり、「INSERT」コマンドを使用してこれを完了できます。挿入する前に、タイムスタンプとサフィックスのパス名を割り当てる必要があります。
IoTDB> INSERT INTO root.ln.wf01.wt01(timestamp,status) values(100,true);
IoTDB> INSERT INTO root.ln.wf01.wt01(timestamp,status,temperature) values(200,false,20.71)
挿入したデータは次のように表示されます。
IoTDB> SELECT status FROM root.ln.wf01.wt01
+------------------------+------------------------+
| Time|root.ln.wf01.wt01.status|
+------------------------+------------------------+
|1970-01-01T00:00:00.100Z| true|
|1970-01-01T00:00:00.200Z| false|
+------------------------+------------------------+
Total line number = 2
1 つの SQL ステートメントを使用して、複数の時系列データをクエリすることもできます。
IoTDB> SELECT * FROM root.ln.wf01.wt01
+------------------------+-----------------------------+------------------------+
| Time|root.ln.wf01.wt01.temperature|root.ln.wf01.wt01.status|
+------------------------+-----------------------------+------------------------+
|1970-01-01T00:00:00.100Z| null| true|
|1970-01-01T00:00:00.200Z| 20.71| false|
+------------------------+-----------------------------+------------------------+
Total line number = 2
Cli でタイムゾーンを変更するには、次の SQL を使用できます。
IoTDB> SET time_zone=+08:00
Time zone has set to +08:00
IoTDB> SHOW time_zone
Current time zone: Asia/Shanghai
追加すると、新しいタイムゾーンを使用してクエリ結果が表示されます。
IoTDB> SELECT * FROM root.ln.wf01.wt01
+-----------------------------+-----------------------------+------------------------+
| Time|root.ln.wf01.wt01.temperature|root.ln.wf01.wt01.status|
+-----------------------------+-----------------------------+------------------------+
|1970-01-01T08:00:00.100+08:00| null| true|
|1970-01-01T08:00:00.200+08:00| 20.71| false|
+-----------------------------+-----------------------------+------------------------+
Total line number = 2
Cli を終了するコマンドは次のとおりです。
IoTDB> quit
or
IoTDB> exit
IoTDB SQL でサポートされるコマンドの詳細については、ユーザー ガイドを参照してください。
サーバーは「ctrl-C」または次のスクリプトで停止できます。
# Unix/OS X
> sbin/stop-standalone.sh
# Windows
> sbinstop-standalone.bat
「CSV インポートおよびエクスポート ツールの使用」を参照してください。
ソースコードをコンパイルする際のよくある質問を参照してください。
tietouqiao
またはliutaohua001
、グループに招待します。詳細については、コミュニティに参加するを参照してください。