Tag Archives: Azure

Build 2019: Cosmos DB с поддержкой Spark API для AI и аналитики

Компания Майкрософт на только что прошедшей конференции Build 2019 анонсировала поддержку Apache Spark в Cosmos DB. Cosmos DB изначально проектировалась для точечных операций. Существовал также Spark Connector для доступа к этим данным из внешнего Spark кластера. Но теперь интеграция становится более тесной, и будет возможно запускать real-time аналитику и ML\AI над данными Cosmos DB.

Больше не придется управлять отдельными кластерами Apache Spark, но при этом получить SLA на уровне 99.999. Также, несмотря на то, что Cosmos DB это географически распределенная БД, обработка с помощью Spark будет запускаться на локальных данных в том регионе, где они находятся, что ускоряет получение результата и исключает ненужные перемещения данных.

Дополнительно в Data Explorer появится поддержка Jupiter Notebook – одного из самых распространенных средств для доступа и анализа данных.

A Jupyter notebook.

Несомненно – это огромный шаг в развитии Cosmos DB. Благодаря тому, что теперь можно в одной БД запускать и операционную и аналитическую нагрузку – повышает привлекательность и возможности для реализации различных сценариев. Сейчас доступ в этой опции открыт не всем, но как только я получу его – сделаю отдельный обзор этой возможности.

Краткое введение в Azure Cosmos DB

Azure Cosmos DB – это полностью облачная база данных, которая была представлена в мае 2017 года, т.е. ей всего 2 года, но она уже успела приобрести достаточную популярность, если ориентироваться на статистику DB-engines, в частности, в категориях key-value, document и graph. Давайте кратко рассмотрим основные отличительные особенности этой базы данных, а уже в последующих статьях взглянем на них более подробно.

В первую очередь стоит отметить, что Cosmos DB – это развитие другой облачной базы данных компании Майкрософт – DocumentDB, которая появилась на пару лет раньше. Изначально DocumentDB – это была документоориентированная БД, где вся информация хранилась в виде JSON документов. CosmosDB унаследовала это от своего прародителя, но обросла новыми возможностями, поэтому было неправильно оставлять старое название, и было придумано новое и громкое.

Большинство систем управления базами данных организованы вокруг единой модели данных, которая определяет, как данные могут быть организованы, сохранены и обработаны. Например, реляционная модель, которая представляет данные в виде таблиц и связей между ними, является, пожалуй, самой широко распространенной. Cosmos DB – представитель мультимодельных систем, когда вы можете в одной базе данных использовать разные подходы, выбирая тот, который больше подходит для вашего приложения или сервиса. В частности, помимо унаследованной документоориентированной модели, которая является основной, вы можете использовать key-value и графовую модель. Я думаю, в отдельных статьях я покажу, как можно использовать графовую модель для описания знакомых всем сущностей, и какие преимущества это дает по сравнению с реляционной моделью.

Cosmos DB, являсь облачной БД, позволяет вам в несколько кликов развернуть экземпляр вашей базы данных в одном из регионов, где есть дата-центр Azure. Обеспечивает уровень доступности в 99.999% на чтение и запись, позволяет прозрачно расширяться практически без ограничений и гарантирует, что запись и чтение не будут занимать более 10 миллисекунд в 99% случаев. Также вам доступна репликация данных между дата-центрами. Согласитесь, настроить и обеспечить систему с подобными характеристиками своими силами займет в разы больше времени и будет стоить сильно дороже. Конечно, если у нас очень большая БД и много ресурсов, тогда нужно считать более детально, но если у вас относительно небольшая или средняя БД, но вам нужны такие показатели, то, однозначно, вам выйдет сильно дороже обеспечить их самостоятельно, чем с помощью Cosmos DB.

Вы можете работать с Cosmos DB используя Java, .NET, Node.Js или Python. Еще больше возможностей открывается, если использовать Azure Functions в связке с Cosmos DB. На этом мы тоже более подробно остановимся в следующих статьях цикла.

Что еще стоит отметить:

  • Возможность из приложения управлять уровнями согласованности (consistency level)
  • Автоматическое резервное копирование
  • Разграничение прав доступа к данным
  • Возможность создавать триггеры, хранимые процедуры и пользовательские функции внутри БД
  • Поддержка языка SQL
  • Гибкое управление индексированием
  • Поддержка MongoDB API и Cassandra API
  • Наличие локального эмулятора для разработки приложений без доступа к облаку Azure

Звучит очень интересно и напрашивается много вопросов. Давайте же постепенно в последующих статьях будем более подробно рассматривать каждую из этих возможностей и углубляться в детали.

Мир активно развивается и меняется, облачные технологии получают все большую и большую популярность, в частности облачные базы данных. И Cosmos DB является одним из ярких представителей этого класса, на который однозначно стоит хотя бы взглянуть и попробовать. А уже потом решить, стоит ли использовать эту БД в одном из своих проектов.

Что нового в SQL Server 2014

Microsoft SQL Server 2014 был анонсирован 3 июня на основном вступительном докладе Microsoft TechEd 2013. В этом месяце будет доступна для скачивания публичная сборка CTP1, а окончательная версия выйдет ориентировочно в начале 2014 года. Если откинуть в сторону все громкие маркетинговые заявления, что же действительно нового и полезного появляется в этом релизе?

  • In-Memory OLTP (кодовое название Hekaton) – встроенный в движок механизм, позволяющий создавать таблицы с данными, оптимизированные для непосредственного размещения в оперативной памяти, а также для хранимых процедур становится доступна возможность компилирования их в машинный код. Все это позволяет получить выигрыш в производительности в несколько раз. Наверное, это самая главная и ожидаемая «фишка» новой версии.
  • Колоночные индексы (Column Store Indexes) теперь становятся обновляемыми.
  • Появляется возможность расширения буферного пула на SSD.
  • Будут изменения непосредственно в движке исполнения запросов, что опять же должно будет положительно сказаться на производительности.
  • В AlwaysOn теперь будет поддерживаться до 8 реплик вместо 4х.
  • Улучшения при перестроении индексов в режиме онлайн.
  • Через Resource Governor теперь можно будет управлять IO ресурсами.
  • Также обещают возможность более гибкой выдаче прав, например, администратор сможет управлять системой и не иметь доступа к важным данным.
  • В SSMS появится мастер миграции БД с обычного сервера в Windows Azure Infrastructure Services.
  • Резервное копирование в Azure Storage.
  • Интеграция AlwaysOn с Windows Azure Infrastructure Services: появится возможность иметь реплики в облаке, а также мастер в SSMS для их легкого развертывания.

Также нас порадовали тем, что выйдет Windows Server 2012 R2 и SQL Server сможет воспользоваться новыми возможностями этой ОС:

  • Поддержка до 640 логических процессоров и до 4 TB оперативной памяти (для виртуальных машин поддерживается до 64 логических процессоров и до 1 TB RAM).
  • Виртуализация сетей облегчит миграцию SQL Server между ЦОД.
  • Появится возможность более гибко управлять дисковыми ресурсами. Например, автоматически вынести наиболее запрашиваемые данные на быстрое хранилище, а данные, к которым обращаются редко, наоборот, на более медленные диски.

Скорее всего, появится еще несколько более мелких изменений. Если честно, меня список возможностей новой версии очень сильно впечатляет. Без сомнения, это будет очень интересный и функциональный релиз. Однако, многие возможности изменят текущее представление о том, как лучше настраивать сервер, проектировать базы данных и оптимизировать запросы. Наверное, это и к лучшему: больше возможностей, более гибкий подход к проектированию инфраструктуры.