Алексей Шуленин Эксперт по технологиям обработки и анализа информации Департамент стратегических технологий Российское пре...
Краткое введение в (за)облачные вычисления <ul><li>Одними из первых облачную модель вычислений реализовали средства коллек...
Краткое введение в (за)облачные вычисления <ul><li>Преимущества облачной модели с точки зрения заказчика </li></ul><ul><ul...
Краткое введение в (за)облачные вычисления <ul><li>Требования к поставщику </li></ul><ul><ul><li>Эффективность и надежност...
Эволюция хостинга
Отличия Облака от модели хостинга и  SaaS <ul><li>Клиент не оговаривает инфраструктуру </li></ul><ul><ul><li>Определяется ...
DaaS <ul><li>Итак, как мы видели,  SaaS  только выиграет от размещения его в Облаке. А чем не сервис база данных? </li></u...
Три модели  DaaS <ul><li>Multitenancy hosted model </li></ul><ul><ul><li>Несколько организаций шарят одну базу </li></ul><...
Основные игроки <ul><li>Amazon SimpleDB </li></ul><ul><ul><li>Веб-сервис для хранения, обработки и доступа к информации в ...
Основные игроки <ul><li>Oracle </li></ul><ul><ul><li>Oracle Application Express (APEX) –  давнишнее средство создания чере...
Подход  Microsoft   <ul><li>Microsoft   SQL   Server   Data Services </li></ul><ul><ul><li>Впервые объявлены на конференци...
Подход  Microsoft   <ul><li>Distributed Fabric  </li></ul>Application Service Platform Data Service Platform Integrated St...
SQL Server Data Services : основные наименования <ul><li>Zurich  –   платформа разработки сервисов как строительных блоков...
Три ключевых сценария Low Friction  Database Endpoint Rich Query Archive Generic Data Hub Application Cloud DB Sitka Appli...
Принципы построения <ul><li>Goal: A storage platform built for  extreme scale  and low cost </li></ul><ul><li>Commodity ha...
Масштабирование  CloudDB Table Group Customers Row Group Orders Partition Partitioning Key Column (OrderId) <ul><li>Table ...
Архитектура  CloudDB Mgmt. Services Data Node SQL Server Fabric Data Node Components Partition Manager Master Node Mgmt. S...
Основные компонеты архитектуры <ul><li>Master Cluster Manager </li></ul><ul><ul><li>Хранение состояния кластера  ( карта п...
Взаимодействие узлов CloudDB Client Library (ADO.Net) SQL Process Fabric Process SQL Process Fabric Process SQL Process Fa...
Создание избыточности SQL Server P S S S Replication Agent Local Partition Map Data Node 100 Data Node 101 P S S S Data No...
Вспомогательные сервисы Data Node Device Manager Provisioning Deployment AutoPilot Service Manager Watchdogs Management Se...
Мониторинг <ul><li>Контроль наиболее важных сервисных компонентов : </li></ul><ul><ul><li>Производительность </li></ul></u...
Операционный цикл
Понятие АСЕ <ul><li>A uthority </li></ul><ul><ul><li>Единица географического местоположения и биллинга </li></ul></ul><ul>...
Пример сущностей Property Type Value Metadata ID EntityId VWGOLF-01 Kind EntityKind Car FlexProps Description String Relia...
Пример сущности <ul><li><s:EntitySet xmlns:s=&quot;http://schemas.microsoft.com/sitka/2008/03/&quot;  xmlns:xsi=&quot;http...
Работа со свойствами <ul><li>В альфе </li></ul><ul><li>Entity e1 = new Entity(); </li></ul><ul><li>// Set required metadat...
Архитектура  SSDS CloudDB Data Cluster Fabric  Replication  SQL Client TECHNOLOGY STACK DATA MODEL  Sitka midtier Storage ...
API <ul><li>Протоколы  REST, SOAP </li></ul><ul><li>Язык запросов по типу синтаксиса С #   LINQ  </li></ul><ul><ul><li>fro...
Итак... <ul><li>CloudDB –  внутренняя система распределения и  обработки данных и обеспечения их избыточности в целях отка...
Дальнейшие ресурсы <ul><li>Официальная страница проекта </li></ul><ul><ul><li>http://www.microsoft.com/sql/dataservices/de...
Upcoming SlideShare
Loading in …5
×

Sql Server Data Services

590 views
506 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
590
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Sql Server Data Services

  1. 1. Алексей Шуленин Эксперт по технологиям обработки и анализа информации Департамент стратегических технологий Российское представительство Microsoft
  2. 2. Краткое введение в (за)облачные вычисления <ul><li>Одними из первых облачную модель вычислений реализовали средства коллективной работы (веб-почты, веб-конференции) лет 8-10 назад </li></ul><ul><li>Традиционно такого рода софт прятался за файрволы в целях защиты, приватности и т.д., без чего жить вообще казалось немыслимо </li></ul><ul><li>К описываемому сроку этот рынок благополучно поделили между собой, в основном, IBM/Lotus и Microsoft . Казалось, что все незыблемо устаканилось. </li></ul><ul><li>Почему поначалу тонкий ручеек в лице WebEx (приобретена Cisco в 2007 г.), PlaceWare (с 2003 г. – MS Office Live Meeting ), WebDialogs (c 2007 – IBM Lotus Sametime Unyte) и др . сумел не только пробить новый сегмент рынка, но и изменить бизнес-модель корпоративной совместной работы, вызвав новые правила лицензирования и распространения? </li></ul>
  3. 3. Краткое введение в (за)облачные вычисления <ul><li>Преимущества облачной модели с точки зрения заказчика </li></ul><ul><ul><li>Не требует крупных предварительных инвестиций </li></ul></ul><ul><ul><li>Меньше операционных издержек </li></ul></ul><ul><ul><ul><li>Размещение громадных количеств пользователей на высокомасштабируемом сервере дает стоимость в расчете на пользователя на порядки меньше, чем в случае развертывания системы на предприятии </li></ul></ul></ul><ul><ul><li>Пересекает границы организации </li></ul></ul><ul><ul><ul><li>Файрвол не преграда </li></ul></ul></ul><ul><ul><ul><li>Ценность информации многократно возрастает, если расширить ее на партнеров, поставщиков, клиентов </li></ul></ul></ul><ul><ul><ul><li>Проще, чем строить экстранет </li></ul></ul></ul><ul><ul><li>Быстрая подготовка к работе </li></ul></ul><ul><ul><ul><li>Пользователям не требуется ждать внедрения и настройки специализированных средств </li></ul></ul></ul><ul><ul><li>Позволяет IT сфокусироваться на инновациях </li></ul></ul>
  4. 4. Краткое введение в (за)облачные вычисления <ul><li>Требования к поставщику </li></ul><ul><ul><li>Эффективность и надежность центра обработки данных </li></ul></ul><ul><ul><li>Специализированная архитектура приложений </li></ul></ul><ul><ul><ul><li>Традиционный софт ориентирован на работу с данными организации на выделенном сервере </li></ul></ul></ul><ul><ul><ul><li>В облачной модели данные и процессы от разных организаций нужно уметь распределять по общей серверной инфраструктуре </li></ul></ul></ul><ul><ul><li>Корпоративный опыт </li></ul></ul><ul><ul><ul><li>Которого обычно недостает производителям « public-facing » приложений. Например, в Gmail отсутствует механизм надежной пользовательской аутентификации (начали вводить в услуге Google Enterprise) </li></ul></ul></ul><ul><ul><li>Гладкая интеграция «стойки» ( on-premise) и Облака </li></ul></ul><ul><ul><ul><li>Не все данные и процессы могут быть отнесены в Облако, некоторые останутся локально </li></ul></ul></ul><ul><ul><ul><li>Должна обеспечиваться прозрачная для пользователя поддержка обоих сценариев, возможность отсоединенной работы </li></ul></ul></ul>
  5. 5. Эволюция хостинга
  6. 6. Отличия Облака от модели хостинга и SaaS <ul><li>Клиент не оговаривает инфраструктуру </li></ul><ul><ul><li>Определяется вендором Облака в виде плоского горизонтально масштабируемого серверного слоя, на которой располагаются сервисы </li></ul></ul><ul><li>Гораздо больший уровень виртуализации, чем в традиционном хостинге </li></ul><ul><ul><li>Приложение может «размазываться» как по физическим, так и виртуальным инстансам </li></ul></ul><ul><li>Оплата за потребление ресурсов </li></ul><ul><ul><li>Ресурсами могут выступать общее процессорное время на задачу и переданные объемы данных, чем фиксированная помесячная арендная плата в зависимости от сервера или пропускной способности </li></ul></ul><ul><li>Нет жестких сроков контрактов </li></ul><ul><ul><li>Клиенты вольны прийти и уйти, когда им вздумается </li></ul></ul><ul><ul><li>Как правило, минимальное действие час, без регистрационных взносов </li></ul></ul><ul><ul><li>Следствие: идеальный сценарий для разработки, тестирования, прототипирования, ... без отвлечения персонала IT </li></ul></ul>
  7. 7. DaaS <ul><li>Итак, как мы видели, SaaS только выиграет от размещения его в Облаке. А чем не сервис база данных? </li></ul><ul><li>Справедливыми остаются все названные выше преимущества </li></ul><ul><ul><li>Снижение затрат, неограниченные ресурсы, обобществление данных в реальном времени, ... </li></ul></ul>
  8. 8. Три модели DaaS <ul><li>Multitenancy hosted model </li></ul><ul><ul><li>Несколько организаций шарят одну базу </li></ul></ul><ul><ul><li>Грубо говоря, каждый эккаунт привязан к своей схеме </li></ul></ul><ul><ul><li>Стандартный доступ через SOAP, REST, XML, ODBC, JDBC, SQL </li></ul></ul><ul><ul><li>Можно создавать таблички, DRI, запрашивать, добавлять, изменять данные </li></ul></ul><ul><ul><li>Нет задачи сопровождать и поддерживать </li></ul></ul><ul><li>Dedicated database hosted model </li></ul><ul><ul><li>Каждой организации выделяется по БД </li></ul></ul><ul><ul><li>Все БД шарят общую инфраструктуру: сервера, сторидж, ... </li></ul></ul><ul><ul><li>Доступ по стандартным протоколам, что и в пред.случае </li></ul></ul><ul><ul><li>DBA клиента может апгрейдить, тюнить базу, вообще делать с ней, что хочет – она же его выделенная </li></ul></ul><ul><li>Database container model </li></ul><ul><ul><li>Обращаемся уже не к таблицам, а к сущностям </li></ul></ul><ul><ul><li>Более высокий уровень абстракции </li></ul></ul><ul><ul><li>Сущности, вообще говоря, нереляционны, хотя основываются на реляционных таблицах </li></ul></ul><ul><ul><li>Базовая сущность – набор свойств со значениями, сущности могут наследовать друг от друга </li></ul></ul><ul><ul><li>Доступ к контейнеру сущностей как к веб-сервису (REST, SOAP) </li></ul></ul>
  9. 9. Основные игроки <ul><li>Amazon SimpleDB </li></ul><ul><ul><li>Веб-сервис для хранения, обработки и доступа к информации в Облаке </li></ul></ul><ul><ul><li>Работает в тесной связке с Simple Storage Service (S3) и Elastic Compute Cloud (EC2) </li></ul></ul><ul><ul><li>Оптимизирована для работы с небольшими объемами данных, организованными в домены (контейнеры) </li></ul></ul><ul><ul><li>Домен = таблица; элементы = строки, атрибуты = колонки, ячейки = значения </li></ul></ul><ul><ul><li>Простейшая модель данных без определения схемы, не поддерживается ссылочная целостность между доменами </li></ul></ul><ul><ul><li>API = REST, SOAP </li></ul></ul><ul><ul><ul><li>SQL не поддерживается </li></ul></ul></ul><ul><ul><li>Не требует вовлечения DBA для резервного копирования, обеспечения отказоустойчивости и безопасности </li></ul></ul><ul><ul><li>Позиционируется как альтернатива СУБД в простеньких Web -приложениях </li></ul></ul><ul><li>Force.com </li></ul><ul><ul><li>В основном предлагает PaaS (Platform), DaaS идет как встроенный сервис наряду с разработкой приложений и средой выполнения </li></ul></ul><ul><ul><li>DaaS позволяет создавать реляционные таблицы и поддерживает ссылочную целостность между сущностями </li></ul></ul><ul><ul><li>Доступ – через специализированные протоколы Force.com Web services API и Salesforce Object Query Language (SOQL) </li></ul></ul><ul><li>EnterpriseDB </li></ul><ul><ul><li>Продукт носит название Postgres Plus Advanced Server Cloud Edition </li></ul></ul><ul><ul><li>Интегрирован с веб-сервисами Amazon’s Elastic Compute Cloud (EC2) и Simple Storage Services (S3) </li></ul></ul><ul><ul><li>По принципу построения – типичная Dedicated Hosted Model </li></ul></ul>
  10. 10. Основные игроки <ul><li>Oracle </li></ul><ul><ul><li>Oracle Application Express (APEX) – давнишнее средство создания через браузер примитивных оракловых аппликаций </li></ul></ul><ul><ul><li>Oracle On-Demand - hosted database service для PeopleSoft и Oracle Applications </li></ul></ul><ul><ul><ul><li>Клиент так же тратит деньги на оракловый софт, Oracle только берет на себя функции сопровождения и поддержки в своем центре данных </li></ul></ul></ul><ul><li>Sun-MySQL </li></ul><ul><ul><li>MySQL используется в DaaS офферинге EC2 от Амазона </li></ul></ul><ul><ul><li>Sun предлагает всем свои серваки и сторидж в датацентре за $1 на процессор в год или что-то вроде этого </li></ul></ul><ul><ul><li>Project Caroline - PaaS </li></ul></ul><ul><li>Google BigTable </li></ul><ul><ul><li>Разработанная 2 года назад штука для масштабирования петабайт структурированной информации по потребительским серверам </li></ul></ul><ul><ul><li>Используется в Web -индексации, Google Earth, Google Finance, ... </li></ul></ul><ul><ul><li>Не есть база данных в строгом смысле слова – распределенная разреженная многомерная отсортированная карта </li></ul></ul><ul><ul><li>Карта индексируется по Row Key, Column Key, Timestamp . Однотипные колонки объединяются в семейства – базовые единицы контроля доступа. Содержание ячейки – неинтерпретируемый массив байт </li></ul></ul><ul><ul><li>Пример: адрес страницы (в обратном порядке) – строка; анкеры, откуда на нее идут ссылки, - семейство колонок, html – содержание. Хранится 3 последних версии. </li></ul></ul>
  11. 11. Подход Microsoft <ul><li>Microsoft SQL Server Data Services </li></ul><ul><ul><li>Впервые объявлены на конференции MIX’08 5 марта 2008 г. </li></ul></ul><ul><ul><li>http://visitmix.com/blogs/2008Sessions/BT05/ </li></ul></ul><ul><ul><li>Апрель – август – закрытое бета-тестирование (ограниченный круг тестеров) </li></ul></ul><ul><ul><li>С сентября находятся в стадии открытого тестирования – каждый желающий может зарегистрироваться на участие здесь: http://www.microsoft.com/sql/dataservices/default.mspx </li></ul></ul>
  12. 12. Подход Microsoft <ul><li>Distributed Fabric </li></ul>Application Service Platform Data Service Platform Integrated Store CloudDB Distributed In-Memory Cache Velocity Queues Data Delivery Identity User Management Reporting Service RS Business Intelligence BI Storage Service Stratus Data Archiving Backup Data Warehouse Manageability (Autopilot) External CloudDB DSP Unified Programming Model Workflow Distributed Job Framework Distributed Query Resource Allocation and Governance Virtualization Synch Services (Harmonica) Data Fidelity And Cleansing Data Center Services (GFS) Billing Networking Facilities Support Throttling and Metering
  13. 13. SQL Server Data Services : основные наименования <ul><li>Zurich – платформа разработки сервисов как строительных блоков приложений, ориентированных на Облако в связке с on-premise </li></ul><ul><ul><li>CloudDB – хостинговая платформа хранения данных и обработки запросов на основе технологии SQL Server </li></ul></ul><ul><ul><ul><li>Dynamically add / remove partition ranges </li></ul></ul></ul><ul><ul><ul><li>Load balance partition ranges </li></ul></ul></ul><ul><ul><li>Используются в сервисах </li></ul></ul><ul><ul><ul><li>Внутренние </li></ul></ul></ul><ul><ul><ul><ul><li>Windows Live </li></ul></ul></ul></ul><ul><ul><ul><li>Внешние </li></ul></ul></ul><ul><ul><ul><ul><li>Sitka , он же Stratus – сервис хранения данных </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Exchange Hosted Archive (EHS-A) – 400 ТБ </li></ul></ul></ul></ul><ul><ul><ul><ul><li>SharePoint , Data Protection Manager , BizTalk , ... </li></ul></ul></ul></ul><ul><ul><ul><li>Франшиза? </li></ul></ul></ul><ul><li>Включают “Data Platform Services” </li></ul><ul><ul><li>Синхронизация, отчетность, анализ </li></ul></ul>Mgmt, Provisioning (AP) CloudDB Sitka EHS-A … Unstructured BLOB Simple Structured Structured, Rich Query Database Spectrum Building Block Svc Finished Svc
  14. 14. Три ключевых сценария Low Friction Database Endpoint Rich Query Archive Generic Data Hub Application Cloud DB Sitka Application Cloud DB Archive App. Email / Collab / LOB App Microsoft Written Cloud DB Sitka Application Integration Synch App
  15. 15. Принципы построения <ul><li>Goal: A storage platform built for extreme scale and low cost </li></ul><ul><li>Commodity hardware to lower CapEx </li></ul><ul><li>Lights out operations and self healing to lower OpEx </li></ul><ul><li>Optimize I/O throughput </li></ul><ul><li>Achieved via: </li></ul><ul><li>Partition data </li></ul><ul><ul><li>Apps are partition aware to exploit data parallelism for high availability, scaling and throughput </li></ul></ul><ul><ul><li>Partitions are replicated to achieve reliability </li></ul></ul><ul><ul><li>System is self healing - partition data fails over, load-balances, and scales-up </li></ul></ul><ul><li>Trade off single system image for scale, throughput, low cost </li></ul><ul><ul><li>Fan out operations for large scale, cross partition query workloads </li></ul></ul><ul><ul><li>Optimize code paths for high throughput </li></ul></ul><ul><li>Easy to deploy and manage </li></ul><ul><ul><li>No DBA required to manage cluster </li></ul></ul><ul><ul><li>Job framework for deploying and running scheduled tasks </li></ul></ul>Provisioning, Deployment, Management 1-100 101-200 201-300 301-400 401-500 Client Fetch Partition Map Cluster Manager Request (Key:=323) Partition Lookup
  16. 16. Масштабирование CloudDB Table Group Customers Row Group Orders Partition Partitioning Key Column (OrderId) <ul><li>Table : logical relation </li></ul><ul><ul><li>Has a partitioning key : controls partitioning across servers </li></ul></ul><ul><ul><li>Has a clustering key : controls ordering of rows within a server </li></ul></ul><ul><li>Table group : a set of tables with the same partitioning key </li></ul><ul><li>Row group : set of rows in table group with same partitioning key value </li></ul><ul><ul><li>Always on exactly one server </li></ul></ul><ul><ul><li>But may not be clustered </li></ul></ul><ul><ul><li>Напр., в связке Customer->Orders->LineItems все три таблы партиционируются по Customer ID </li></ul></ul><ul><li>Each table group distributed across nodes </li></ul><ul><ul><li>Each storage node assigned ranges “ partitions ” of key values </li></ul></ul><ul><ul><li>Each partition is replicated for durability </li></ul></ul>Id Name 34 John 57 … 92 … … … Id Oid S 34 1  34 2  92 1  … …
  17. 17. Архитектура CloudDB Mgmt. Services Data Node SQL Server Fabric Data Node Components Partition Manager Master Node Mgmt. Services Data Node SQL Server Fabric Mgmt. Services Data Node SQL Server Fabric Mgmt. Services Data Node SQL Server Fabric Deployment Health Monitoring AutoPilot Service Management Self-Healing Master Cluster Data Cluster Service Boundary Mid-Tier Node Integrated Client Library Application Mid-Tier Fabric Replication Fetch Partition Map SQL Client Mgmt. Services Data Node SQL Server Fabric Distributed Job Framework Distributed Data Services Fabric Distributed Query Reporting Services Caching GMV … … Data Node Components Partition Manager Master Node
  18. 18. Основные компонеты архитектуры <ul><li>Master Cluster Manager </li></ul><ul><ul><li>Хранение состояния кластера ( карта партиций ) </li></ul></ul><ul><ul><li>В высокодоступном состоянии (репликация) </li></ul></ul><ul><li>Distributed fabric </li></ul><ul><ul><li>Обнаружение сбоев </li></ul></ul><ul><ul><li>Выборы лидера </li></ul></ul><ul><ul><li>Переконфигурация </li></ul></ul><ul><li>Клиентская библиотека </li></ul><ul><ul><li>Построена на ADO.Net </li></ul></ul><ul><ul><li>Может работать вместе с Webstore 5.5 и Blue </li></ul></ul><ul><li>Autopilot и сторожевые собаки автопилота </li></ul><ul><ul><li>Сбор алертов, ведение логов, перезагрузка </li></ul></ul><ul><li>Distributed Job Framework </li></ul><ul><ul><li>Среда выполнения запланированных и непредвиденных (по ходу дела) заданий </li></ul></ul>
  19. 19. Взаимодействие узлов CloudDB Client Library (ADO.Net) SQL Process Fabric Process SQL Process Fabric Process SQL Process Fabric Process SQL Process Fabric Process CloudDB Master Node SQL Process Fabric Process CloudDB Master Node SQL Process Fabric Process Distributed Fabric Physical Disks CloudDB Data Cluster CloudDB Master Cluster Manager AP WD AP WD AP WD AP WD AP WD AP WD CloudDB Data Node CloudDB Data Node CloudDB Data Node CloudDB Data Node SQL Replication Fabric Messages SQLClient
  20. 20. Создание избыточности SQL Server P S S S Replication Agent Local Partition Map Data Node 100 Data Node 101 P S S S Data Node 102 P S S Data Node 103 P S S S Data Node 104 P S S S Data Node 105 P S S S Master Node (Primary Master) Primary Secondary Secondary Fabric Ring Topology Failure Detector Name Resolution Reconfiguration Agent Replica State Monitor Fabric Hosting Fabric Fabric Hosting Leader Elector Partition Manager Global Replica State Monitor Placement Advisor Load Balancer SQL Server Global Partition Map Fabric
  21. 21. Вспомогательные сервисы Data Node Device Manager Provisioning Deployment AutoPilot Service Manager Watchdogs Management Services Deployment Services Health Monitoring Perf Collection Backup Self Healing Perf Collection Cluster Perf DB (CloudDB TableGroup) Reporting Off-site Backup Trace Collection Trace DB (CloudDB TableGroup) CloudDB Deployment Self Healing Application Deployment AutoPilot
  22. 22. Мониторинг <ul><li>Контроль наиболее важных сервисных компонентов : </li></ul><ul><ul><li>Производительность </li></ul></ul><ul><ul><li>Доступность </li></ul></ul><ul><ul><li>Развертывания (изменения) </li></ul></ul><ul><ul><li>Сторожевые собаки </li></ul></ul><ul><li>Пороговые значения определяются в SLA и KPIs </li></ul><ul><li>Операционная система ключевых метрик доступна на портале </li></ul>
  23. 23. Операционный цикл
  24. 24. Понятие АСЕ <ul><li>A uthority </li></ul><ul><ul><li>Единица географического местоположения и биллинга </li></ul></ul><ul><ul><li>Аналог пространства имен </li></ul></ul><ul><ul><li>Представляется DNS- именем типа mydomain.data.beta.mssds.com , где mydomain – authority , а data.beta.mssds.com – сервис </li></ul></ul><ul><ul><li>Можно заводить несколько </li></ul></ul><ul><ul><li>Коллекция контейнеров </li></ul></ul><ul><li>C ontainer </li></ul><ul><ul><li>Коллекция сущностей </li></ul></ul><ul><ul><li>Запросы, перечисление, поиск сущностей </li></ul></ul><ul><ul><li>CRUD сущностей </li></ul></ul><ul><li>E ntity </li></ul><ul><ul><li>Набор name/value пар </li></ul></ul><ul><ul><li>Единица изменения </li></ul></ul><ul><ul><li>Базовые скалярные XSD- типы string , base64Binary , boolean , decimal , dateTime </li></ul></ul><ul><ul><li>Не имеет схемы, свойства разделяются на metadata (Id, Version, Kind) и flexible </li></ul></ul><ul><ul><li>Blob не имеет второй группы св-в, первая содержит дополнит.св-во Content </li></ul></ul>
  25. 25. Пример сущностей Property Type Value Metadata ID EntityId VWGOLF-01 Kind EntityKind Car FlexProps Description String Reliable, one owner, … Price Numeric 12000.00 ListingDate Datetime 01-01-2008 LocationZip String 98052 Property Type Value Metadata ID EntityId MINICOOPER-264 Kind EntityKind FunCar FlexProps Description String Reliable, one owner, … Price Numeric 12000.00 ListingDate String 1 st January, 2008 LocationZip String 98052 EngineSize Numeric 1600 Additional property Different instance types Different Kinds
  26. 26. Пример сущности <ul><li><s:EntitySet xmlns:s=&quot;http://schemas.microsoft.com/sitka/2008/03/&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:x=&quot;http://www.w3.org/2001/XMLSchema&quot;> </li></ul><ul><li><UsedBookKind> </li></ul><ul><li><s:Id>5fdc7c86-b3de-4f6f-a424-3e9c4d9215ad_MySampleBook</s:Id> </li></ul><ul><li><s:Version>1</s:Version> </li></ul><ul><li><Title xsi:type=&quot;x:string&quot;>My Book</Title> </li></ul><ul><li><ISBN xsi:type=&quot;x:string&quot;>1-57880-066-36</ISBN> </li></ul><ul><li><Author xsi:type=&quot;x:string&quot;>Mr. Author</Author> </li></ul><ul><li><Publisher xsi:type=&quot;x:string&quot;>Mr. Publisher</Publisher> </li></ul><ul><li><InPrint xsi:type=&quot;x:boolean&quot;>false</InPrint> </li></ul><ul><li><NumberOfCopiesSold xsi:type=&quot;x:decimal&quot;>250</NumberOfCopiesSold> </li></ul><ul><li><PublicationDate xsi:type=&quot;x:dateTime&quot;>2004-01-27T00:00:00</PublicationDate> </li></ul><ul><li><CoverPhoto xsi:type=&quot;x:base64Binary&quot;>AQID</CoverPhoto> </li></ul><ul><li></UsedBookKind> </li></ul><ul><li><UsedBookKind> … </UsedBookKind> </li></ul><ul><li>… </li></ul><ul><li></s:EntitySet> </li></ul>
  27. 27. Работа со свойствами <ul><li>В альфе </li></ul><ul><li>Entity e1 = new Entity(); </li></ul><ul><li>// Set required metadata properties </li></ul><ul><li>e1.Id = Guid.NewGuid().ToString() + &quot;_MySampleBook&quot;; </li></ul><ul><li>e1.Kind = &quot;UsedBookKind&quot;; </li></ul><ul><li>e1.Properties = new System.Collections.Generic.List<Property>(); </li></ul><ul><li>Property p = new Property(); </li></ul><ul><li>p.Name = &quot;Title&quot;; </li></ul><ul><li>p.Value = &quot;My First Book&quot;; </li></ul><ul><li>e1.Properties.Add(p); </li></ul><ul><li>  </li></ul><ul><li>Property p1 = new Property(); </li></ul><ul><li>p1.Name = &quot;ISBN&quot;; </li></ul><ul><li>p1.Value = &quot;1-57880-066-3&quot;; </li></ul><ul><li>e1.Properties.Add(p1); </li></ul><ul><li>  </li></ul><ul><li>Property p2 = new Property(); </li></ul><ul><li>p2.Name = &quot;Author&quot;; </li></ul><ul><li>p2.Value = &quot;Mr. Author&quot;; </li></ul><ul><li>e1.Properties.Add(p2); </li></ul><ul><li>… </li></ul><ul><li>В бете </li></ul><ul><li>Entity e1 = new Entity(); </li></ul><ul><li>// Set required metadata properties </li></ul><ul><li>e1.Id = Guid.NewGuid().ToString() + &quot;_MySampleBook&quot;; </li></ul><ul><li>e1.Kind = &quot;UsedBookKind&quot;; </li></ul><ul><li>e1.Properties = new Dictionary<string, object>(); </li></ul><ul><li>e1.Properties[&quot;Title&quot;] = &quot;My first Book&quot;; </li></ul><ul><li>e1.Properties[&quot;ISBN&quot;] = &quot;1-57880-066-36&quot;; </li></ul><ul><li>e1.Properties[&quot;Author&quot;] = &quot;Mr. Author&quot;; </li></ul><ul><li>… </li></ul>
  28. 28. Архитектура SSDS CloudDB Data Cluster Fabric Replication SQL Client TECHNOLOGY STACK DATA MODEL Sitka midtier Storage Tier SOAP or REST Sitka Biz Logic Layer Mgmt. Services SQL Server Fabric Data Node Data Node Mgmt. Services Data Node SQL Server Fabric Mgmt. Services Data Node SQL Server Fabric Mgmt. Services Data Node SQL Server Fabric Mgmt. Services Data Node SQL Server Fabric Mgmt. Services Data Node SQL Server Fabric Client Application [CloudDB ADO.Net client] REST SOAP Sitka Runtime
  29. 29. API <ul><li>Протоколы REST, SOAP </li></ul><ul><li>Язык запросов по типу синтаксиса С # LINQ </li></ul><ul><ul><li>from e in container where e.Kind == “Expo:FunCar” && e[ “Zip” ] == 98053 && e[ “Model” ] == “Mini Cooper” select e </li></ul></ul><ul><li>Семантике операторов не требует контракта схемы </li></ul><ul><ul><li>e[ “Zip” ] может быть строкой в одной сущности и числом в другой </li></ul></ul><ul><ul><li>e[ “Tag” ] == “CUSTOMER” означает отыскать все экземпляры, где Tag – строка и имеет значение “CUSTOMER” </li></ul></ul><ul><li>Поддерживаются запросы по данным и метаданным </li></ul>
  30. 30. Итак... <ul><li>CloudDB – внутренняя система распределения и обработки данных и обеспечения их избыточности в целях отказоустойчивости, построенная на основе технологии SQL Server </li></ul><ul><ul><li>Данные партиционируются (распределяются) и реплицируются (обеспечивается избыточность) между узлами </li></ul></ul><ul><ul><li>Настройкой этих задач занимается специальный слой. Отдельные компоненты следят за состоянием здоровья узлов. </li></ul></ul><ul><li>SQL Server Data Services – свободно масштабируемый, обращенный в Web сервис хранения и обработки данных в виде сущностей на основе CloudDB </li></ul><ul><ul><li>Масштабируемость по требованию </li></ul></ul><ul><ul><li>Business-ready SLA : высокая надежность, защита данных и производительность </li></ul></ul><ul><ul><li>Application Agility </li></ul></ul><ul><ul><ul><li>Гибкая модель данных для быстрой разработки приложений </li></ul></ul></ul><ul><ul><ul><li>Дружественный интерфейс Web 2.0 API </li></ul></ul></ul><ul><ul><ul><li>Простая модель запросов </li></ul></ul></ul>
  31. 31. Дальнейшие ресурсы <ul><li>Официальная страница проекта </li></ul><ul><ul><li>http://www.microsoft.com/sql/dataservices/default.mspx </li></ul></ul><ul><ul><li>Там же регистрация на бета-тестирование </li></ul></ul><ul><li>Документация </li></ul><ul><ul><li>http://msdn.microsoft.com/en-us/library/cc512417.aspx </li></ul></ul><ul><li>SDK </li></ul><ul><ul><li>http://msdn.microsoft.com/en-us/library/cc678662.aspx </li></ul></ul><ul><li>Блог разработчиков </li></ul><ul><ul><li>http://blogs.msdn.com/ssds/ </li></ul></ul><ul><li>Сайт конференции PDC 2008 </li></ul><ul><ul><li>http://www.microsoftpdc.com/ </li></ul></ul><ul><ul><li>27-30 октября, Лос-Анджелес </li></ul></ul>

×