Хмарна база даних

Хмарна база даних — база даних, що, зазвичай, працює на платформі хмарних обчислень. Є дві поширені моделі розгортання: користувачі можуть запускати бази даних на хмарі незалежно, використовуючи віртуальну машину, або вони можуть отримати доступ до сервісу бази даних, що підтримується провайдером хмарних БД. З баз даних, доступних на хмарі, деякі базуються на SQL-основі, інші використовують NoSQL модель даних.

Моделі розгортанняРедагувати

Є два основних методи для запуску бази даних в хмарі:

  • Образ віртуальної машини — хмарні платформи дозволяють користувачам отримати екземпляр віртуальної машини на обмежений час, і користувач може запустити базу даних на тій віртуальній машині. Користувачі можуть або самостійно завантажувати образ із встановленою на ньому базою даних, або використовувати попередньо створені образи, що вже включають оптимізовану інсталяцію. Наприклад, Oracle забезпечує готовий машинний образ з інсталяцією Oracle Database 11g Enterprise Edition на Amazon EC2[1] та на Microsoft Azure.[2]
  • База даних як сервіс (DBaaS) — деякі хмарні платформи надають опції для використання бази даних як сервіса, без фізичного запуску екземпляра віртуальної машини для бази даних. При такій конфігурації, власникам додатків не потрібно встановлювати та підтримувати базу даних. Натомість, провайдер сервісу бази даних бере на себе відповідальність за її встановлення та підтримку, і власники додатків платять згідно з їх використанням. Наприклад, Amazon Web Services надає три сервіси баз даних як частину власної хмарної пропозиції: Amazon SimpleDB, NoSQL сховище ключ-пара; Amazon Relational Database Service, сервіс бази даних побудований на SQL з MySQL інтерфейсом; та Amazon DynamoDB. Подібним чином, Microsoft надає Azure SQL Database сервіс[3] як частина їх хмарної пропозиції.
  • Третя опція включає керований хостинг бази даних у хмарі, де постачальник хмарної БД не пропонує базу даних як сервіс, а хостить базу даних і керує нею від імені власника додатку. Наприклад, хмарний постачальник Rackspace пропонує керований хостинг для MySQL на виділеному[4] та хмарні архітектури[5] та бази даних NoSQL через Object Rocket's керований MongoDB сервіс.[6] Схоже, на Azure[7] та на Amazon Web Services,[8] MongoLab надає MongoDB-as-a-Service.

Архітектура та загальні характеристикиРедагувати

  • Більшість сервісів БД надають веб-орієнтовані консолі, що кінцевий користувач може використовувати для підготовки та налаштування екземплярів БД. Наприклад, Amazon Web Services веб-консоль дозволяє користувачам запускати екземпляри БД, створювати снапшоти (схоже до бекапів) баз даних, і спостерігати за статистикую БД.[9]
  • Сервіси баз даних складаються з компоненту-менеджера БД, що керує основними екземплярами БД використовуючи API цього сервіса. API сервіса розкриті для кінцевого користувача, та дозволяє користувача виконувати обслуговування та операції зміни розміру на їх екземплярах БД. Наприклад, Amazon Relational Database Service's сервісне API дозволяє створювати екземпляр БД, проводити модифікацію ресурсів доступних для екземпляра БД, видаляти екземпляр БД, створювати снапшоти(схоже до бекапів) баз даних, та відновлювати БД з снапшоту.[10]
  • Сервіс БД роблять основний софтвар-стек прозорим для користувача — типово стек включає операційну систему, базу даних та сторонній софт для управління БД. Надавач сервісу (наприклад — MongoLab або ObjectRocket) є відповідальним за встановлення, пропатчення та оновлення основного софтвер-стеку, та забезпечення загального благолополуччя бази даних.
  • Сервіси БД піклується про масштабованість та високу доступніть БД. Фічі масштабованості відрізняються в залежності від постачальника — деякі пропонують автоматичне масштабування, інші дозволяють користувачу масштабувати використовуючи API, але без автоматичного масштабування. Існує правило, зобов'язання для певного рівня високої доступності (наприклад — 99.9 % або 99.99 %).

Модель данихРедагувати

Також важливо відрізняти між хмарними БД що є реляційними, на відміну від не реляційних або NoSql:[джерело?]

  • SQL Бази даних, такі як PostgreSQL, NuoDB, Oracle Database, Microsoft SQL Server, та MySQL, є одним з типів баз даних що можуть бути запущені у хмарі(на образі віртуальної машини або як сервіс, залежить від постачальника). SQL бази даних є тяжко масштабованими, це означає що вони першочервого не є пристосовані до хмарного середовища,[джерело?] проте хмарні сервіси БД що базуються на SQL почали вирішувати цю проблему.[11]
  • NoSQL Бази даних, такі як Apache Cassandra, CouchDB та MongoDB, є ще одним типом баз даних, що можуть бути запущені в хмарі. NoSQL бази даних побудовані щоб обслуговувати великі операції Запису/Зчитування та можуть масштабуватися дуже легко,[12] і таким чином вони більш пристосовані до запуску в хмарі. Проте, найсучасніші додатки побудовані з використанням моделі SQL, тож робота з NoSQL базами даних часто потребує повного перенаписання коду додатку.[13]

ПостачальникиРедагувати

Наступна таблиця містить список постачальників з пропозицією хмарних БД, яких варто взяти до уваги, та які класифікуються їх моделлю розгортання — машинний образ проти бази даних як сервісу — та моделі даних SQL проти NoSQL.

Постачальники хмарних БД за розгортанням та моделлю даних
Розгортання на віртуальній машині База даних як сервіс
SQL Модель даних
NoSQL Модель даних

ПриміткиРедагувати

  1. а б Amazon Machine Images — Oracle Database 11g Release 2 (11.2.0.1) Enterprise Edition — 64 Bit Архівовано 16 жовтень 2011 у Wayback Machine., Amazon Web Services, Retrieved 2011-11-9.
  2. List of Oracle VM Images (MSDN), Retrieved 2014-9-22
  3. Azure SQL Database (MSDN), Retrieved 2014-9-22
  4. MySQL Server Support at Rackspace, Rackspace.com, Retrieved 2014-02-24.
  5. «MySQL Databases on the Cloud at Rackspace», Rackspace.com, Retrieved 2014-02-24.
  6. «Managed MongoDB at Rackspace», Rackspace.com, Retrieved 2014-02-24.
  7. «MongoLab on Azure», Retrieved 2015-01-26
  8. «MongoLab on AWS Архівовано 6 вересень 2015 у Wayback Machine.», Retrieved 2015-01-26
  9. «AWS Management Console, Amazon RDS Features», Amazon Web Services, Retrieved 2011-11-10.
  10. «Amazon Relational Database Service, Features, Detailed Description», Amazon Web Services, Retrieved 2011-11-10.
  11. Dave Rosenberg, Are databases in the cloud really all that different?, CNET, Retrieved 2011-11-6
  12. Agrawal, Rakesh (2008). The Claremont report on database research. SIGMOD Record (ACM) 37 (3): 9–19. ISSN 0163-5808. doi:10.1145/1462571.1462573. 
  13. Ken North, «SQL, NoSQL or SomeSQL?», Dr. Dobb's, Retrieved 2011-11-9.
  14. Deploy your database applications and projects on the cloud, IBM.com, Retrieved 2011-9-1
  15. Chris Kanaracus, «Ingres rolls out cloud database offerings», Infoworld.com, Retrieved 2011-8-28.
  16. "Running MySQL on Amazon EC2 with EBS (Elastic Block Store), Amazon Web Services, retrieved 2011-11-20
  17. Swoyer, Stephen. «NuoDB: A Database for the Cloud.» TDWI. Nov. 13, 2012. Retrieved Nov. 26, 2012
  18. «Oracle Database in the Cloud», Oracle.com, Retrieved 2011-11-9.
  19. Chris Kanaracus, «EnterpriseDB Adding New Cloud Option for PostgreSQL Database», PCWorld, retrieved 2011-8-28
  20. Архівована копія. Архів оригіналу за 14 квітень 2016. Процитовано 16 листопад 2015. 
  21. EnterpriseDB#cite note-10
  22. «Announcing Heroku PostgreSQL Database Add-on», Heroku Blog, Retrieved 2011-11-9.
  23. Noel Yuhanna, SQL Azure Raises The Bar On Cloud Databases, Forrester, Retrieved 2011-11-9.
  24. Klint Finley, «7 Cloud-Based Database Services» Архівовано 9 листопад 2011 у Wayback Machine., ReadWriteWeb Архівовано 23 лютого 2011 у Wayback Machine., Retrieved 2011-11-9.
  25. «Setting up Cassandra in the Cloud Архівовано 13 листопада 2015 у Wayback Machine.», Cassandra Wiki, Retrieved 2011-11-10.
  26. «Clusterpoint Database Virtual Box VM Installation Guide Архівовано 10 березень 2015 у Archive.is», Clusterpoint Архівовано 28 березень 2014 у Wayback Machine., Retrieved 2015-03-08.
  27. «Amazon Machine Images, CouchDB 0.10.x 32 bit Ubuntu[недоступне посилання з травень 2019]», Amazon Web Services, Retrieved 2011-11-10.
  28. «Amazon Machine Image, Hadoop AMI[недоступне посилання з травень 2019]», Amazon Web Services, Retrieved 2011-11-10.
  29. «Hadoop at Rackspace Архівовано 2 березня 2014 у Wayback Machine.», Rackspace Big Data Platforms Архівовано 16 листопад 2015 у Wayback Machine., Retrieved 2014-02-24.
  30. «MongoDB on Amazon EC2, MongoDB.org, Retrieved 2011-11-10.
  31. »MongoDB on Azure, MongoDB.org, Retrieved 2011-11-10.
  32. «Easily Scale MongoDB at Rackspace Архівовано 2 березня 2014 у Wayback Machine.», Managed MongoDB ObjectRocket by Rackspace, Retrieved 2014-02-24.
  33. «Neo4J in the Cloud Архівовано 25 вересень 2011 у Wayback Machine.», Neo4J Wiki, Retrieved 2011-11-10.
  34. «Announcing Neo4J on Windows Azure», Neo4J Blog, Retrieved 2011-11-10.
  35. Andrew Brust, «Cloudant Makes NoSQL as a Service Bigger», ZDNet, Retrieved 2012-5-22.
  36. «MongoDB Hosting Center», MongoDB.org, Retrieved 2011-11-10.

Див. такожРедагувати