Механизмы ETL для MySQL к SQL Server по глобальной сети - PullRequest
1 голос
/ 29 марта 2010

Мне нужны отзывы о механизмах пакетной передачи данных с MySQL Community Server 5.1.32 с внешнего хоста на внутреннюю машину SQL Server 05 Enterprise через VPN. Внешний блок накапливает данные в течение рабочих часов (около 100 МБ в день), которые затем необходимо передавать по всему миру через WAN-соединение (качество еще не определено, но не будет слишком быстрым) во внутреннюю корпоративную среду, прежде чем начнется работа BI выполнила. Это должны быть просто наборы изменений, которые спускаются каждую ночь.

Меня интересуют мысли о механизмах ETL, которые люди успешно использовали в подобных сценариях ранее. SSIS кажется потенциальным кандидатом; Кто-нибудь может прокомментировать пригодность для этого сценария? В качестве альтернативы, другие мысли о том, как сделать это с учетом затрат, были бы наиболее ценными. Спасибо!

Ответы [ 3 ]

2 голосов
/ 30 марта 2010

Во-первых, если вы собираетесь это сделать, у вас есть хороший способ легко увидеть, что изменилось с прошлого раза. Каждое поле должно иметь последнее обновление или метку времени, которая изменяется при обновлении записи (не уверен, есть ли у mysql это). Это гораздо лучше, чем сравнивать каждое поле.

Если бы у вас был SQL Server в обоих местах, я бы порекомендовал репликацию, возможно ли использовать SQL-сервер вместо mySQL? Если нет, то SSIS - ваш лучший выбор.

2 голосов
/ 30 марта 2010

Зависит от того, как вы используете данные, полученные с внешнего устройства.

Если вам нужны данные для расчетов на следующее утро или вы не уверены в своей сети, вы бы предпочли потерять связь между двумя системами и включить некоторую очередь сообщений между ними, чтобы в случае сбоя во время Ночью, как БД, сетевые ссылки, все, что вам будет трудно восстанавливать, вы можете начинать каждое утро с некоторыми данными.

Если поиск данных не подвержен высокой степени критичности, любое решение является хорошим:)

Что касается SSIS, то это просто отличная среда ETL (да, есть тонкость :)). Но я не рассматриваю это как часть передачи данных, а скорее в части ETL, когда ваши данные были получены или все еще ожидают в системе очереди сообщений.

1 голос
/ 30 марта 2010

Что касается фактического получения ваших данных из MySQL в SQL Server, вы можете использовать SSIS для импорта данных, используя ряд методов. Одним из них может быть подключение напрямую к вашему источнику MySQL (через соединение OLEDB или подобное), или вы можете сделать ежедневный экспорт из MySQL в плоский файл и забрать его, используя задачу FTP. Получив данные, SSIS может выполнить необходимые преобразования перед загрузкой обработанных данных в SQL Server.

...