По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Apache Cassandra — это программное обеспечение для управления базами данных NoSQL. Организации используют его для обработки больших объемов данных распределенным способом. Популярность этого программного обеспечения возросла благодаря высокой доступности и отказоустойчивости. Для этого Cassandra перешла от концепции главных или именованных узлов к симметричным распределенным узлам P2P. Каждый узел в кластере имеет одно или несколько пространств ключей, содержащих данные. В этом руководстве вы узнаете, что такое пространство ключей, его компоненты и как создавать, изменять и удалять пространства ключей. Что такое пространство ключей в Cassandra? Пространство ключей (Keyspace) — это контейнер данных в Cassandra, похожий на базу данных в системах управления реляционными базами данных (RDMBS). Кластер имеет одно пространство ключей для каждого приложения, столько, сколько необходимо, в зависимости от требований и использования системы. Пространства ключей — это совершенно отдельные объекты, и данные, которые они содержат, не связаны друг с другом. В кластере Cassandra пространство ключей — это самый внешний объект, который определяет, как данные реплицируются на узлах. Пространства ключей состоят из основных объектов, называемых семействами столбцов (которые похожи на таблицы в СУБД), строк, индексированных по ключам, типам данных, сведениям о центре обработки данных, коэффициенту репликации и стратегии пространства ключей. Компоненты пространства ключей Cassandra Есть некоторые важные компоненты пространства ключей, которые необходимо указать при создании пространства ключей. Эти компоненты: Стратегия репликации При определении пространства ключей стратегия репликации указывает узлы, на которых будут размещены реплики. Используя несколько узлов для размещения реплик, вы достигаете отказоустойчивости, высокой доступности и надежности. Возможны две стратегии: Простая стратегия. Используйте эту стратегию для сред тестирования и разработки, а также если вы не собираетесь развертывать кластер более чем в одном центре обработки данных. Коэффициент репликации применяется ко всему кластеру. Разделитель решает, где разместить первую реплику на узле. Затем другие реплики распределяются по часовой стрелке на следующих узлах независимо от центра обработки данных или местоположения. Стратегия сетевой топологии. Эта стратегия подходит, когда вам нужно развернуть свой кластер в нескольких центрах обработки данных. Однако вы можете использовать его даже с одним центром обработки данных, чтобы впоследствии расширить его. Стратегия сетевой топологии работает как для продакшена, так и для разработки. Она имеет тенденцию размещать реплики на узлах, которые не находятся в одной стойке, чтобы избежать проблем, когда одна стойка выходит из строя. С помощью этого параметра каждый центр обработки данных может иметь отдельный коэффициент репликации. Фактор репликации Этот параметр определяет, сколько реплик строки хранить на каждом узле. Минимум должно быть две реплики на центр обработки данных. Это означает, что сбой одного узла не влияет на работу группы репликации. Поэтому рекомендуется установить три копии каждой строки на разных узлах для достижения удовлетворительной отказоустойчивости. Эмпирическое правило заключается в том, чтобы коэффициент репликации оставался таким же, как и количество узлов. Базовый синтаксис пространства ключей Вы можете создать пространство ключей с различными настройками репликации. Ниже приведен основной синтаксис для создания пространства ключей: CREATE KEYSPACE keypsace_name WITH replication = {properties}; Свойства (properties) включают в себя различные параметры, такие как стратегия репликации, коэффициент или долговременная запись. Примечание. Команды CQL заканчиваются точкой с запятой (;). Если вы не используете точку с запятой в конце запроса, система будет ждать дополнительного ввода. Создать пространство ключей с помощью Cqlsh Чтобы создать пространство ключей, запустите оболочку CQL: cqlsh Затем, следуя базовому синтаксису, создайте пространство ключей с нужным именем и настройками репликации. В этом случае мы создадим test_keyspace с SimpleStrategy и replication_factor 3: CREATE KEYSPACE test_keyspace WITH replication = {'class':'SimpleStrategy', 'replication_factor' : 3}; Используйте приведенный выше пример, если вы не собираетесь расширяться до нескольких центров обработки данных. Кроме того, если у вас есть только один узел и вы используете Cassandra для тестирования, вы можете установить replication_factor равным 1. Для производственных сред и нескольких центров обработки данных создайте пространство ключей со стратегией репликации сетевой топологии. Для этого введите: CREATE KEYSPACE keyspace_network_topology WITH replication = {'class':'NetworkTopologyStrategy', 'datacenter1' : 3}; Имя центра обработки данных по умолчанию — datacenter1. Чтобы проверить имя вашего центра обработки данных, закройте оболочку CQL и используйте nodetool: nodetool status Если у вас несколько центров обработки данных, перечислите их все в запросе с соответствующими коэффициентами репликации. Например, запрос для двух центров обработки данных выглядит так: CREATE KEYSPACE keyspace_network_topology WITH replication = {'class':'NetworkTopologyStrategy', 'datacenter1' : 3, 'datacenter2' : 3}; Проверить ключевое пространство Поскольку в выводе нет ответа об успешном создании пространства ключей, используйте эту команду, чтобы убедиться, что пространство ключей находится в списке: DESCRIBE KEYSPACES; Система возвращает список всех доступных пространств ключей Cassandra. Мы выделили два пространства ключей, которые мы создали в приведенных выше примерах. Есть пара пространств ключей по умолчанию, которые поставляются с установкой Cassandra. Отключить устойчивую запись (Durable Writes) В Cassandra конфигурация durable_writes по умолчанию имеет значение true. Вы можете отключить его, но только для NetworkTopologyStrategy. Этот параметр сообщает Cassandra, следует ли ей использовать журнал фиксации для внесения обновлений в выбранное пространство ключей. Когда вы пытаетесь отключить durable_writes при создании пространства ключей с помощью SimpleStrategy, вы получаете предупреждение не делать этого. Причина в том, что вы можете потерять свои данные, если вы не синхронизировали данные из memtable в sstable, и ваш дата-центр выйдет из строя. Чтобы отключить durable_writes при создании пространства ключей, введите этот запрос: CREATE KEYSPACE keyspace_durwrites WITH replication = {'class':'NetworkTopologyStrategy', 'datacenter1' : 3} AND DURABLE_WRITES = false; Проверка устойчивых операций записи Вы можете проверить запрос, который использовался при создании пространства ключей, описав пространство ключей. Также появляется часть durable_writes: DESCRIBE keyspace_durwrites Чтобы проверить настройки durable_writes для всех пространств ключей, запросите system_schema: SELECT * FROM system_schema.keyspaces; В выходных данных показаны все пространства ключей и их настройки, включая durable_writes. Использование пространства ключей Чтобы выбрать пространство ключей в Cassandra и выполнить над ним действия, используйте ключевое слово USE. Синтаксис: USE keyspace_name Например: USE keyspace_durwrites; Оболочка CQL переключается на указанное вами имя пространства ключей. Чтобы изменить текущее пространство ключей, используйте ту же команду с другим именем. Примечание. Всякий раз, когда вы создаете таблицу в Cassandra, вы начинаете с определения пространства ключей. Изменить ключевое пространство После создания пространства ключей вы можете изменить конфигурацию с помощью ключевого слова ALTER. Единственное, что вы не можете изменить, это имя пространства ключей. Помимо этого, вы можете изменить стратегию репликации, коэффициент репликации и устойчивые записи. Чтобы изменить пространство ключей, следуйте тому же синтаксису, что и при его создании, но используйте ALTER вместо CREATE. Измените значения, которые вы хотите. Например: ALTER KEYSPACE keyspace_durwrites WITH replication = {'class':'NetworkTopologyStrategy', 'datacenter1' : 2} AND DURABLE_WRITES = true; Чтобы убедиться, что изменения вступили в силу, используйте ключевое слово DESCRIBE: На изображении выше показана конфигурация пространства ключей до и после изменения. Удалить ключевое пространство Если вы отбросите ключевое пространство, оно будет удалено из системы. Ключевое слово DROP удаляет из пространства ключей все семейства столбцов, а также индексы и типы данных. Чтобы удалить пространство ключей в Cassandra, используйте этот синтаксис: DROP keyspace_name; Например: DROP keyspace_durwrites; Чтобы убедиться, что вы удалили пространство ключей, снова используйте запрос DESCRIBE. Итоги Выполнив шаги, описанные в этом руководстве, вы сможете успешно создать пространство ключей в Cassandra. Примеры в этом руководстве показали вам, как создать пространство ключей для разных сред и с разными настройками. Мы также показали вам, как изменить и удалить ключевое пространство, если вам нужно внести какие-либо изменения.
img
Такие большие, логически структурированные массивы, как базы данных, совершенно бессмысленны без систем управления реляционными данными (РСУБД). РСУБД – это программное решение, позволяющее взаимодействовать с базой данных (БД). Вы можете получать, добавлять или удалять данные, а также управлять доступом к хранимой информации. На рынке существует множество программных вариантов, и большинство из них распространяется с открытым исходным кодом, то есть бесплатно. Самыми известными решениями для веб-серверов являются MySQL и PostgreSQL. Выбор одного из вариантов зависит от ваших требований к рабочей нагрузке и назначению БД. В данной статье рассматриваются основные различия MySQL и PostgreSQL и приводится их подробное сравнение. Краткий обзор MySQL и PostgreSQL MySQL и PostgreSQL постоянно обновляются и улучшаются активным и изобретательным сообществом. Этот непрерывный процесс сокращает принципиальные отличия между двумя решениями. Тем не менее, в них есть существенные различия, которые проявляются при развертывании с большой рабочей нагрузкой. Прежде, чем перейти к подробному анализу каждого решения, предлагаем ознакомиться с кратким сравнением систем. MySQL PostgreSQL Предлагают как открытые, так и платные коммерческие версии. Бесплатная, полностью с открытым кодом. Очень быстрые и надежные. Адаптивная и многофункциональная. Делают акцент на скорости, а не следовании ключевым принципам SQL Придерживается 160 из 179 обязательных пунктов ключевых принципов и стандартов SQL. Идеальна для рабочих процессов в веб-решениях с интенсивным чтением данных. Идеальна для сложных запросов и больших баз данных. Темп разработки замедлился после того, как система стала частично проприетарным решением. Активное и многочисленное сообщество постоянно разрабатывает новые функции. MySQL возлагает функции безопасности на списки управления доступом (ACL). В PostgreSQL есть встроенная поддержка SSL и возможность шифрования связи между клиентом и сервером. Поддерживает управление параллельным доступом посредством многоверсионности (MVCC), но при условии, что оно поддерживается подсистемой хранения InnoDB Встроенная реализация MVCC. Стандартная репликация master-standby Несколько вариантов репликации Небольшая поддержка нереляционных функций Поддержка нескольких нереляционных функций Версия InnoDB совместима с ACID (атомарность, согласованность, изолированность, прочность) Полная совместимость с ACID Ограниченная поддержка расширяемости Возможность добавления новых функций, типов, индексных типов и т.д. По умолчанию добавлены геопространственные данные Возможность реализации геопространственных данных через расширения Ограниченная поддержка серверного программирования на нерасширяемом языке PostgreSQL поддерживает самые популярные языки программирования Поддерживает развертывание в контейнерах Docker Поддерживает развертывание в контейнерах Docker Сравнение производительности MySQL и PostgreSQL Измерение производительности РСУБД во многом зависит от требований, предъявляемых к базе данных. В базовых примерах обе системы управления БД работают одинаково хорошо. Производительность и скорость: PostgreSQL создавался для выполнения сложных операций; он совместим с множеством платформ и языков MQL не стремился следовать всем стандартам SQL, поэтому основной упор делается на скорость Основной упор в PostgreSQL сделан на совместимости; система показала превосходные результаты при использовании в сложных запросах, анализе чтения/записи, а также управления большими базами данных. Важно помнить, что PostgreSQL может серьезно повлиять на производительность памяти, поскольку каждое новое клиентское подключение создает отдельные ветку процесса весом в 10 МБ. MySQL ставил перед собой цель достичь максимальной скорости и простоты развертывания. Эта характеристика MySQL особенно полезна при простом обмене информации и рабочих процессах в веб-решениях с интенсивным чтением данных. Простота развертывания БД означает, что вы можете пользоваться MySQL для быстрого и горизонтального масштабирования данных. Лицензия и поддержка сообщества PostgreSQL – это бесплатное решение с полностью открытым исходным кодом. Лицензия Open Source означает, что исходный код находится в открытом доступе; кто угодно может его копировать, изменять и распространять. Такая схема создала активное сообщество разработчиков, которое постоянно анализирует текущее состояние системы и разрабатывает новые, улучшенные решения. MySQL доступна в бесплатном доступе с открытым кодом, а также в нескольких платных коммерческих версиях с проприетарной лицензией. Некоторые элементы и плагины доступны только в проприетарных версиях, что в итоге может приводить к дополнительным затратам. Кроме того, люди жалуются, что процесс разработки слегка замедлился, поскольку после покупки компанией Oracle, MySQL перестал быть системой с полностью открытым кодом. Соответствие SQL Современные приложения и базы данных часто имеют распределенную архитектуру. Следование официальным стандартам и руководствам SQL упрощает обмен данными между различными БД и помогает им соответствовать строгим регуляторным требованиям (например, GDPR, PCI и ISO). Соответствие SQL-стандартам: MySQL сосредоточена на увеличении скорости и надежности. В итоге MySQL не до конца соответствует стандартам ISO PostgreSQL придерживается большей части основных принципов и стандартов SQL; это портативная система, с которой легко интегрируются различные инструменты PostgreSQL и MySQL: синтаксические отличия MySQL и PostgreSQL основаны на одних и тех же стандартах SQL и активно пытаются следовать максимально возможному количеству требований. Так что синтаксис и команды в двух РСУБД практически одинаковы. Давайте рассмотрим несколько основных отличий, которые могут сказаться на управлении данными. Синтаксис PostgreSQL Синтаксис MySQL Данные из таблицы чувствительны к регистру. WHERE Company = ‘Merion’ это не то же самое, что WHERE Company = ‘merion’ Данные не чувствительны к регистру. WHERE Company = ‘Merion’ – это то же самое, что и WHERE Company = ‘merion’ PostgreSQL допускает использование только одиночных кавычек: Company = ‘merion’ Поддерживает одиночные и двойные кавычки: Company = ‘merion’, равно как и Company = “merion” Команды для даты и времени: CURDATE(), CURTIME(), EXTRACT() Команды для даты и времени: CURRENT_DATE(), CURRENT_TIME(), EXTRACT() Отличия в безопасности PostgreSQL и MySQL Необходимость защиты баз данных в РСУБД от вредоносной активности привела к созданию множества инструментов, протоколов безопасности и процедур. Главную функцию безопасности в MySQL выполняют списки управления доступом (ACL). В PostgreSQL встроена поддержка SSL, а для настройки разрешений пользователей используется функция ROLE. MySQL возлагает функцию безопасности на списки управления доступом (Access Control Lists - ACL), которые следят за всеми подключениями, запросами и другими операциями. Кроме того, предоставляется ограниченная поддержка подключений между MySQL-клиентами и серверами с SSL-шифрованием. Например, в MySQL есть сценарий, который повышает безопасность вашей БД за счет настройки пароля для пользователя root. Этот же сценарий автоматически удаляет все стандартные тестовые базы данных из вашей системы. Кроме того, MySQL поддерживает управление пользователями и позволяет настраивать уровни доступа для каждого пользователя. Для настройки разрешений пользователей PostgreSQL использует функцию ROLE. В ней есть встроенная поддержка SSL и шифрование обмена данными между клиентом и сервером. PostgreSQL также предлагает встроенное расширение под названием SE-PostgreSQL для настройки дополнительных элементов контроля доступа в соответствии с политикой безопасности SELinux. Удобство для пользователей и универсальность интерфейса Пользовательский интерфейс в PostgreSQL называется pgAdmin4. Он помогает начинающим пользователям выполнять сложные задачи и управлять базами данных. Основной акцент в PostgreSQL сделан на расширяемости, поэтому вы можете использовать pgAdmin4 для добавления новых типов данных, функций и типов индексов. Графический пользовательский интерфейс в MySQL называется Workbench. Этот инструмент объединяет в себе разработку, управление, проектирование, создание и поддержание базы данных в единую интегрированную среду СУБД MySQL. Языки программирования Один из важнейших аспектов, которые необходимо учитывать при переходе на новую среду, заключается в том, как это повлияет на сотрудников из отдела разработки и эксплуатации. Чем больше языков программирования поддерживает сервер базы данных, тем легче разработчикам добавлять новые функции и улучшать уже существующие. В этом плане PostgreSQL и MySQL поддерживает большое количество языков программирования. PostgreSQL MySQL C++, .NET, Java, Delphi, Perl, Lua, Node.js, Python, PHP, R, D, Erlang, Go, Lisp C, C++, Java, Perl, Delphi, Lua, Go, R, .NET, Node.js, Python, PHP, Erlang, Lisp, D Параллельная обработка данных Хорошо реализованный параллелизм позволяет многим людям из разных мест одновременно обращаться к БД и работать с ней без ограничений и угрозы противоречивости данных. Когда базе данных с управлением параллельным доступом посредством многоверсионности (MVCC - multi-versioning concurrency control) необходимо обновить данные, она не перезаписывает оригинальную информацию. Вместо этого она создает более свежую версию файла и сохраняет ее предыдущую копию. Это принципиально важный момент, если к вашим наборам данных одновременно должны обращаться многие подписчики. Если в системе отсутствует контроль параллельной обработки данных, то чтение из БД, пока другой процесс записывает в нее данные, приводит к несогласованности данных. Встроенная реализация MVCC позволяет достичь высочайшего уровня параллелизма в PostgreSQ MySQL тоже предлагает поддержку MVCC, но только если она поддерживается подсистемой хранилища InnoDB. Репликация базы данных Копирование данных из одного сервера БД в другую базу на другом сервере называется репликацией. При таком распределении информации группа пользователей сможет обращаться к новым данным, и это никак помешает работе других пользователей. Одной из самых сложных задач в репликации БД является поддержание согласованности данных внутри распределенной системы. MySQL и PostgreSQL предлагают различные возможности для репликации БД. PostgreSQL и MySQL поддерживают репликацию в виде master – standby (основной источник – резервная БД) и нескольких standby, а также предлагают ряд возможностей: PostgreSQL: логическая репликация; потоковая репликация; двунаправленная репликация. MySQL: репликация master – master; master – standby, перенаправленная на один или несколько резервных серверов; круговая репликация. Заключение PostgreSQL – это многофункциональная БД для обработки сложных запросов и больших баз данных. MySQL – это быстрое, надежное и популярное решение. MySQL относительно прост в установке и обслуживании. Функциональные возможности PostgreSQL и MySQL во многом схожи. PostgreSQL отличается от MySQL по определенным рабочим нагрузкам. Данная статья поможет вам принять осмысленное решение с учетом всех достоинств той или иной РСУБД.
img
Облачные технологии очень широкое понятие, которому многие дают различные определения. Для кого-то это как вычислительные сервисы, предоставляемые через Интернет или какую-либо другую сеть. Некоторые определяют это для себя как любую купленную компьютерную услугу, которая находится за вашим маршрутизатором. Обозначим самые характерные признаки облачного сервиса: Централизованная система управления; Доступность по требованию; Частный, публичный или гибридный вид услуги. Примеры облачных услуг - сетевое хранилище данных, социальные сети, различные приложения. Облачная услуга предоставляет доступ к распределенному пулу ресурсов - свободному месту на диске, вычислительным мощностям, транспортному ресурсу в сетях. Таким образом, можно дать следующее определение “облакам”. "Облако" - модель предоставления доступа к услуге через какую-либо сеть к пулу различных ресурсов, таких как сети передачи данных, системы хранения данных, приложения и услуги, которые могут быть гибко распределены между пользователями. Это могут быть услуги с минимальными затратами со стороны лица, предоставляющего услугу. Такая модель являет собой высоко доступную систему, обладающую пятью основными характеристиками, тремя способами предоставления и четырьмя способами реализации. Характеристиками этой модели являются: самообслуживание; широкополосный сетевой доступ; доступ к общему пулу ресурсов; высокая эластичность и возможность точного измерения “используемости” ресурсов. Самообслуживание - возможность пользователями (организациями) запрашивать дополнительные и управлять существующими ресурсами. Широкополосный доступ в сеть позволяет предоставлять услуги через Интернет иили частные сети. Доступ к пулу ресурсов означает разделение мощностей между заказчиками соответственно их требованиям, причем эти ресурсы находятся в удаленном центре обработки данных. Способы предоставления ресурсов: IaaS (Инфраструктура как услуга) - предоставление доступа исключительно к оборудованию и сетевым ресурсам; PaaS (Платформа как услуга) - предоставление доступа к операционной системе, платформе разработки, оборудованию и сетевым ресурсам; SaaS (Приложение как услуга) - предоставление доступа к приложению, вместе с операционной системой, оборудованием и сетевым ресурсам. Как можно заметить, второй и третий способ строятся на способе “Инфраструктура как услуга”. Способы реализации доступа к услугам: приватное облако - доступ к ресурсам находится у одной организации и управляется облачным провайдером или, чаще всего, самой организацией; общедоступное облако - предоставление доступа через Интернет, права на владения находятся у облачного провайдера и доступен всем желающим; общественное облако- ресурсы и доступ делятся между несколькими организациями; гибридное облако- любая возможная комбинация вышеперечисленных. Важнейшим способом построения облака в настоящее время является технология виртуализации. Виртуализацию серверов нельзя приравнивать к облачным вычислениям. Виртуализация – замещение физического оборудования программными абстракциями. Структура облака определяет, как именно виртуальное оборудование расположено, коммутировано и какие функции выполняет. Технология виртуализации не является обязательной для реализации облака, но она вносит возможность очень гибкого масштабирования и распределения ресурсов, что для классической реализации с использованием физического оборудования недостижимо. Кроме того, физическая реализация облака никогда не позволит в реальном времени изменять параметры оборудования, такие как объем свободного пространства на жестком диске, количество оперативной памяти и вычислительной мощности. Одной из важнейших особенностей, которую позволяет виртуальная реализация центра обработки данных (ЦОД) – обеспечение более высокой надежности по сравнению с физическими аналогами. Это достигается благодаря возможности легкого копирования виртуальных машин, их содержимого и переноса в другую среду. Виртуальная машина является основной единицей в виртуальном ЦОДе, и является абстрактным вычислительным устройством, которое может выполнять множество функций – сервера, файлового хранилище, маршрутизатора и т.д.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59