В последнее время вокруг Azure DocumentDB, теперь известной как Azure CosmosDB, NoSQL документ-ориентированной базы данных, предлагаемой в качестве облачного сервиса PaaS в экосистеме Azure, возникло много шума. Как SQL DBA или новичок в Azure CosmosDB, вам может быть интересно узнать о его основной стоимости и уровнях производительности, способах создания действительных JSON-документов из SQL Server и способах загрузки и запроса JSON-документов в Azure CosmosDB.
Давайте начнем с понимания стоимости и уровней производительности в Azure CosmosDB. Учетная запись Azure CosmosDB является контейнером, в котором вы создаете одну или несколько баз данных. Базы данных, как и учетные записи, также являются контейнерами, в которых вы создаете одну или несколько коллекций. Коллекции – это место, где вы храните свои JSON-документы и логику приложения, такую как хранимые процедуры, триггеры и функции. Производительность и стоимость Azure CosmosDB определяются коллекциями. Вы можете выбрать предопределенные уровни производительности (S1, S2, S3) или установить собственный уровень производительности и хранения. Каждая операция с JSON-документами в Azure CosmosDB рассчитывается как “единицы запроса” (RUs), которые определяют пропускную способность в секунду в вашей коллекции. Вы платите за потребляемые RUs, будь то ноль или максимальное выделение для вашей коллекции.
Для оценки стоимости Azure CosmosDB вам необходимо учесть такие факторы, как количество документов, средний размер документа, шаблоны запросов и частоту обновления. Рекомендуется загрузить свои данные и запустить стандартные запросы в Azure Portal, чтобы увидеть RUs, генерируемые вашей рабочей нагрузкой, и использовать их в расчетах.
Теперь перейдем к созданию JSON-документов из SQL Server. Azure CosmosDB хранит JSON-документы, поэтому любые данные, которые вы хотите поместить в него, должны быть действительным документом. Вам также необходимо убедиться, что созданный вами JSON-документ моделирует бизнес-цель, которую вам необходимо сохранить для запросов данных, минимизируя при этом обновления документа для изменений в базовых данных. Как вы моделируете свои документы, также непосредственно влияет на удобство использования базы данных, стоимость и производительность запросов.
Если у вас нет JSON-данных для тестирования Azure CosmosDB, вы можете сгенерировать их с помощью SQL Server. SQL Server 2016 имеет встроенную поддержку JSON, позволяющую легко преобразовывать ваши данные в действительную структуру JSON-документа. Вы можете использовать подзапросы в SQL-коде, чтобы получить повторяющиеся блоки JSON в вашем документе. После того, как у вас есть действительные файлы JSON, есть несколько способов загрузить их в Azure CosmosDB, включая Azure Portal, программные подходы и инструмент миграции данных CosmosDB.
Наконец, давайте обсудим запросы JSON-документов в Azure CosmosDB. Язык запросов Azure DocumentDB похож на SQL Server T-SQL, что делает его знакомым для SQL DBA. Вы можете выполнять запросы в Azure Portal, программно или с использованием сторонних инструментов, таких как Azure CosmosDB Studio. Однако в языке запросов есть некоторые ограничения, такие как отсутствие поддержки ORDER BY во внутридокументных соединениях и агрегатов, таких как GROUP BY, SUM, MAX, MIN, AVG и COUNT. Эти ограничения устраняются, и в язык запросов добавляются новые функции.
Azure CosmosDB не предназначена для замены реляционных баз данных, но служит для различных случаев использования. Как современному DBA важно иметь знания и опыт работы с различными хранилищами данных, включая реляционные базы данных, базы данных NoSQL и решения для обработки больших данных, такие как HDInsight и Data Lake. Понимание Azure CosmosDB и ее возможностей расширит ваш набор навыков и сделает вас более гибким в постоянно меняющемся мире управления данными.
Отказ от ответственности: Содержание этого блога подлежит отказу от ответственности, указанному на блоге Mr. Fox SQL.