2012-01-26 3 views
0

Я хотел выполнить одноразовую загрузку из одного источника Oracle db в пункт назначения oracle db. он не может выполнить прямую загрузку/выгрузку или импорт/экспорт данных, так как он представляет собой разные столбцы структуры столбцов в источнике и получателе. поэтому он требует хорошей трансформации, Мой план состоит в том, чтобы получить данные как в формате XML из исходной БД и обработать XML в целевую БД. , а также объем данных будет больше (от 1 до 20 миллионов записей или более в некоторых таблицах), а задействованы следующие базы данных: Oracle (источник) и Oracle (destination), Просьба предоставить некоторые рекомендации или лучший способ сделать это.Загрузите данные из одного oracle db в другой метод oracle dac-db.

ответ

2

Я не уверен, что понимаю, почему вы не можете делать прямую нагрузку.

Если вы создаете ссылку базы данных в базе данных назначения, которая указывает на исходную базу данных, вы можете поместить свою логику ETL в операторы SQL, которые SELECT из исходной базы данных и INSERT в базу данных назначения. Это позволяет избежать необходимости записывать данные в плоский файл, читать этот плоский файл, анализировать XML и т. Д., Который будет медленным и требует достойного количества кодирования. Таким образом, вы можете сосредоточиться на логике ETL, и вы можете максимально быстро перенести данные.

Вы можете написать SQL (или PL/SQL), который загружается непосредственно из старой структуры таблицы из старой базы данных в новую структуру таблицы в новой базе данных.

INSERT INTO new_table(<<list of columns>>) 
    SELECT a.col1, a.col2, ... , b.colN, b.colN+1 
    FROM [email protected]_to_source a, 
     [email protected]_to_source b 
    WHERE <<some join condition>> 
+0

Спасибо, почему я не могу выполнить прямую загрузку. Я не хочу, чтобы исходная таблица и столбцы были созданы, у меня есть разные структуры таблиц в месте назначения, они не такие же, как исходные таблицы и столбцы. С момента однократной загрузки данных в этом случае стоит использовать ETL? Я знаю SQL, PL/SQL. Я новичок в ETL, пожалуйста, предлагайте. – balu

+0

@balu - Я все еще не уверен, что понимаю, в чем проблема. Вы можете реализовать логику ETL (которая просто обозначает логику Extract Transform Load) в SQL и/или PL/SQL. Я разместил пример прямой загрузки из двух таблиц в исходной системе в одну таблицу в целевой системе. Нет необходимости создавать исходные таблицы в целевой базе данных. –