Инженерия данных

Эффективно ли объектное хранилище для больших данных?

Хранение, архивирование и управление данными с помощью хранилищ объектов

Введение

В эпоху больших данных архитектура объектного хранилища постоянно набирает популярность у команд, которые хотят хранить, архивировать и управлять большими объемами данных.

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

Что такое объектное хранилище и как оно работает

Хранилище объектов (также известное как хранилище на основе объектов) - это архитектура хранилища данных, которая используется для хранения больших объемов неструктурированных данных.

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

Из-за увеличения объема неструктурированных данных хранение таких типов данных со временем становится все более и более сложным. Объектно-ориентированное хранилище можно использовать для решения этой проблемы экономичным и масштабируемым способом, который позволяет командам хранить петабайты данных и управлять ими!

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

Объект против файла против блочного хранилища

Как мы уже упоминали, объектно-ориентированное хранилище больше всего подходит для неструктурированных данных. Архитектура файлового и блочного хранилища - две другие альтернативы, которые хорошо подходят для хранения структурированных данных.

Архитектура File Storage структурирует и хранит данные внутри папок. Каждый файл в магазине имеет правильное имя и связан с необходимыми метаданными (например, типами файлов, датой последнего изменения и т. Д.) И иерархически структурирован по каталогам и подкаталогам. Этот тип архитектуры в основном подходит для случаев использования, когда нам нужно обрабатывать относительно небольшие объемы данных, которые не требуют сложной организационной структуры. По мере увеличения размера хранимых данных время поиска и извлечения файлов становится все более и более трудоемким.

Архитектура блочного хранилища является альтернативой файловому хранилищу, которая направлена ​​на повышение эффективности и производительности. Этот тип хранилища разбивает файлы данных на блоки равного размера, каждый из которых хранится по уникальному адресу. Следовательно, блочное хранилище не зависит от структуры, поскольку созданные блоки могут храниться в любом месте системы. Чтобы получить файл данных из блочного хранилища, файлы будут собраны вместе с разных адресов.

Как мы уже обсуждали, объектное хранилище используется для хранения неструктурированных данных. Вместо помещения файлов в каталоги (файловое хранилище) или разделения их на блоки (блочное хранилище) объектно-ориентированные хранилища обрабатывают объекты как независимые единицы данных. Кроме того, этот тип хранилища позволяет пользователям обогащать метаданные, чтобы их можно было использовать при необходимости (например, для выполнения какого-либо анализа данных). Следовательно, хранилища объектов подходят для хранения больших объемов неструктурированных данных, которые необходимо эффективно извлекать с возможностью масштабирования. Кроме того, они идеально подходят для статических файлов или файлов, которые не обновляются слишком часто (например, аудио- или видеофайлов).

Преимущества объектно-ориентированного хранилища

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

  • Масштабируемость. Это определенно самое важное преимущество объектных хранилищ по сравнению с другими типами архитектур хранилищ. Поскольку данные хранятся не в сложных иерархических каталогах, а в плоской среде, пользователи могут добавлять дополнительные серверы в текущую конфигурацию, чтобы поддерживать большие объемы данных и увеличивать пропускную способность.
  • Высокая доступность: хранилище объектов можно настроить таким образом, чтобы данные реплицировались в физически разных хранилищах. При выходе из строя определенного диска или узла данные по-прежнему будут доступны в другом хранилище кластера, реплицирующем содержимое отказавшего устройства. Очевидно, что для достижения высокой доступности вам также может потребоваться рассмотреть возможность распределения узлов кластера по разным географическим регионам, чтобы данные по-прежнему были доступны даже во время физических катастроф в определенных местах.
  • Сложность. В отличие от файлового хранилища, которое хранит данные в иерархических файловых системах, объектно-ориентированные хранилища хранят данные в плоских средах. Это улучшает общую производительность и, что наиболее важно, снижает сложность, в частности, когда дело доходит до работы с довольно большими объемами данных.
  • Облако Совместимость: объектное хранилище обычно размещается в облаке, и основные облачные игроки предлагают хранилище как услугу. Это означает, что разные группы могут совместно использовать один и тот же репозиторий данных, но каждая может иметь доступ только к фрагменту пространства данных, и, таким образом, повышается масштабируемость и снижаются затраты.

Версионирование ваших данных в хранилищах объектов

Как упоминалось ранее, объекты, хранящиеся в объектно-ориентированном хранилище, имеют уникальный идентификатор (ID) и метаданные. Оба эти элемента можно использовать, когда дело доходит до управления версиями данных.

Если вы размещаете свое объектное хранилище на веб-сервисах Amazon, вы можете версировать свои данные с помощью S3 API (или действительно любого соответствующего API, предлагаемого вашим облачным провайдером, если вы не используете AWS).

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

Чтобы узнать больше об lakeFS, перейдите в репозиторий GitHub и docs для lakeFS. Кроме того, вы также можете прочитать статью ниже, которая содержит пошаговое руководство о том, как начать работу с версией ваших данных с помощью lakeFS.



Последние мысли

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

Наконец, мы обсудили несколько вариантов использования объектных хранилищ (например, для хранения тонны неструктурированных данных) и представили lakeFS, инструмент, который, среди прочего, предлагает управление версиями данных в объектном хранилище.