MongoDB и .net с чего начать

MongoDB – это NoSQL база данных, обладающая хорошим горизонтальным масштабированием.
Для .net есть готовый оффицильный драйвер, который мы и будем использовать.
И так:
Установка
    1. Для установки нужно скачать дистрибутив http://www.mongodb.org/downloads
    2. Распаковать файлы в папку где у вас будет находиться MongoDB я например сделал это в папке D:\MongoDB
    3. Создайте папку data в нашей новой папке.
    4. Дальше нужно выполнить C:\mongodb\bin\mongod.exe --dbpath d:\MongoDB\data\db  это запустит MongoDB
    5. Я использую MongoDB как сервис, чтоб не следить запушен он или нет. Для этого нужно запустить mongod.exe с специальными параметрами   C:\mongodb\bin\mongod.exe --install --dbpath d:\MongoDB\data\db --logpath mongodb
    6. После этого mongodb будет уставлена как служба.


http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/


Теперь переходим к проекту
1. Идем в NuGet и качаем оттуда официальный  драйвер.
2. После этого начинаем работать с MongoDB

var connectionStringMongo = "mongodb://localhost";
var client = new MongoClient(connectionStringMongo);

var server = client.GetServer();
var database = server.GetDatabase("TestDataBase"); /*подключиться к базе, 
или создать ее, если таковой нет*/

Описание Windows Azure Storage и Azure SQL

В Windows Azure есть 3 места для хранения данных данных:


Storage
    Blob – хранилище больших элементов данных.
    Table – структурированное хранилище состояний сервиса, табличные данные без связей.
    Queue – короткие сообщения которые обеспечивает диспетчеризацию асинхронных заданий для реализации обмена данными между сервисами.
Azure SQL
     Реляционная база данных.
Driver
     Жесткий диск в формате NTFS.
 
Рассмотрим подробнее каждый их них.
Storage – общее название для Blob, Table и Queue  - все они создаются в «общем контейнере».

Доступ к ним осуществляется по адресам:
http://appname.blob.core.windows.net/<containerName>/<blobName>  для  блобов.
http://appname.table.core.windows.net/<TableName>  для таблиц.
http://appname.queue.core.windows.net/<QueueName>  для очередей.

Предназначение:

Blob – нужен для хранения больших объёмов данных, скажем видео, фото, файлов и тому подобное. Blob есть двух типов:
    1. Block Blobs – до 200 GB
    2. Page Blobs – до 1 TB.
С blob могут быть ассоциированы метаданные, которые задаются в виде пар <имя, значение> и могут достигать размера 8КБ для blob. Метаданные blob могут быть получены и заданы отдельно от данных blob.
Каждый blob должен храниться в контейнере.
У blob есть ограничения на размер загружаемого файла в 64 мб. Если размер вашего файла превышает 64 мегабайта, тогда необходимо загружать файл частями. Частями до 64 МБ каждый.

Table – хранилище структурированных данных. Одна запись может иметь до 255 свойств  (включая обязательные системные свойства: PartitionKey, RowKey и Timestamp) размер каждого свойства не может превышать 64 КБ, а суммарный размер строки не может превышать 1 МБ. Таблица (Table) – содержит набор записей. Вы можете создать любое количество таблиц.
Обязательные поля для таблицы:
    1. Ключ секции (PartitionKey) – Раздел таблицы.
    2. Ключ строки (RowKey) – Это уникальный ID сущности в рамках секции. PartitionKey в сочетании с RowKey уникально идентифицирует сущность в таблице.
    3. Временная метка (Timestamp) – Время создания или изменения, необходима для синхронизации и прочих операций.

Типы данных: PartitionKey и RowKey должны иметь тип строки и остальные свойства может быть любой из следующих типов: Binary, Bool, DateTime, Double, GUID, Int, Int64, String.

Queue – очередь содержит сообщения размер до 8КБ каждое, общее количество сообщений в очереди не ограничено. Единственное ограничение в 100 TB на размер всей очереди.

Параметры и ограничения для всего Storage:
    Вместимость - до 100 ТБ.
    Общее количество операций - до 5000 entities/messages/blobs в секунду.
    Пропускная способность - до 3 гигабит в секунду.
    Для одной очереди (Queue) - До 500 сообщений в секунду.
    Для одного раздела таблицы (Partition Table) – Для одного раздела пропускная способность составляет 500 операций в секунду. Стоит отметить что ограничение действует именно для одно раздела (Partition) а не для всей таблицы в целом.
    Для одного Blob - пропускная способность составляет до 60 Мб / сек.

 

В случае превышения лимита вы получите от сервера ошибку "503 server busy"

Azure SQL – реляционная база данных. База данных Web Edition позволяет хранить до 5 ГБ данных, база данных Business Edition позволяет хранить до 150 ГБ.
По скорости работы SQL Azure уступает Storage.

Driver – виртуальный жесткий диск с файловой системой NTFS. 

Ссылки:
http://msdn.microsoft.com/ru-ru/library/ee872420.aspx - Blob
http://msdn.microsoft.com/ru-ru/library/ee872426.aspx - Table
http://msdn.microsoft.com/ru-ru/library/ee872424.aspx - Queue
http://blogs.msdn.com/b/windowsazurestorage/archive/2010/05/10/.... - описание Storage