1 ВВЕДЕНИЕ В ОБЛАЧНЫЕ ВЫЧИСЛЕНИЯ
В настоящее время облачные вычисления стали популярной темой для обработки и хранения данных. «Облачные вычисления — это способ обозначения использования общих вычислительных ресурсов и альтернатива использованию локальных серверов для обработки приложений». [1]
Облачные вычисления позволяют пользователям настраивать масштабируемое, безопасное и надежное программное обеспечение и приложения. Облачные вычисления экономят компании, избавляя от необходимости привлекать большое количество персонала и оборудования для запуска и обновления приложений. Существует три типа облачных вычислений, и в этой статье каждый из них будет подробно описан.
Поскольку базы данных являются частью практически каждого компьютерного приложения, поставщики облачных вычислений и платформы, такие как Amazon Cloud Service и Google Cloud Platform, также предлагают сервисы баз данных. Amazon Cloud Service обеспечивает поддержку реляционных баз данных, включая MySQL, Oracle и экземпляры SQL Server [9]. Кроме того, Amazon Cloud Service также обеспечивает поддержку баз данных NoSQL, таких как Amazon SimpleDB [9]. Google Cloud Platform также обеспечивает поддержку как реляционных баз данных Google Cloud SQL, так и баз данных NoSQL, называемых Google Bigtable [5]. Поскольку реляционные базы данных нам более знакомы, в этой статье более подробно будут рассмотрены базы данных NoSQL на основе изучения моделей данных Amazon SimpleDB и Google Bigtable.
В данной статье подробно анализируются и обсуждаются типы облачных вычислений, примеры облачных платформ и облачных баз данных.
2 ТИПЫ ОБЛАЧНЫХ ВЫЧИСЛЕНИЙ И ПРИМЕРЫ МОДЕЛЕЙ ОБЛАЧНЫХ СЕРВИСОВ
Существует три типа облачных вычислений: «инфраструктура как услуга» (IaaS), «программное обеспечение как услуга» (SaaS) и «платформа как услуга» (PaaS). Помимо определения трёх типов облачных вычислений, в данной статье будут приведены примеры платформ и сервисов, демонстрирующие преимущества использования каждого типа облачных вычислений.
Для наглядного представления различий между PaaS, IaaS и SaaS можно обратиться к рисунку 1. На нём показаны услуги, которыми управляют поставщики, и услуги, которыми управляют пользователи. В частности, в случае с программным обеспечением как услугой поставщик предоставляет клиенту/пользователю все услуги, включая приложения, данные, среду выполнения, промежуточное ПО, операционную систему, виртуализацию, серверы, хранилища и сетевое оборудование. На диаграмме показано, что в случае с инфраструктурой как услугой предоставляется всё оборудование, но всем остальным должен управлять пользователь. Платформа как услуга предоставляет все те же услуги, что и IaaS, но, в отличие от SaaS, не предоставляет приложения и данные. Если компания решает не использовать IaaS, PaaS или SaaS, ей придётся управлять и предоставлять все услуги самостоятельно, что очень дорого и неэффективно.
Рисунок 1 - IaaS, PaaS и SaaS: чем управляет поставщик (другой) и чем управляет пользователь (вы) [12]
2.1 Инфраструктура как услуга и Amazon Web Services
Инфраструктура как услуга (IaaS) предоставляет «серверное, сетевое оборудование и системы хранения данных» [1] для хранения приложений, а также платформу для их запуска. Используя IaaS, клиенты могут минимизировать затраты, используя ресурсы по мере необходимости, а не оплачивая и поддерживая центр обработки данных. Amazon Web Services является примером инфраструктуры как услуги и предоставляет клиентам ресурсы для создания собственных масштабируемых приложений в виде различных облачных продуктов. [1] Благодаря Amazon Web Services компаниям не нужно обслуживать или оплачивать системы хранения данных, серверы или сетевое оборудование. Это позволяет организациям быстрее развиваться и снижать ИТ-расходы, поскольку клиенты платят только за то, что используют. [9]
2.2 Программное обеспечение как услуга и Salesforce
Программное обеспечение как услуга (SaaS) — это прикладная модель программного обеспечения, предлагаемая клиентам для использования через Интернет. Поставщики SaaS предоставляют клиентам в аренду прикладное программное обеспечение и ресурсы центров обработки данных, такие как серверы, хранилища и сетевое оборудование, у поставщиков IaaS.[4] Salesforce предлагает множество продуктов, помогающих компаниям-клиентам использовать данные для решения бизнес-задач и взаимодействия со своими клиентами. Поскольку Salesforce является примером модели «программное обеспечение как услуга», функциональность платформы реализована с помощью перетаскивания, что упрощает внедрение инноваций для компаний.[10]
2.3 Платформа как услуга и Microsoft Azure
Платформа как услуга (PaaS) представляет собой сочетание SaaS и IaaS, то есть поставщики предлагают клиентам оборудование и некоторое прикладное программное обеспечение, чтобы они могли разрабатывать и развертывать приложения через Интернет. [1] Поскольку Microsoft Azure является примером платформы как услуги, это комплексный набор облачных сервисов, которые разработчики и ИТ-специалисты используют для создания, развертывания и управления приложениями через глобальную сеть центров обработки данных. Интегрированные инструменты позволяют организациям создавать любые решения — от простых мобильных приложений до решений интернет-масштаба. [11]
3 ПРИМЕРЫ ОБЛАЧНЫХ БАЗ ДАННЫХ
Облачная база данных — это база данных, которая обычно работает на платформе облачных вычислений. Пользователи могут выбрать один из двух методов запуска своей базы данных в облаке [8]. Первый метод заключается в том, что облачные платформы позволяют пользователям устанавливать и поддерживать собственные базы данных в течение ограниченного времени [8]. То есть пользователи могут приобретать или поддерживать базу данных у третьей стороны и использовать другие сервисы, предоставляемые платформами облачных вычислений. Например, пользователи могут использовать Oracle Database 11g Enterprise Edition, предоставляемую Oracle на Microsoft Azure (что является PaaS, как объяснялось ранее). Второй метод заключается в том, что облачные платформы отвечают за установку и поддержку баз данных, а пользователи платят за эти части сервисов [8]. Этот метод называется Database-as-a-service (DBaaS) [8]. Например, Amazon Web Services предлагает три вида баз данных: SimpleDB (NoSQL key-value store), Amazon RDS (реляционная база данных с поддержкой MySQL) и DynamoDB. Microsoft предлагает сервис Azure SQL Database на платформе облачных вычислений Microsoft Azure. Google предлагает NoSQL cloud bigtable, то есть сервисы базы данных больших данных NoSQL на облачной платформе Google. В этой статье мы подробно рассмотрим simpleDB от Amazon и bigtable от Google с точки зрения их моделей данных, а также сравним их преимущества и ограничения.
3.1 Amazon SimpleDB
3.1.1 Основная информация об Amazon SimpleDB
Amazon simpleDB — это распределённая база данных NoSQL, написанная на Erlang компанией Amazon.com [9]. Она используется как часть Amazon Web Services (AWS). Разработчикам нужно только хранить данные и запрашивать их через веб-сервисы, а Amazon simpleDB сделает всё остальное. Таким образом, сервис позволяет разработчикам сосредоточиться на разработке приложений и сэкономить время, переложив трудоёмкую задачу администрирования базы данных на Amazon simpleDB. Кроме того, хотя пользователи не выполняют администрирование базы данных на своих компьютерах, Amazon simpleDB предоставляет основные функции базы данных: быстрые и своевременные запросы, а также высокую доступность и надёжность [9].
3.1.2 Модель данных
Модель данных Amazon SimpleDB упрощает хранение, управление и выполнение запросов к структурированным данным. При использовании Amazon SimpleDB разработчики организуют свои наборы данных в домены, внутри которых они могут размещать данные, получать данные или выполнять запросы. На рисунке 2 показано, как выглядят домены Amazon SimpleDB [7]. Имеется n электронных таблиц, каждая из которых представляет один домен [7]. В каждой таблице содержится от одного до n элементов (строк) и от одного до n атрибутов (столбцов). Элементы содержат пары «имя:значение», связанные с каждым атрибутом, что означает, что существует значение данных, которому соответствует каждая пара атрибутов элемента.
Рисунок 2 - Домены для платформы Amazon SimpleDB. [7]
3.1.2.1 SimpleDB от Amazon позволяет пользователям легко добавлять, обновлять и удалять домены и атрибуты [6]. Вот пример того, как пользователь может добавить домен с помощью платформы SimpleDB от Amazon [6]. В этом случае существует несколько доменов и один элемент на каждый домен. На рисунке 3 показаны два домена, каждый с одним элементом, CustomerID:
123 и 456. Чтобы добавить домены в таблицу, используйте функцию PUT с парами «имя-значение» атрибутов для каждого CustomerID. Это показано ниже:
PUT (item, 123), (First name, Bob), (Last name, Smith), (Street address, 123 Main St.), (City, Springfield), (State, MO), (Zip, 65801), (Telephone, 222-333-4444)
PUT (item, 456), (First name, James), (Last name, Johnson), (Street address, 456 Front St.), (City, Seattle), (State, WA), (Zip, 98104), (Telephone, 333-444-5555)
Рисунок 3 - Несколько доменов с одним элементом на домен, показывает вывод после завершения функции PUT. [6]
3.1.2.2 Пример нескольких доменов с несколькими элементами
Теперь возьмем более сложный пример, в котором у нас есть несколько доменов, каждый с несколькими товарами. После ввода данных на Рисунок 2 мы компилируем все электронные таблицы в одну таблицу, в которой отображаются все товары всех доменов [7]. Как показано на Рисунок 4, каждый товар показывает одну купленную вещь вместе с ее категорией, подкатегорией, названием, цветом, размером, маркой и моделью. В отличие от реляционных баз данных, одна ячейка в домене может иметь несколько значений. Например, в этом примере item_03 перечисляет три значения в атрибуте Color: синий, желтый и розовый. Кроме того, модель данных Amazon SimpleDB не требует, чтобы все домены имели одинаковые атрибуты [7]. Разные домены могут иметь совершенно разные атрибуты. В этом примере одна электронная таблица содержит товары из категории «Одежда» вместе с атрибутами Subcat., Name, Color и Size, в то время как другая электронная таблица содержит товары из категории «Автозапчасти» с атрибутами Subcat., Name, Mark и Model и т. д. Таким образом, SimpleDB от Amazon предлагает больше гибкости, чем реляционные базы данных, поскольку для каждой ячейки допускается несколько значений. Кроме того, вместо того, чтобы каждый раз обновлять таблицы в MySQL, с помощью SimpleDB от Amazon мы можем легко добавлять, обновлять и удалять атрибуты, которые применяются к определенным записям в каждом домене [3].
Рисунок 4 - Заполненная электронная таблица всех доменов со всеми элементами [7]
3.1.3 Преимущества
Базовая база данных SimpleDB от Amazon недорога в эксплуатации, проста в использовании и обеспечивает стабильный доступ к данным. С SimpleDB от Amazon пользователи платят только за потребляемые ресурсы. [9] SimpleDB от Amazon проста в использовании, поскольку не требует предопределенных схем: данные автоматически индексируются системой при изменении атрибутов. [3]. У Amazon есть дата-центры по всему миру. Таким образом, в случае выхода из строя одного из центров, клиенты всегда смогут получить доступ к своим данным. [5]
3.1.4 Ограничения
SimpleDB от Amazon также имеет некоторые ограничения. Она не может обрабатывать большие запросы и сложные объединения, а также не может гарантировать целостность и согласованность данных. Хотя SimpleDB покрывает 80% всех потребностей баз данных, она важна лишь в определённых контекстах [3]. Она не может обрабатывать длинные запросы и сложные объединения [3]. Кроме того, поскольку данные распределены по нескольким центрам обработки данных, целостность и согласованность данных не гарантируются, что негативно сказывается на пользовательском опыте [3].
3.2 Bigtable от Google
3.2.1 Базовая информация
Bigtable от Google — это тип базы данных NoSQL, предоставляемый Google App Engine, который является примером платформы как услуги (Platform-as-aService). Bigtable описывается как «небольшая по объёму таблица, которая может масштабироваться до миллиардов строк и тысяч столбцов, позволяя хранить терабайты и даже петабайты данных»[2]. «Многие проекты Google, включая веб-индексирование, Google Earth и Google Finance, хранят данные в Bigtable»[2]. Эта база данных успешно предоставляет гибкое и высокопроизводительное решение для всех этих продуктов Google, учитывая их различные потребности[2].
3.2.2 Модель данных
Модель данных Bigtable представляет собой разреженную, распределённую, персистентную многомерную отсортированную карту.[3] На рисунке 5 показана модель данных Bigtable. Она включает карту, где каждое значение представляет собой «неинтерпретируемый массив байтов»[2], возвращающий строку. Карта индексируется по ключу строки, семейству столбцов и временной метке.[2] Каждая строка индексируется по одному ключу строки[2], и каждый ключ строки является атомарным.[2] Квалификатор столбца — это имя, которое вы присваиваете значениям данных внутри семейства, чтобы можно было однозначно идентифицировать каждого члена семейства столбцов. Временная метка — это способ индексации различных версий одних и тех же данных.[2]
(row:string, column:string, time:int64) → string
Рисунок 5 - Модель данных Google Bigtable [2]
3.2.2.1 Пример модели данных Google Bigtable
Для дальнейшего объяснения модели данных приведем пример, ссылающийся на рисунок 6. [2]. Мы хотим сохранить копию большой коллекции веб-страниц и связанной с ними информации, которая может использоваться во многих различных проектах [2]. В этом примере таблица, созданная моделью на рисунке 6, называется Webtable и содержит два семейства столбцов: anchor и content. В частности, ключом строки является обратный URL «com.cnn.www», «contents:» — это семейство столбцов, а содержимое ячейки — «html>...». Столбец «contents:» имеет три версии с метками времени t3, t5 и t6. Семейство столбцов anchor имеет квалификаторы «cnnsi.com» и «my.look.ca.» (с использованием синтаксиса: family:qualifier). Семейство столбцов «contents» содержит основной веб-сайт «html>…», в то время как семейство столбцов «anchor» содержит два веб-сайта «CNN» и «CNN.com», которые перенаправляют вас на исходный веб-сайт «com.cnn.www» [2].
Рисунок 6
3.2.3 Преимущества и ограничения
Использование Google Bigtable имеет как преимущества, так и ограничения. Bigtable от Google имеет более быстрое время отклика, чем система управления реляционными базами данных (RDBMS) [3]. Традиционные подходы, такие как соединение и нормализация в реляционной базе данных, здесь не нужны [3]. Администрирование базы данных с Bigtable просто, поскольку это пример платформы как услуги [5]. Поэтому пользователям не нужно беспокоиться о покупке и обслуживании оборудования. Вместо этого пользователям нужно только разработать схемы таблиц. Однако, даже если задача должна быть выполнена в одном центре обработки данных, Bigtable не позволяет этого, потому что их система использует большое количество узлов для выполнения любой задачи. Кроме того, Bigtable не поддерживает транзакции ACID, используемые в RDBMS [3].
Выводы
Облачные вычисления предоставляют пользователям возможность настраивать надежное программное обеспечение и приложения, экономя деньги, оплачивая только используемые ресурсы. Существует три типа облачных вычислений: инфраструктура как услуга (IaaS), программное обеспечение как услуга (SaaS) и платформа как услуга (PaaS). Для каждого типа облачных вычислений существует несколько облачных платформ, которые компании могут использовать для хранения и управления своими данными. К ним относятся Amazon Web Services (IaaS), Salesforce (SaaS) и Microsoft Azure (PaaS). Эти платформы также поддерживают реляционные базы данных и базы данных NoSQL. Amazon SimpleDB и Google Bigtable — две облачные базы данных NoSQL, работающие на Amazon Web Services (IaaS) и Google App Engine (PaaS).
Литература
- Бардуадж Сушил, Джейн Лина, Джейн Сандіп. Облачные вычисления: исследование модели «Инфраструктура как услуга» (IaaS) [Cloud Computing: A Study of Infrastructure as a Service (IAAS)] // International Journal of Engineering and Information Technology. 2010. Т. 2, № 1. С. 60–63.
- Чанг Фэй, Дин Джеффри, Гемават Санджай и др. Bigtable: распределённая система хранения структурированных данных [Bigtable: A Distributed Storage System for Structured Data]. Google Inc., 2006.
- Раманатхан Шалини, Гоэл Савита, Алагумалаи Субраманиан. Сравнение облачных баз данных: Amazon SimpleDB и Google Bigtable [Comparison of Cloud database: Amazon’s SimpleDB and Google’s Bigtable] // Recent Trends in Information Systems (ReTIS) : материалы международной конференции (21–23 декабря 2011 г.). 2011.
- Ву Линлинь, Гарг Сауробх Кумар, Буйя Раджкумар. Управление допуском на основе SLA для провайдеров программного обеспечения как услуги в облачных средах [SLA-based Admission Control for Software-as-a-Service provider in Cloud Computing Environments] // Journal of Computer and System Sciences. 2011. 23 дек.
- Обзор Cloud Bigtable : электронный ресурс [Overview of Cloud Bigtable] // Google Cloud Platform. 2017. 8 ноября. URL: https://cloud.google.com/bigtable/docs/overview (дата обращения: 05.12.2017).
- Детали продукта Amazon SimpleDB : электронный ресурс [Amazon SimpleDB Product Details]. Amazon Web Services. URL: https://aws.amazon.com/simpledb/details/ (дата обращения: 05.12.2017).
- Модель данных Amazon SimpleDB : электронный ресурс [Data Model] // Amazon Web Services Documentation. URL: https://docs.aws.amazon.com/AmazonSimpleDB/latest/DeveloperGuide/DataModel.html (дата обращения: 05.12.2017).
- Облачная база данных : электронный ресурс [Cloud database] // Википедия — свободная энциклопедия. URL: https://en.wikipedia.org/wiki/Cloud_database (дата обращения: 07.12.2017).
- Amazon SimpleDB : электронный ресурс. Amazon Web Services. URL: https://aws.amazon.com/simpledb/ (дата обращения: 05.12.2017).
- Что такое облачные вычисления? : электронный ресурс [What is cloud computing?] // Salesforce. URL: https://www.salesforce.com/cloudcomputing/ (дата обращения: 03.12.2017).
- Что такое Azure? : электронный ресурс [What is Azure?] // Microsoft Azure. URL: https://azure.microsoft.com/en-us/overview/what-is-azure/ (дата обращения: 06.12.2017).
- Стейми Лора. IaaS против PaaS против SaaS: различия и примеры облачных моделей [IaaS vs PaaS vs. SaaS Cloud Models (Differences & Examples)] : электронный ресурс // HostingAdvice.com. 2017. 30 мая. URL: https://www.hostingadvice.com/how-to/iaas-vs-paas-vs-saas/ (дата обращения: 29.11.2017).
Introduction to Cloud Computing and Examples of Cloud Databases
Building a Graph Neural Network Model for E-Commerce
The article discusses the development of graph neural network (GNN) models for e-commerce, aimed at predicting user interactions with the content of the main page. The methods described focus on utilizing networks to improve relevance and personalize the user experience.
The purpose of this work is to examine the features of the graph neural network architecture specifically designed for e-commerce tasks. This architecture operates on graph data structures, allowing for the consideration of different levels of connections between users and products, and their various features.
The methodology employs graph node embedding algorithms such as GraphSAGE and Node2Vec, which transform any data into numerical vector representations. The sources used include scientific articles published by the author in the public domain, as well as materials available on the Internet, enabling a comprehensive exploration of the topic.
The results demonstrate that the proposed architecture enhances the accuracy of content personalization, as evidenced by increased click-through rates (CTR) and revenue. The implementation of this system modifies the algorithms for ranking content, thereby impacting the platform’s effectiveness.
The article will be valuable for specialists working on recommendation systems, researchers, and developers of e-commerce solutions. The conclusions affirm the success of the proposed architecture in data analysis and user experience adaptation.
Ключевые слова: deep learning, graph neural network models, deep and cross-network, recommendation systems, embeddings, prediction, browsing history.