В моем предыдущем вопросе на этом портале я спросил о некотором понимании синхронизации данных между SQL Server и хранилищами данных на основе ключей.
Вместо одной и той же проблемы (односторонняя синхронизация в реальном времени с SQL на HBase или любая другая база данных) мне нужно позаботиться о некоторых соображениях производительности и времени ожидания и не нашел очень надежного способа сделать это.
У нас есть несколько обложек данных SQL 2008, где данные обновляются из разных источников и обрабатываются многими процессами одновременно (и пользовательский интерфейс читается с одних и тех же осколков).
Цель состоит в том, чтобы получать все обновления в выбранных таблицах в любой момент времени и переносить их в другой источник данных практически в режиме реального времени.
Количество изменений в черепах SQL будет находиться в диапазоне 100-500 МБ (если мы сохраняем частоту 1 мин). Мы не хотим делать серьезные изменения на SQL-серверах, так как мы отбросим их после миграции всей системы.
К сожалению, наш уровень доступа к данным испорчен в разных слоях. В противном случае это был бы лучший способ развернуть обновления в двух направлениях.
Триггеры замедляют осколки и оставляют их в состоянии безответственности.
Не уверен, что SQL Server 2008 имеет нечто похожее на службы уведомлений SQL Server 2005 и насколько он эффективен.
Любое другое инновационное решение будет очень полезно.
Здесь моя проблема заключается не в преобразовании данных из реляционной формы в Key-value (это довольно просто), а в том, как получить обновления SQL Server в режиме реального времени (может позволить себе латентность 1-2 минуты), не влияя на работу пользователя ,
вы посмотрели SQL Service Broker? вот ссылка с некоторой информацией об этом: http://blogs.msdn.com/b/sql_service_broker/archive/2008/07/09/real-time-data-integration-with-service-broker-and-other-sql -techniques.aspx
Один из вариантов, который вы, возможно, захотите изучить, - это SQL Server Integrated Change Tracking (часть SQL2008 или выше). Это невероятно эффективный способ поиска изменений, произошедших в вашей базе данных SQL Server (включая удаленные), очень мало влияет на ваш SQLDB, не требует триггеров и обеспечивает хороший способ позволить вам затем переместить изменения данных в Hadoop.
Полное раскрытие, я работаю над Cotega, и эта синхронизация данных - это то, на что мы уделяем большое внимание. Я рад помочь больше, если это направление, которое вы заинтересованы в принятии.