Альтернатива таблицам Windows Azure из облака
Я занимаюсь разработкой приложения.NET, которое должно работать как на Azure, так и на обычных серверах Windows(2003). В нем нужно хранить несколько ГБ данных, а SQL Azure слишком дорог для меня, поэтому я буду использовать таблицы Azure в облачной версии. Можете ли вы порекомендовать решение для хранения данных, которое будет работать на автономных серверах и иметь API и поведение, аналогичное таблицам Azure? Из того, что я видел, Server AppFabric не включает таблицы.
2 ответа
Если вы думаете, что такое Windows Azure Table Storage, это нереляционная база данных на основе пары ключ-значение, доступная через REST API. Пожалуйста, загрузите этот документ о деталях базы данных Windows Azure и NoSQL.
Если бы я был в вашей ситуации, мой подход состоял бы в том, чтобы найти что-то похожее на хранилище таблиц Azure, к которому я могу получить доступ через REST и иметь похожий API доступности. Поэтому, если вы пытаетесь найти аналогичную базу данных для запуска на компьютере, вам действительно нужно искать:
- Ключ-значение Пара БД
- Поддержка основных операций, таких как добавление, удаление, вставка, изменение объекта
- Доступность на основе ключа раздела и ключа строки
- RESTful интерфейс для подключения
Если вы хотите попробовать что-то, на что вы обязательно можете посмотреть:
- DBreeze (пара ключей-значений на основе C# NoSQL DB) Я только что видел это и выглядит захватывающим
- Googles LevelDB (Key Value Pair DB, с открытым исходным кодом и доступно в Windows) Я не имею понятия об API
- Redis (отличная пара ключей и значений, но не уверен в совместимости с Windows и API)
Вот список баз данных ключ / значение без дополнительных средств индексирования:
- Беркли Д.Б.
- HBase
- MemcacheDB
- Redis
- SimpleDB
- Токийский Кабинет / Тиран
- Волдеморт
- Riak
Если ни одна из них не работает, вы можете получить любую из БД с открытым исходным кодом и изменить ее так, чтобы она соответствовала вашим требованиям, а затем сделать ее доступной для других в качестве вашего вклада в сообщество.
ADDED
Теперь вы можете использовать виртуальную машину Windows Azure для запуска любого типа пары БД-ключ в Linux или Windows Machine и соединения с вашим приложением.
Я не уверен, какое решение для хранения данных порекомендовать, но практически любое решение для базы данных будет работать при условии, что вы напишите интерфейс для абстрагирования всего своего кода хранения данных. Затем напишите реализации этого интерфейса для хранилища таблиц Azure и любой другой базы данных, которую вы хотите использовать на не облачном сервере.
В любом случае вам следует делать это, чтобы ваш код не был тесно связан с API хранилища таблиц Azure.
Если вы комбинируете кодирование для этого интерфейса с контейнером IoC, то одна строка кода или один параметр конфигурации позволят вам переключаться между реализациями данных в зависимости от платформы, на которой выполняется код.