English | Русский | 中文# IoTDB
# Описание
IoTDB (Internet of Things Database) — это система управления данными для временных рядов, которая предоставляет пользователям специальные услуги по сбору, хранению и анализу данных. IoTDB благодаря своей легковесной структуре, высокой производительности и доступным характеристикам, а также благодаря бесшовному интегрированию с экосистемой Hadoop и Spark, удовлетворяет потребности промышленных систем IoT в хранении больших объемов данных, записи данных с высокой пропускной способностью и сложном анализе данных.
Основные характеристики IoTDB следующие:1. Гибкая стратегия развертывания. IoTDB предоставляет пользователям инструмент для одноклик-установки на облачных платформах или терминальных устройствах, а также инструмент для синхронизации данных между облачной платформой и терминалами. 2. Низкие затраты на оборудование. IoTDB обеспечивает высокий уровень сжатия данных на жёстком диске. 3. Эффективная структура каталога. IoTDB поддерживает эффективную организацию сложных временных рядов данных для умных сетевых устройств, а также поддерживает размытое поисковое решение для каталогов с огромным количеством сложных временных рядов данных. 4. Высокая пропускная способность чтения и записи. IoTDB поддерживает сильное соединение данных для доступа к данным от миллионов низкоэнергетических устройств, а также быстрое чтение и запись данных, что делает его подходящим для умных сетевых устройств и смешанных устройств. 5. Обширные семантические запросы. IoTDB поддерживает временные ряды данных, синхронизированные по времени между устройствами и измерениями, вычисление временных рядовых полей (преобразование в частотную область) и поддержку обширных агрегирующих функций по временной оси. 6. Очень низкий порог входа. IoTDB поддерживает язык, похожий на SQL, стандартные API JDBC и удобные инструменты импорта/экспорта. 7. Гладкую интеграцию с передовыми открытыми экосистемами.IoTDB поддерживает аналитические экосистемы, такие как Hadoop, Spark и средства визуализации (например, Grafana).Для получения последней информации о IoTDB посетите официальный сайт IoTDB. Если вы столкнулись с проблемами или обнаружили ошибки при использовании IoTDB, пожалуйста, отправьте их в JIRA.
Эта краткая инструкция поможет вам начать работу с IoTDB. Для более подробной информации посетите наш сайт руководство пользователя.
Чтобы использовать IoTDB, вам потребуется:
IoTDB предлагает три метода установки. Вы можете выбрать наиболее подходящий для вас метод, руководствуясь следующими рекомендациями:
Установка из исходного кода. Этот метод подходит, если вам нужно вносить изменения в исходный код.
Установка из двоичных файлов. Рекомендуемый метод — загрузка двоичных файлов с официального сайта. Вы получите готовый к использованию пакет.
Использование Docker: путь до dockerfile — https://github.com/apache/iotdb/tree/master/docker/src/main
В этом руководстве мы кратко рассмотрим процесс установки IoTDB из исходного кода. Для получения дополнительной информации обратитесь к разделу 3 «Руководства пользователя».
{project_root}\thrift\target\tools\thrift_0.12.0_0.13.0_linux.exe
. Если у вас уже установлен совместимый компилятор Thrift, вы можете указать его при запуске Maven с помощью следующих параметров: -Dthrift.download-url=http://apache.org/licenses/LICENSE-2.0.txt -Dthrift.exec.absolute.path=<YOUR LOCAL THRIFT BINARY FILE>
. Вы также можете использовать следующие параметры Maven для изменения адреса загрузки компилятора Thrift: -Dthrift.download-url=<THE REMOTE URL FOR DOWNLOADING> -Dthrift.exec.absolute.path=<THE DOWNLOADED BINARY FILE NAME>
.Если вы достаточно знакомы с Maven, вы можете напрямую изменить наш корневой файл pom, чтобы избежать использования этих параметров каждый раз при сборке. Официальный сайт Thrift: https://thrift.apache.org/Склонировать исходный код из git:```git clone https://github.com/apache/iotdb.git
Основной веткой по умолчанию является `dev`. Если вы хотите использовать какой-либо выпуск `x.x.x`, переключитесь на соответствующую ветку:
git checkout release/x.x.x
В корневой директории `iotdb` выполните сборку с помощью Maven:
mvn clean package -DskipTests
После завершения сборки, в директории **distribution/target/apache-iotdb-{project.version}-bin.zip** будет находиться скомпилированная версия (включая сервер и клиент).
> Внимание: Директории "thrift/target/generated-sources/thrift" и "antlr/target/generated-sources/antlr4" должны быть добавлены в корневую директорию исходного кода, чтобы избежать ошибок компиляции в IDE.
### Конфигурация
Файлы конфигурации находятся в папке "conf".
* Модуль конфигурации окружения (`iotdb-env.bat`, `iotdb-env.sh`),
* Модуль системной конфигурации (`iotdb-engine.properties`),
* Модуль конфигурации логирования (`logback.xml`).
Дополнительная информация доступна в [Главе 3: Сервер](http://iotdb.apache.org/ru/UserGuide/Master/Server/Config%20Manual.html).
## Начало работы
Вы можете проверить установку следующими шагами. Если после выполнения команд нет ошибок, то установка завершена успешно.
### Запуск IoTDB
IoTDB можно запустить, выполнив скрипт `start-server` из папки `sbin`.
nohup sbin/start-server.sh >/dev/null 2>&1 & или nohup sbin/start-server.sh -c <conf_path> -rpc_port <rpc_port> >/dev/null 2>&1 &
> sbin\start-server.bat -c <conf_path> -rpc_port <rpc_port>
-c
и -rpc_port
являются необязательными.-c
указывает путь к директории с конфигурационными файлами.-rpc_port
указывает порт RPC при запуске.-rpc_port
переопределит конфигурацию в conf_path
.
#### Использование CLI
IoTDB предоставляет различные способы взаимодействия с сервером. Здесь мы рассмотрим базовые шаги для вставки и запроса данных с использованием CLI.
После установки IoTDB есть пользователь по умолчанию `root`, у которого пароль также `root`. Этот пользователь может войти в CLI и использовать IoTDB. Скрипт запуска CLI находится в папке sbin. При выполнении скрипта пользователь должен указать IP, порт, имя пользователя и пароль. По умолчанию параметры равны `-h 127.0.0.1 -p 6667 -u root -pw root`.
Вот пример команды для запуска CLI:
sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root
> sbin\start-cli.bat -h 127.0.0.1 -p 6667 -u root -pw root
|_ | | _ _ || _ .|_ _ \ | | .--.|_/ | | \_| | |
. \ | |) |
| | / .'`\ \ | | | | | | | __'.
| || _. | | | | |.' /| |) |
||'..' || |.'|______/ версия x.x.x
IoTDB> успешно выполнен вход IoTDB>
#### Основные команды IoTDB
Теперь давайте рассмотрим способы создания временных рядов, вставки данных и запроса данных.
Данные в IoTDB организованы в виде временных рядов. Каждый временной ряд состоит из нескольких пар «данные-время» и принадлежит к одной группе хранения. Перед определением временного ряда следует сначала использовать команду SET STORAGE GROUP для определения группы хранения. Пример:
IoTDB> SET STORAGE GROUP TO root.ln
Можно также использовать команду `SHOW STORAGE GROUP` для проверки создаваемой группы хранения:```
IoTDB> SHOW STORAGE GROUP
+-----------------------------------+
| Storage Group|
+-----------------------------------+
| root.ln|
+-----------------------------------+
storage group 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 root
).
Вот несколько примеров:
IoTDB> SHOW TIMESERIES
+-------------------------------+------+---------------------+--------+--------+-----------+----+----------+
| timeseries | alias| storage group|datatype|encoding|compression|tags|attributes|
+-------------------------------+------+---------------------+--------+--------+-----------+----+----------+
| root.ln.wf01.wt01.status| null| root.ln| BOOLEAN| PLAIN| SNAPPY|null| null|
| root.ln.wf01.wt01.temperature| null| root.ln| FLOAT| RLE| SNAPPY|null| null|
+-------------------------------+------+---------------------+--------+--------+-----------+----+----------+
total number of timeseries = 2
IoTDB> SHOW TIMESERIES root.ln.wf01.wt01.status
+-------------------------------+------+-------------+--------+--------+-----------+----+----------+
| timeseries | alias|storage group|dataType|encoding|compression|tags|attributes|
+-------------------------------+------+-------------+--------+--------+-----------+----+----------+
| root.ln.wf01.wt01.status| null| root.ln| BOOLEAN| PLAIN| SNAPPY|null| null|
+-------------------------------+------+-------------+--------+--------+-----------+----+----------+
Общее количество timeseries = 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-01T08:00:00.100| true|
|1970-01-01T08:00:00.200| false|
+-----------------------+------------------------+
Общее количество строк = 2
```
Вы также можете использовать один SQL-запрос для получения данных из нескольких timeseries:
```
IoTDB> SELECT * FROM root.ln.wf01.wt01
+-----------------------+--------------------------+-----------------------------+
| Time| root.ln.wf01.wt01.status|root.ln.wf01.wt01.temperature|
+-----------------------+--------------------------+-----------------------------+
|1970-01-01T08:00:00.100| true| null|
|1970-01-01T08:00:00.200| false| 20.71|
+-----------------------+--------------------------+-----------------------------+
Общее количество строк = 2
```
Для выхода из системы используйте следующие команды:
```
IoTDB> quit
или
IoTDB> exit
```
Дополнительную информацию о командах, поддерживаемых IoTDB SQL, можно найти в [документации по SQL](http://iotdb.apache.org/zh/UserGuide/Master/Operation%20Manual/SQL%20Reference.html).
### Остановка IoTDB
Сервер можно остановить с помощью "Ctrl+C" или выполнением следующих скриптов:
```
# Unix/OS X
> sbin/stop-server.sh
# Windows
> sbin\stop-server.bat
```
## Компиляция только сервера
Выполните команду в корневой директории проекта:
```
> mvn clean package -pl server -am -DskipTests
```
После компиляции, IoTDB сервер будет создан в директории: "server/target/iotdb-server-{project.version}".
## Компиляция только CLI
Выполните команду в корневой директории проекта:
```
> mvn clean package -pl cli -am -DskipTests
```
После компиляции, IoTDB CLI будет создан в директории "cli/target/iotdb-cli-{project.version}".
# Инструмент импорта/экспорта CSV
Для просмотра [инструмента импорта/экспорта CSV](https://iotdb.apache.org/ru/UserGuide/Master/System%20Tools/CSV%20Tool.html)
# Частые ошибки при компиляции
Для просмотра [частых ошибок при компиляции](https://iotdb.apache.org/ru/Development/ContributeGuide.html#%D1%87%D0%B0%D1%81%D1%82%D1%8B%D0%B5-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8-%D0%BF%D1%80%D0%B8-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8)
# Контакты
### QQ группы
* Группа общения Apache IoTDB: 659990460
### Группа WeChat
* Добавьте в друзья tietouqiao, мы пригласим вас в группу
Для получения дополнительной информации, просмотрите [вступление в сообщество](https://github.com/apache/iotdb/issues/1995)
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )