Автор: Dinakar Nethi
Участник: Sean Kelley
Технические редакторы Michael Thomassy, Liam Cavanaugh
SQL Azure Database является "облачным" сервисом баз данных от Microsoft. SQL Azure предоставляет доступную по Интернет функциональность баз данных как сервис. Основанные на "облачных" технологиям решения баз данных, такие как SQL Azure, могут принести множество преимуществ, включая быстрое развертывание, экономичное масштабирование, высокую доступность и сокращение издержек на управление. Этот документ не является исчерпывающим руководством по SQL Azure Data Sync, однако, он содержит в себе лучшие практики по синхронизации SQL Azure и SQL Server и ссылки на дополнительную информацию в разделе Ссылки.
Microsoft Sync Framework - платформа синхронизации данных, которая может быть использована для синхронизации данных между множеством платформ данных с помощью провайдеров баз данных. Ключевым аспектом функциональности Sync Framework является возможность создания собственных провайдеров. Провайдеры позволяют любому источнику данных принимать участие в процессе синхронизации с использованием Sync Framework, предоставляя возможность синхронизации типа peer-to-peer. Команда разработки Microsoft Sync для поддержки SQL Azure опубликовала релиз Microsoft Sync Framework Power Pack for SQL Azure, содержащий в себе провайдера и утилиту Data Sync для SQL Azure.
SqlAzureSyncProvider является оптимизированным провайдером SQL Azure, решающий некоторые из сложных моментов по обработке транзакций с SQL Azure с использованием возвращающих табличное значение параметров (Table-valued parameters) для сокращения количества round trips (циклов отправки запроса к БД-получению результата) к серверу и использованием умного "back-off-algorithm" для сокращения размера пакета (batch) BCP во время синхронизации при достижения throttling level. Утилита Data Sync предоставляет "мастера", помогающего соединить SQL Server и SQL Azure и автоматизировать процесс синхронизации.
Для настройки синхронизации между локальным SQL Server и SQL Azure необходимо выполнить следующие шаги:
Для больших баз данных вы можете достичь бОльшей производительности по синхронизации, если создадите множество диапазонов (scope). Так как каждый диапазон имеет по одному выделенному треду (thread), создание множества диапазонов позволит осуществить параллельную синхронизацию и миграцию данных.
Диапазон представляет собой комбинацию таблиц и фильтров. Например, вы можете определить отфильтрованный диапазон Sales-WA, содержащий данные из таблицы customer sales, относящиеся только к покупкам в штате Вашингтон. Если вы определите фильтр на таблице, например Sales-OR, это будет другой диапазон. Если вы определяете фильтры, Sync Framework не обрабатывает в автоматическом режиме удаление неудовлетворяющих условиям фильтра записи. Например, если пользователь или приложение обновляет значение в столбце, присутствующем в условии фильтра, запись перейдет из одного диапазона в другой. Запись будет отослана в диапазон, к которому принадлежит, но данная запись не будет удалена из старого диапазона. Обратите внимание, что обработка этой ситуации должна быть предусмотрена в вашем приложении.
ales-OR
SQL Azure Data Sync использует собственного провайдера данных SqlAzureSync Provider для движка синхронизации Microsoft Sync Frame, написанного специально для SQL Azure. Этот новый провайдер эффективен, снижает барьер вхождения и обеспечивает надежность при синхронизации с SQL Azure, умным образом обрабатывая некоторые специфичные для SQL Azure проблемы мультитенантных систем. Провайдер сокращает количество round trips к серверу с использованием возвращающих табличное значение параметров (TVPs). Кроме этого, когда SQL Azure использует свой механизм throttling для минимизации эффекта от выходящих из-под контроля операций SqlAzureSyncProvider начинает использовать умный алгоритм “back-off algorithm”, автоматически уменьшающий размер пакета (batch) со стандартного (5000 записей) в течение синхронизации. Полезный побочный эффект использования этого алгоритма проявляется в том, что изменения вполне наблюдаемы перед окончанием синхронизации, и прогресс синхронизации может быть отображён в реальном времени.
Richard Mueller edited Revision 2. Comment: Fixed <a name> tags in HTML so TOC works
Fernando Lugão Veltem edited Original. Comment: alter title and tags, added ru-RU