Моделирование данных Cassandra: что это такое и как его использовать

6 мая 2021 г.

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

Что такое моделирование данных Cassandra?

Моделирование данных Cassandra — это способ оптимизировать вашу модель данных для Cassandra, системы управления базами данных. Модель данных Cassandra уникальна, поскольку пользователи моделируют данные в соответствии с конкретными запросами данных, а не организуют отношения или объекты. Используя модель, вы можете структурировать хранилище данных как набор строк, организованных в таблицы или столбцы. Основными компонентами модели являются:

  • Столбцы: столбец — это строка данных.

  • Ключевые пробелы: ключевые пробелы объединяют столбцы.

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

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

Цели вашей модели данных Cassandra:

  • Храните большие объемы данных

  • Моделируйте данные в соответствии с вашими потребностями

  • Оптимизация данных для определенных запросов

  • Обеспечьте быстрое чтение и запись

  • Организация данных для поддержки языка запросов Cassandra (CQL)

  • Рассредоточить данные по кластеру

  • Минимизировать возвращаемые разделы

Когда использовать моделирование данных Cassandra

Cassandra предназначена для поддержки больших объемов структурированных или полуструктурированных данных на обычных серверах и не должна вызывать массовых сбоев в работе системы из-за одной ошибки. Это может быть полезно для компаний, расширяющих масштабы своей деятельности, поскольку мощность платформы увеличивается с добавлением новых центров обработки данных, независимо от их местоположения.

Моделирование Cassandra предоставляет следующие функции, которые могут оказаться привлекательными для вашей организации:

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

  • Надежность: Cassandra упрощает равномерное распределение данных по каждому узлу в кластере, при этом каждый узел может обрабатывать запросы на чтение и запись. Это означает, что платформа не должна выйти из строя из-за одной неисправности.

  • Настраиваемость: в Cassandra вы можете установить уровень согласованности в зависимости от ваших потребностей в запросе.

  • Гибкость. Модель данных Cassandra применяется в самых разных случаях, поэтому вы, вероятно, сможете использовать Cassandra для своих данных.

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

  • Коммуникабельность: одноранговая архитектура позволяет всем узлам в кластере Cassandra взаимодействовать друг с другом.

  • Доступность: Cassandra — это проект с открытым исходным кодом, и вы можете легко интегрировать его с другими проектами с открытым исходным кодом.

Рекомендации по моделированию данных Cassandra

Вот список основных правил, которые могут помочь вам оптимизировать производительность вашей модели:

Картографические данные и запросы

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

Моделируйте свои данные вокруг конкретных запросов

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

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

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

Понимание ваших данных

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

Следуйте методам моделирования больших данных

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

Ожидайте больше случаев записи и дублирования данных

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

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

Распределяйте данные равномерно

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

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

Свести к минимуму чтение разделов

Раздел относится к группе строк с одним и тем же ключом раздела. Ваши разделы могут находиться на разных узлах, и для запрашиваемого чтения раздела может потребоваться уникальная команда для каждого раздела на каждом отдельном узле. Это может быстро занять много времени и увеличить вариации задержки. Из-за того, как Cassandra хранит строки, чтение из нескольких разделов также может быть дорогостоящим, даже если оно находится только на одном узле.

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

Анализ эффективности вашей модели

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

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

Обратите внимание, что ни одна из компаний, упомянутых в этой статье, не связана с компанией Indeed.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *