Какие способы переноса таблиц из Oracle в SQL Server - PullRequest
4 голосов
/ 20 сентября 2011

Я искал в Интернете этот вопрос:

Как можно ежедневно переносить данные и таблицы из Oracle Hyperion в SQL Server 2000?

Я являюсьстажер в компании и пытается выяснить возможные способы сделать это.Любая помощь или указание в правильном направлении очень ценится

Ответы [ 5 ]

5 голосов
/ 20 сентября 2011

Это будет сильно зависеть от специфики. Вот только несколько возможных решений:

DTS

DTS поставляется с SQL 2000 и предназначен для решения подобных задач. Если написано правильно, ваш пакет DTS может иметь хорошую обработку ошибок и может быть повторно запущен / повторно.

SSIS

На самом деле SSIS поставляется с SQL 2005 и выше, но вы можете подключить его к другим базам данных. Это в основном лучшая версия DTS. (технически это радикально отличается от DTS, но имеет много той же функциональности)

Связанные серверы

Начиная с SQL 2000, вы сможете напрямую подключаться к базе данных Oracle в качестве связанного сервера. В колонке «за» может быть легко работать с этим прямым доступом, если у вас нет каких-либо других технических навыков, таких как DTS или SSIS, но это может быть сложным для правильной начальной настройки и могут возникнуть проблемы с безопасностью. /issues.

Создай свой собственный

В зависимости от того, какие другие технологии вы используете, вы можете создать собственное приложение для ETL (Extract / Transform / Load, что вы и делаете). Это может быть в .NET, Java и т. Д. В колонке «за» вы можете использовать что-то, с чем вы знакомы, но здесь есть большой недостаток в том, что большая часть низкоуровневого типа работы уже существует в таких инструментах, как DTS / SSIS, так зачем изобретать велосипед?

BCP

Вы можете просто извлечь данные из Oracle в виде файлов .csv (или в другом формате), а затем импортировать их обратно с помощью процесса массового копирования SQL Server. Это может быть быстро, но с этим не так много наворотов. Если это единовременная вещь с несколькими таблицами, то это, вероятно, самый простой и быстрый способ сделать это.

Сторонние приложения

Существует множество приложений ETL, уже написанных там (Data Import, Data Slave и т. Д.). Обычно они предоставляют мастеров и решения в один клик (может быть, несколько кликов), но они также будут стоить немного дополнительных денег.


EDIT:

Учитывая ваш последний комментарий, я бы, вероятно, пошел с пакетом DTS, который запланирован в SQL Agent для ежедневного запуска. Вы можете добавить обработку ошибок и заставить системную электронную почту / текст / позвонить кому-нибудь, если когда-либо возникнет проблема (или сделать положительное сообщение о случае - т.е. отправить сообщение, когда оно будет успешным, чтобы кто-то знал, что есть проблема, если он не получайте сообщения каждый день.

1 голос
/ 21 сентября 2011

Oracle Hyperion - это набор продуктов, в значительной степени не связанных с продуктом базы данных Oracle.Я предполагаю, что вы имеете в виду такой продукт, как Hyperion Financial Management или Hyperion Strategic Finance.Эти продукты имеют API-интерфейсы, которые можно использовать с помощью COM Interop или веб-сервисов.Данные могут быть извлечены из внутренней многомерной базы данных путем анализа метаданных базы данных, создания деревьев измерений и последующего использования информации для создания выборок, которые представляют субкубы в базе данных;позволяя вам получить или установить данные ячейки.Я не знаю, каков ваш уровень знаний по многомерным базам данных, но если это не существенно, вы можете найти задачу довольно сложной.Вам также необходимо узнать об API конкретного продукта.

Моя компания специализируется на таких видах деятельности, и у нас есть компоненты для такого рода вещей.Напишите мне в моем блоге, если вам нужен дальнейший совет.

danielvaughan.org

Приветствия, Даниэль

1 голос
/ 20 сентября 2011

Вы можете написать пакеты DTS для копирования данных и запланировать их запуск в Sql Server Agent.

См. Обзор DTS для получения информации о пакетах DTS.

Вот учебник по созданию пакета DTS: Создание пакетов DTS с SQL Server 2000

1 голос
/ 20 сентября 2011

В нашей компании мы используем ADO.Net для той же задачи. Мы создали исходный код для Oracle, взяв все данные и затем создав их на сервере SQL

0 голосов
/ 21 сентября 2011

Я ничего не знаю о Hyperion, но SQL Server 2000 очень старый и может не иметь драйвера, который мог бы извлекать данные из Hyperion, если его версия новее, чем в 2000 году. Возможно, вам придется поискать чтобы увидеть, есть ли способ выдвинуть данные из Hyperion, а не перетаскивать их в SQL Server 2000. Один из способов, которым я это сделал, в прошлом - создать текстовый файл с разделителями каналов из базы данных, в которой изначально есть данные, и обработать их. в каталоге обработки. Я знаю, что DTS будет обрабатывать текстовый файл с разделителями. Поэтому, если вы не можете найти драйвер для обработки этих данных напрямую, подумайте, можете ли вы отправить их в файл, а затем обработать. Вам нужно запланировать промежуток времени между заданием в Hyperion, которое создает файл, и заданием пакета DTS. Но если вы делаете это только один раз в день, это, вероятно, не проблема.

...