영어 | 중국어
IoTDB(Internet of Things Database)는 시계열 데이터에 대한 데이터 관리 시스템으로 사용자에게 데이터 수집, 저장, 분석 등 특정 서비스를 제공합니다. 경량 구조, 고성능 및 사용 가능한 기능과 Hadoop 및 Spark 에코시스템과의 원활한 통합으로 인해 IoTDB는 산업용 IoT 분야의 대규모 데이터 세트 스토리지, 높은 처리량 데이터 입력 및 복잡한 데이터 분석 요구 사항을 충족합니다.
자세한 내용을 보려면 클릭하세요.
IoTDB는 시계열 데이터용으로 설계된 열형 저장 파일 형식인 TsFile에 의존합니다. TsFile 프로젝트의 iotdb
분기는 IoTDB 프로젝트용 SNAPSHOT 버전을 배포하는 데 사용됩니다.
IoTDB의 주요 기능은 다음과 같습니다.
IoTDB에 대한 최신 정보를 확인하려면 IoTDB 공식 홈페이지를 방문하세요. IoTDB를 사용하는 동안 문제가 발생하거나 버그를 식별한 경우 Jira에서 문제를 보고해 주세요.
이 짧은 가이드는 IoTDB 사용의 기본 프로세스를 안내합니다. 자세한 소개를 보려면 당사 웹사이트의 사용자 가이드를 방문하세요.
IoTDB를 사용하려면 다음이 필요합니다.
# Linux
> sudo sysctl -w net.core.somaxconn=65535
# FreeBSD or Darwin
> sudo sysctl -w kern.ipc.somaxconn=65535
(이 가이드는 Ubuntu 22.04 설치를 기준으로 작성되었습니다.)
Git
설치되어 있는지 확인하세요. 누락된 경우 다음을 통해 간단히 설치하세요.
sudo apt install git
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
구축하려면 그림에 두 가지 종속성을 더 추가해야 합니다.
그러나 이는 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는 세 가지 설치 방법을 제공합니다. 다음 제안 사항을 참조하여 가장 적합한 방법을 선택하세요.
여기 Quick Start에서는 소스 코드를 사용하여 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>
.
그렇지 않은 경우 중고품 컴파일러를 컴파일해야 하며 먼저 부스트 라이브러리를 설치해야 합니다. 따라서 우리는 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"입니다.
Cli를 시작하는 명령은 다음과 같습니다.
# 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의 데이터는 시계열로 구성됩니다. 각 시계열은 여러 데이터-시간 쌍을 포함하며 데이터베이스가 소유합니다. 시계열을 정의하기 전에 먼저 CREATE DATABASE를 사용하여 데이터베이스를 정의해야 합니다. 예는 다음과 같습니다.
IoTDB> CREATE DATABASE root.ln
SHOW DATABASES를 사용하여 생성 중인 데이터베이스를 확인할 수도 있습니다.
IoTDB> SHOW DATABASES
+-------------+
| Database|
+-------------+
| root.ln|
+-------------+
Total line number = 1
데이터베이스가 설정된 후 CREATE TIMESERIES를 사용하여 새 시계열을 생성할 수 있습니다. 시계열을 생성할 때 데이터 유형과 인코딩 체계를 정의해야 합니다. 여기서는 두 개의 시계열을 만듭니다.
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 루트"를 사용하는 것과 동일). 다음은 몇 가지 예입니다.
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
시계열 데이터를 삽입하는 것은 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
하나의 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
, 그러면 우리가 당신을 그룹에 초대합니다.자세한 내용은 커뮤니티 가입을 참조하세요!