Apache IoTDB
Эта статья может быть слишком технической для понимания большинства читателей . ( Апрель 2023 г. ) |
Разработчик(и) | Фонд программного обеспечения Apache |
---|---|
Стабильная версия | 1.1.0
/ 3 апреля 2023 г. |
Репозиторий | github |
Написано в | Ява |
Платформа | Кросс-платформенный |
Тип | |
Лицензия | Лицензия Апач 2.0 |
Веб-сайт | йотдб |
Apache IoTDB — это столбцово-ориентированная (TSDB) с открытым исходным кодом , система управления базами данных временных рядов написанная на Java . [ 1 ] Он имеет как периферийную, так и облачную версии, обеспечивает оптимизированный формат столбчатых файлов для эффективного хранения данных временных рядов, а также TSDB с высокой скоростью приема, запросами с низкой задержкой и поддержкой анализа данных. Он специально оптимизирован для операций, ориентированных на временные ряды, таких как агрегирования запрос , понижающая дискретизация и поиск сходства подпоследовательностей. Название IoTDB происходит от базы данных Интернета вещей (IoT), что означает, что она была разработана как собственная TSDB для IoT, которая устраняет болевые точки типичных сценариев IoT, включая массовое генерирование данных, высокочастотную выборку, данные, находящиеся вне порядка. , особые требования к аналитике, высокие затраты на хранение, эксплуатацию и обслуживание, низкую вычислительную мощность устройств Интернета вещей. [ 2 ]
История
[ редактировать ]Apache IoTDB — это проект, инициированный командой профессора Цзяньмина Вана из Школы программного обеспечения Университета Цинхуа . [ 1 ] В 2011 году команда решила использовать технологию NoSQL с открытым исходным кодом вместо Oracle для проекта с массовым управлением машинными данными и заметила недостаточность NoSQL в промышленного Интернета вещей сценариях (IIoT). Команда приступила к разработке системы управления данными и официально предложила TsFile. [ 3 ] оптимизированный столбчатый компактный формат хранения файлов для данных временных рядов, в марте 2016 года. Затем исходный код был открыт на GitHub .
В июне 2016 года на базе TsFile команда приступила к разработке IoTDB — базы данных IIoT, поддерживающей чтение, запись и анализ в реальном времени.
В ноябре 2018 года проект IoTDB вошел в инкубатор Apache Software Foundation (ASF). [ 4 ]
16 сентября 2020 года ASF официально приняла резолюцию о включении Apache IoTDB в глобальный проект верхнего уровня (TLP) после публичного обсуждения, проведенного сообществом, и голосования правления поднятием рук. [ 1 ] [ 5 ]
Архитектура
[ редактировать ]Полная система хранения Apache IoTDB соответствует архитектуре клиент-сервер, включая механизм IoTDB (сервер) и несколько компонентов в виде пакета IoTDB (клиент). Пакет IoTDB может предоставлять ряд функций в реальной ситуации, таких как сбор данных, запись данных, хранение данных, запрос данных, визуализация данных и анализ данных. Это позволяет данным, собранным датчиком, постоянно сохраняться на сервере, где данные затем можно использовать для собственных запросов или отправлять на другие платформы с открытым исходным кодом для анализа данных. В частности, IoTDB предоставляет режим под названием «Сотрудничество Edge-Cloud», который позволяет синхронизировать данные, собранные через каждый настроенный пользователем интервал, от одного экземпляра IoTDB к другому с помощью Sync Tool. [ 6 ] [ 7 ]
Пользователи могут использовать JDBC для записи данных временных рядов в локальный/удаленный IoTDB. Эти данные временных рядов могут представлять собой данные о состоянии системы (например, загрузку сервера и память ЦП и т. д.), данные очереди сообщений, данные временных рядов из приложений или другие данные временных рядов в базе данных. Данные могут быть записаны непосредственно в TsFile локально или в распределенной файловой системе Hadoop (HDFS).
TsFile — это формат файла хранения столбцов, разработанный для доступа, сжатия и хранения данных временных рядов в Apache IoTDB. Его структура основана на LSM-Tree , что сокращает вычислительные ресурсы и оптимизирует производительность Apache IoTDB. [ 3 ] [ 8 ]
TsFile можно записать в HDFS, тем самым реализуя задачи обработки данных, такие как обнаружение аномалий и машинное обучение, на платформе обработки данных Hadoop или Spark.
Для данных, записанных в HDFS или локальный TsFile, пользователи могут использовать TsFile-Hadoop-Connector или TsFile-Spark-Connector, чтобы позволить Hadoop или Spark обрабатывать данные. Таким же образом результаты анализа можно записать обратно в TsFile. Также IoTDB и TsFile предоставляют клиентские инструменты для удовлетворения различных потребностей пользователей в записи и просмотре данных в форме SQL , форме сценария и графической форме. [ 2 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ]
Функции
[ редактировать ]Гибкое и кроссплатформенное развертывание
[ редактировать ]IoTDB предназначен для трех сценариев развертывания: 1) файловое хранилище или встроенная база данных временных рядов на периферийном устройстве, таком как Raspberry Pi, 2) автономная TSDB на промышленном ПК и 3) распределенная TSDB или кластер Hadoop с TsFile. IoTDB предоставляет пользователям инструмент установки одним щелчком мыши в облаке, инструмент терминала, используемый после распаковки, и инструмент моста между облачными платформами и инструментами терминала (инструмент синхронизации данных). [ 2 ] [ 6 ]
Низкая стоимость хранения
[ редактировать ]IoTDB может достигать высокой степени сжатия дискового хранилища, что означает, что IoTDB может хранить тот же объем данных с меньшими затратами на аппаратное обеспечение диска. [ 2 ] [ 3 ] [ 14 ]
Эффективная структура каталогов
[ редактировать ]IoTDB поддерживает эффективную организацию сложных структур данных временных рядов от интеллектуальных сетевых устройств, организацию данных временных рядов от устройств одного типа, стратегию нечеткого поиска для массивного и сложного каталога данных временных рядов. [ 1 ] [ 2 ] [ 3 ]
Высокая пропускная способность чтения и записи
[ редактировать ]IoTDB поддерживает надежный доступ к данным миллионов маломощных устройств, высокоскоростное чтение и запись данных для интеллектуальных сетевых устройств и смешанных устройств, упомянутых выше. В настоящее время IoTDB поддерживает скорость приема до 30 миллионов точек данных в секунду на одном узле. [ 1 ] [ 2 ] [ 14 ] [ 15 ]
Богатая семантика запросов
[ редактировать ]IoTDB поддерживает выравнивание по времени данных временных рядов между устройствами и датчиками, вычисления в поле временных рядов (преобразование в частотной области) и поддержку расширенных функций агрегирования во временном измерении. [ 2 ] [ 14 ]
Легко начать
[ редактировать ]IoTDB поддерживает SQL-подобный язык, стандартный API JDBC и простые в использовании инструменты импорта/экспорта. [ 1 ] [ 2 ] [ 14 ]
Интенсивная интеграция с экосистемой с открытым исходным кодом.
[ редактировать ]IoTDB поддерживает Hadoop, Spark экосистемы анализа Grafana . и т. д., а также инструмент визуализации [ 1 ] [ 2 ] [ 16 ]
Лицензирование
[ редактировать ]Лицензия Apache 2.0 — это разрешительная лицензия на бесплатное программное обеспечение, разработанная Apache Software Foundation. Он позволяет конечным пользователям изменять части исходного кода, если он содержит соответствующую документацию, необходимую Apache в распространяемом коде. [ 17 ]
Ссылки
[ редактировать ]- ^ Перейти обратно: а б с д и ж г Салли (23 сентября 2020 г.). «Фонд программного обеспечения Apache объявляет Apache® IoTDB™ проектом высшего уровня» . Блог Apache Software Foundation . Проверено 18 ноября 2022 г.
- ^ Перейти обратно: а б с д и ж г час я Ван, Чен; Хуан, Сяндун; Цяо, Цзялин; Цзян, Тянь; Руи, Лей; Чжан, Цзиньруй; Канг, Ронг; Фейнауэр, Джулиан; МакГрэйл, Кевин А.; Ван, Пэн; Юань, Цзюнь; Ван, Цзяньминь; Сунь, Цзягуан (август 2020 г.). «Apache IoTDB» (PDF) . Труды Фонда VLDB . 13 (12): 2901–2904. дои : 10.14778/3415478.3415504 . S2CID 221352039 .
- ^ Перейти обратно: а б с д Хоу, Хаонань (14 марта 2022 г.). «Формат ЦФайла» . Слияние АЧС . Проверено 18 ноября 2022 г.
- ^ «Статус инкубации проекта Apache IoTDB» . Инкубатор Апач . Проверено 18 ноября 2022 г.
- ^ онлайн, Хайзе (23 сентября 2020 г.). «Apache Software Foundation поднимает IoTDB до проекта высшего уровня» . Разработчик (на немецком языке) . Проверено 13 декабря 2022 г.
- ^ Перейти обратно: а б «Руководство пользователя IoTDB: Архитектура системы» . Apache IoTDB . Проверено 18 ноября 2022 г.
- ^ «Апач IoTDB» . База данных баз данных . 27 июня 2022 г. Проверено 18 ноября 2022 г.
- ^ Сяо, Цзиньчжао; Хуан, Юйсян; Ху, Чанъюй; Сун, Шаосюй; Хуан, Сяндун; Ван, Цзяньминь (07 сентября 2022 г.). «Кодирование данных временных рядов для эффективного хранения: сравнительный анализ в Apache IoTDB» . Труды Фонда VLDB . 15 (10): 2148–2160. дои : 10.14778/3547305.3547319 . ISSN 2150-8097 . S2CID 252135944 .
- ^ Хуан, Сяндун; Ван, Цзяньминь; Вонг, Раймонд; Чжан, Цзиньруй; Ван, Чен (24 октября 2016 г.). «ПИЗА» . Материалы 25-й Международной конференции ACM по управлению информацией и знаниями . ЦИКМ '16. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 979–988. дои : 10.1145/2983323.2983775 . ISBN 978-1-4503-4073-1 . S2CID 12456810 .
- ^ Канг, Ронг; Ван, Чен; Ван, Пэн; Дин, Ютинг; Ван, Цзяньминь (2018). «Сопоставление последовательных подшаблонов в потоковых временных рядах» . В Цай, Йи; Исикава, Ёсихару; Сюй, Цзяньлян (ред.). Интернет и большие данные . Конспекты лекций по информатике. Том. 10988. Чам: Springer International Publishing. стр. 90–105. arXiv : 1805.06757 . дои : 10.1007/978-3-319-96893-3_8 . ISBN 978-3-319-96893-3 . S2CID 21687305 .
- ^ Ву, Цзяе; Ван, Пэн; Пан, Нинтин; Ван, Чен; Ван, Вэй; Ван, Цзяньминь (2019). «KV-Match: подход к сопоставлению подпоследовательностей, поддерживающий нормализацию и искажение времени». 35-я Международная конференция по инженерии данных (ICDE) , IEEE, 2019 г. стр. 866–877. arXiv : 1710.00560 . дои : 10.1109/ICDE.2019.00082 . ISBN 978-1-5386-7474-1 . S2CID 46926461 .
- ^ Мао, Дунфан; Ли, Тяньань; Хуан, Сяндун; Юань, июнь; Сюй, И; Ван, Цзяньминь (27 апреля 2020 г.). «Проектирование распределенной инфраструктуры Apache IoTDB» . Национальная конференция по базам данных . 50 (5): 621–636. дои : 10.1360/SSI-2019-0189 . S2CID 219053248 .
- ^ Цяо, Цзялин; Хуан, Сяндун; Ван, Цзяньминь; Вонг, Рэймонд К. (01 января 2020 г.). «Dual-PISA: индекс для операций агрегирования данных временных рядов» . Информационные системы . 87 : 101427. doi : 10.1016/j.is.2019.101427 . ISSN 0306-4379 . S2CID 201127537 .
- ^ Перейти обратно: а б с д «Руководство пользователя IoTDB: Возможности» . Веб-сайт Iotdb . Проверено 18 ноября 2022 г.
- ^ воглер. «Шлюз автоматизации с Apache IoTDB… | RocWorks» . Проверено 13 декабря 2022 г.
- ^ «Панель управления Apache IoTDB v0.13.1» . Графана Лабс . Проверено 13 декабря 2022 г.
- ^ «Лицензия Apache, версия 2.0» . Фонд программного обеспечения Apache . Проверено 18 ноября 2022 г.