Часть 2
Файловые хранилища Среди плюсов файловых хранилищ выделяют простоту. Файлу присваивается имя, он получает метаданные, а затем «находит» себе место в каталогах и подкаталогах. Файловые хранилища обычно дешевле по сравнению с блочными системами, а иерархическая топология удобна при обработке небольших объемов данных. Поэтому с их помощью организуются системы совместного использования файлов и системы локального архивирования. Пожалуй, основной недостаток файлового хранилища — его «ограниченность». Трудности возникают по мере накопления большого количества данных — находить нужную информацию в куче папок и вложений становится трудно.
Объектные хранилища Что касается объектных хранилищ, то они хорошо масштабируются, поэтому способны работать с петабайтами информации. По статистике, объем неструктурированных данных во всем мире достигнет 44 зеттабайт к 2020 году — это в 10 раз больше, чем было в 2013. Объектные хранилища, благодаря своей возможности работать с растущими объемами данных, стали стандартом для большинства из самых популярных сервисов в облаке: от Facebook до DropBox.
Обзор хранилищ данных
JDBC
Первое хранилище данных для Java, которое мы рассмотрим, является основой для большинства хранилищ данных: JDBC, API подключения к базе данных Java. Это в основном механизм, с помощью которого приложения Java могут выдавать SQL, через который можно получить доступ к реляционной базе данных.
Большинство взаимодействий с JDBC являются потоковыми, что означает, что с точки зрения приложения набор записей, возвращаемых из запроса SQL, хранится в памяти по одной строке за раз. Это на самом деле очень хорошо, потому что это означает, что ваше приложение может начать обработку данных, как только они поступят из базы данных, в отличие от ожидания, пока весь набор данных не будет готов.
Хорошей новостью является то, что JDBC довольно прост (хотя и немного многословен), а реляционные базы данных довольно распространены. Плохая новость заключается в том, что JDBC довольно многословен, а реляционные базы данных, как правило, хороши при поиске данных и не так хороши при транзакциях обновления.
У JDBC также есть недостаток типов данных. На самом деле это звучит не так уж плохо, за исключением того, что вам — программисту — приходится создавать преобразования или проверки самостоятельно, даже если базовая база данных поддерживает пользовательские типы данных.
Openstack Swift
OpenStack Swift — одна из первых крупных реализаций объектного хранилища корпоративного уровня с открытым исходным кодом. Это то, что сегодня стоит за многими частными облаками. Но поскольку хранилище писали давно, в его архитектуре много неоптимальных решений:
Swift хранит объекты в блочных файловых системах, таких как ext3. И для хранения метаданных полагается на функции файловой системы, в частности xattrs.
Его внутренняя база данных сопоставлений объектов и местоположений хранится в файлах .gz, которые реплицируются на все хранилища и прокси-узлы.
Серверы контейнеров и учетных записей хранят подмножество метаданных объектов (атрибуты контейнера и учетной записи) в реплицированных базах данных sqlite.
Отсутствуют важные функции, например, кодирование со стиранием.
Min.IO – это популярное программное обеспечение с открытым исходным кодом для распределенного хранения объектов, совместимое с S3. Выпускается под лицензией Apache v2. Он известен своей высокой производительностью.Вы можете использовать MinIO для простого веб-приложения до больших рабочих нагрузок распределения данных для приложений аналитики и машинного обучения.
MinIO создано для размещения неструктурированных данных, таких как фотографии, видеозаписи, файлы журналов, резервные копии, а также образы виртуальных машин и контейнеров. Небольшой размер позволяет включать его в состав стека приложений. В MinIO также поддерживается распределённый режим (Distributed mode), который предоставляет возможность подключения к одному серверу хранения объектов множества дисков, в том числе расположенных на разных машинах.
В MinIO используется внутренний механизм избыточного кодирования (Erasure coding), обеспечивающий системе достаточную устойчивость, чтобы она оставалась работоспособной даже при отказе половины дисков. Также хранилище управляет целостностью и безопасностью данных, используя собственное хеширование и шифрование на стороне сервера.
Плюсы использования:
MinIO – самый быстрый в мире сервер хранения объектов. Со скоростью чтения / записи 183 ГБ / с и 171 ГБ / с на стандартном оборудовании объектное хранилище может работать в качестве основного уровня хранилища для разнообразного набора рабочих нагрузок
В MinIO масштабирование начинается с одного кластера, который может быть объединен с другими кластерами MinIO для создания глобального пространства имен, охватывающего несколько центров обработки данных, если это необходимо
MinIO является полностью открытым исходным кодом под лицензией Apache V2 и Стандартной общественной лицензией Affero версии 3 (AGPLv3). Это означает, что клиенты MinIO свободны от замков, свободны проверять, свободны вводить новшества, свободны изменять и свободно распространять
API Amazon S3 является стандартом де-факто в мире объектных хранилищ. MinIO – это де-факто стандарт совместимости с S3, он был одним из первых, кто принял API, и первым, кто добавил поддержку S3 Select.
Для демонстрации работы было выбрано хранилище MinIO
Установка
Рисунок 11 установка
Рисунок 12 запуск
Рисунок 13 создание хранилища
Рисунок 14 просмотр добавленных файлов
Выводы
В ходе выполнения данной лабораторной работы мы ознакомились с NoSQL СУБД такими как Orientdb, Cassandra и MinIO. Изучили процесс их развертывания, их особенности, синтаксис их команд, создали первые объекты. Также ознакомились с хранилищами данных и объектными хранилищ, изучили их особенности, развернули 1 из них на виртуальной машине.