Моделирование данных телеметрии в Apache Cassandra | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Авторы: , ,

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №16 (358) апрель 2021 г.

Дата публикации: 16.04.2021

Статья просмотрена: 312 раз

Библиографическое описание:

Карпов, С. Р. Моделирование данных телеметрии в Apache Cassandra / С. Р. Карпов, Н. С. Ковалев, Микаэл Амри Джума. — Текст : непосредственный // Молодой ученый. — 2021. — № 16 (358). — С. 10-12. — URL: https://moluch.ru/archive/358/80084/ (дата обращения: 17.12.2024).



В статье авторы исследуют возможную структуру хранения данных датчиков в нереляционной распределенной базе данных Apache Cassandra.

Ключевые слова: данные, Cassandra, Apache Cassandra, noSql, датчик, телеметрия, база данных, модель.

  1. Концептуальная модель данных.

Концептуальная модель данных разрабатывается с целью понимания данных в конкретной области. Данную модель можно представить в виде диаграммы сущностей-отношений (ERD). Она показывает типы сущностей, типы связей и ограничения ключей в проекте. (Рис. 1)

Диаграмма сущностей-отношений

Рис. 1. Диаграмма сущностей-отношений

Концептуальная модель данных для телеметрии включает в себя сети датчиков, датчики и измерения температуры. Каждая сеть имеет уникальное имя, описание, регион и количество датчиков. Датчик описывается уникальным идентификатором, местоположением, которое состоит из широты и долготы, а также нескольких характеристик датчика. Измерение температуры имеет временную метку и значение и однозначно идентифицируется идентификатором датчика и временной меткой измерения. В то время как сеть может иметь много датчиков, каждый датчик может принадлежать только одной сети. Точно так же датчик может записывать множество измерений температуры в разные временные метки, и каждое измерение температуры сообщается только одним датчиком.

  1. Разработка приложения

Приложение должно быть разработано посредством шаблонов доступа к данным, каждый из которых указывает, какие атрибуты следует искать, группировать, упорядочивать и т. д.

Созданный интерфейс должен иметь систему авторизации, точку входа в приложение и прямую обработку запросов от пользователей. Точкой входа будет являться набор всех сетей телеметрии с привязкой к региону. Далее приложение должно по запросу выводить либо все датчики в какой-либо выбранной сети, либо средние значения температуры для сети, либо значение температуры для конкретной модели датчика.

Еще одним немаловажным пунктом при проектировании приложения является задание уровня согласованности. Уровень согласованности задает количество ответов от узлов-реплик кластера, необходимых для получения ответа на запрос. Всего их существует 9 видов. При чтении и записи значений телеметрии рекомендуется использовать QUORUM уровень. Это означает, что большая часть узлов-реплик (n/2 +1, где n — число узлов-реплик) должна давать ответ.

  1. Логическая модель данных

Логическая модель данных строится на основе концептуальной модели и требований приложения. Cassandra является не реляционной базой данных, поэтому все значения записываются, читаются и хранятся в отдельных таблицах, не связанных между собой явно. Структуру данных необходимо продумать заранее, потому что в последствии будет невозможно изменить некоторые её элементы. Неграмотное хранение значений может приводить нарушению согласованности, доступности или распределенности системы. Для построения зависимостей данных телеметрии в Cassandra лучше всего пользоваться диаграммой Чеботко. (Рис. 2)

Диграмма Чеботко

Рис. 2. Диграмма Чеботко

Существует четыре таблицы, а именно networks, temperatures_by_network, sensors_by_network и temperatures_by_sensor, которые предназначены специально для поддержки шаблонов доступа через приложение к данным Q1, Q2, Q3 и Q4 соответственно. Параметры с флагом “K” являются ключом патриции (Partition key), согласно которому данные распределяются в узлах кластера, а параметры с флагом “C” являются ключевыми столбцами кластеризации с нисходящим или восходящим порядком, представленным стрелкой вниз или вверх. Существует одна важная особенность: после формирования таблицы partition key уже нельзя будет изменить, то есть при изначально неудачной конфигурации базы данных существует высокая вероятность получения перегрузки одного или нескольких узлов кластера. И исправить данную проблему после процесса интегрирования системы будет достаточно проблематично.

Следующим важным параметром является стратегия репликации. Она позволяет выбрать количество узлов-реплик, в которых будут дублироваться строки данных. Для любого реального проекта стоит выбирать NetworkTopologyStrategy, поскольку она имеет гибкие настройки распределения значений между дата-центрами и стойками.

  1. Ресурсоемкость

Apache Cassandra крайне не ресурсоемкая система. Цена за быструю обработку большого количества данных — это высокая загруженность сервера. Поэтому необходимо конфигурировать дата-центр максимально мощными комплектующими. Так выглядят минимальные системные требования к каждому узлу кластера:

— 2 CPU Cores

— 4GB RAM

— 32 GB SSD

— RAID 1

Стоит понимать, что данные системные требования подойдут исключительно для тестового варианта работы с базой данных, при развертывании реального приложения понадобится намного больше дискового пространства и процессор с большим количеством ядер.

  1. Заключение

Apache Cassandra идеально подходит для получения, хранения и обработки значений телеметрии, однако подходит только для тех проектов, которые располагают достаточными вычислительными мощностями и грамотными специалистами, которые знают как ее правильно настроить.

Литература:

  1. Джефф, Карпентер Cassandra. Полное руководство / Карпентер Джефф, Хьюитт Эбен. — 2-е изд. — Москва: O’Reilly, 2017. — 400 c. — Текст: непосредственный.
  2. Data Modeling. — Текст: электронный // cassandra apache: [сайт]. — URL: https://cassandra.apache.org/doc/latest/data_modeling/index.html (дата обращения: 11.04.2021).
  3. Basic rules of Cassandra data modeling. — Текст: электронный // datastax: [сайт]. — URL: https://www.datastax.com/blog/basic-rules-cassandra-data-modeling (дата обращения: 11.04.2021).
  4. Nishant, Neeraj Mastering Apache Cassandra / Neeraj Nishant. — 2-ое. — Мумбаи: Packt Publishing, 2013. — 318 c. — Текст: непосредственный.
Основные термины (генерируются автоматически): датчик, измерение температуры, концептуальная модель данных, CPU, ERD, QUORUM, RAID, RAM, SSD, база данных, данные, значение температуры, логическая модель данных, узел кластера.


Ключевые слова

база данных, модель, данные, датчик, телеметрия, NoSQL, Cassandra, Apache Cassandra

Похожие статьи

Разработка алгоритма валидации форм на клиентской стороне для передачи данных

В данной статье рассмотрены методы и алгоритмы функционирования систем клиент-серверной архитектуры для передачи данных с помощью технологий программных инструментов: HTML, CSS, Javascript.

PlantUML: создание диаграмм с использованием текстового синтаксиса

В статье автор рассматривает PlantUML как эффективный инструмент для создания диаграмм в разработке программного обеспечения, преимущества использования текстового синтаксиса, разнообразие поддерживаемых диаграмм.

Обзор основных технологий контент-менеджмент системы Adobe Experience Manager

В представленной работе рассматриваются основные технологии контент-менеджмент системы Adobe Experience Manager: их возможности и схема взаимодействия. Данные основываются на открытых источниках документации технологий Apache Foundation, а так же офи...

Роль SQL в среде облачных баз данных

В статье автор рассмотрел, что такое SQL, его роль в управлении данными, а также преимущества использования SQL в облачных базах данных.

Обзор надежности систем загрузки журнальных записей в Big Data

Данная статья фокусируется на обзоре методов надежности ныне существующих систем для загрузки журнальных записей и их реализации. Дано определение надежности таких систем. Определены методы загрузки. Освещена особенность систем потоковой обработки в ...

Диагностика утечек памяти в Java-приложениях

Данная статья описывает структуру хранения используемой памяти, простые способы диагностики её утечек и временные исправления их.

Анализ данных на Python

В статье автор подробно исследует аналитические возможности Python, уделяя внимание ключевым библиотекам и методам, которые делают этот язык таким мощным инструментом для работы с данными.

Разработка программного модуля защиты информации методом стеганографии

В данной статье рассматривается процесс разработки программного модуля для шифрования текстовой информации в реальном изображении, с помощью языка программирования Rust, описываются основные аспекты стеганографии, в частности метод LSB.

Основные компоненты модуля формирования финансовых отчётов в информационной системе страховой компании

В данной статье представлен краткий обзор на компоненты модуля формирования отчетов в информационной системе страховой компании.

Распределенные информационные системы: особенности применения и построения

Данная статья направлена на исследование вопроса построения распределенных информационных систем. Рассмотрены методы Grid и Cloud в качестве средства построения распределенных ИС, а также технологии построения распределенных баз данных.

Похожие статьи

Разработка алгоритма валидации форм на клиентской стороне для передачи данных

В данной статье рассмотрены методы и алгоритмы функционирования систем клиент-серверной архитектуры для передачи данных с помощью технологий программных инструментов: HTML, CSS, Javascript.

PlantUML: создание диаграмм с использованием текстового синтаксиса

В статье автор рассматривает PlantUML как эффективный инструмент для создания диаграмм в разработке программного обеспечения, преимущества использования текстового синтаксиса, разнообразие поддерживаемых диаграмм.

Обзор основных технологий контент-менеджмент системы Adobe Experience Manager

В представленной работе рассматриваются основные технологии контент-менеджмент системы Adobe Experience Manager: их возможности и схема взаимодействия. Данные основываются на открытых источниках документации технологий Apache Foundation, а так же офи...

Роль SQL в среде облачных баз данных

В статье автор рассмотрел, что такое SQL, его роль в управлении данными, а также преимущества использования SQL в облачных базах данных.

Обзор надежности систем загрузки журнальных записей в Big Data

Данная статья фокусируется на обзоре методов надежности ныне существующих систем для загрузки журнальных записей и их реализации. Дано определение надежности таких систем. Определены методы загрузки. Освещена особенность систем потоковой обработки в ...

Диагностика утечек памяти в Java-приложениях

Данная статья описывает структуру хранения используемой памяти, простые способы диагностики её утечек и временные исправления их.

Анализ данных на Python

В статье автор подробно исследует аналитические возможности Python, уделяя внимание ключевым библиотекам и методам, которые делают этот язык таким мощным инструментом для работы с данными.

Разработка программного модуля защиты информации методом стеганографии

В данной статье рассматривается процесс разработки программного модуля для шифрования текстовой информации в реальном изображении, с помощью языка программирования Rust, описываются основные аспекты стеганографии, в частности метод LSB.

Основные компоненты модуля формирования финансовых отчётов в информационной системе страховой компании

В данной статье представлен краткий обзор на компоненты модуля формирования отчетов в информационной системе страховой компании.

Распределенные информационные системы: особенности применения и построения

Данная статья направлена на исследование вопроса построения распределенных информационных систем. Рассмотрены методы Grid и Cloud в качестве средства построения распределенных ИС, а также технологии построения распределенных баз данных.

Задать вопрос