|
|
|
PipeLine data source
|
|||
|---|---|---|---|
|
#18+
Всем привет, Задача - перегнать данные из одной базы данных в другую, первая база в ASA вторая в Оракле. Понятно что таблиц немеряно, начал перегонять с помощью PipeLine, но это очень долго, появилась мысль но как реализовать не могу сообразить. Мысль такая - создать небольшую програмку которая бы создавала PipeLine data source для каждой таблицы из списка таблиц. Вот например такой источник PIPELINE(source_connect=dabASA,destination_connect=DBOracle,type=update,commit=100,errors=100,keyname="applicationgroup") SOURCE(name="applicationgroup",COLUMN(type=decimal,name="applicationgroupid",dbtype="numeric(15,0)",key=yes,nulls_allowed=no) COLUMN(type=varchar,name="description",dbtype="varchar(50)",nulls_allowed=no) COLUMN(type=decimal,name="deletestatus",dbtype="numeric(15,0)",nulls_allowed=no) COLUMN(type=decimal,name="useridlastupdated",dbtype="numeric(15,0)",nulls_allowed=yes) COLUMN(type=decimal,name="updatesite",dbtype="numeric(15,0)",nulls_allowed=yes) COLUMN(type=decimal,name="exportmarker",dbtype="numeric(1,0)",nulls_allowed=no) COLUMN(type=datetime,name="lastupdated",dbtype="timestamp",nulls_allowed=no) COLUMN(type=datetime,name="bloblastupdated",dbtype="timestamp",nulls_allowed=yes)) RETRIEVE(statement="PBSELECT(TABLE(NAME=~"applicationgroup~") COLUMN(NAME=~"applicationgroup.applicationgroupid~")COLUMN(NAME=~"applicationgroup.description~")COLUMN(NAME=~"applicationgroup.deletestatus~")COLUMN(NAME=~"applicationgroup.useridlastupdated~")COLUMN(NAME=~"applicationgroup.updatesite~")COLUMN(NAME=~"applicationgroup.exportmarker~")COLUMN(NAME=~"applicationgroup.lastupdated~")COLUMN(NAME=~"applicationgroup.bloblastupdated~"))") DESTINATION(name="applicationgroup",COLUMN(type=decimal,name="applicationgroupid",dbtype="NUMBER(15,0)",key=yes,nulls_allowed=no,initial_value="0") COLUMN(type=varchar,name="description",dbtype="VARCHAR2(50)",nulls_allowed=no,initial_value="spaces") COLUMN(type=decimal,name="deletestatus",dbtype="NUMBER(15,0)",nulls_allowed=no,initial_value="0",default_value="0 ") COLUMN(type=decimal,name="useridlastupdated",dbtype="NUMBER(15,0)",nulls_allowed=yes) COLUMN(type=decimal,name="updatesite",dbtype="NUMBER(15,0)",nulls_allowed=yes) COLUMN(type=decimal,name="exportmarker",dbtype="NUMBER(1,0)",nulls_allowed=no,initial_value="0",default_value="1 ") COLUMN(type=datetime,name="lastupdated",dbtype="DATE",nulls_allowed=no,initial_value="today",default_value="SYSDATE ") COLUMN(type=datetime,name="bloblastupdated",dbtype="DATE",nulls_allowed=yes)) как и где взять данные о таблице? потом уж теутовый файл наборать будет не проблема, да и поменять расхождения в типах таблиц тоже думаю проблем нет. Плиз делитесь мнениями, буду очень вам обязан ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2008, 12:41 |
|
||
|
PipeLine data source
|
|||
|---|---|---|---|
|
#18+
можно из АСА сделать unload data в SQL и просто запустить SQL на оракле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2008, 13:06 |
|
||
|
PipeLine data source
|
|||
|---|---|---|---|
|
#18+
Так не получится так как скрипт ASA и Oracle не совпадают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2008, 14:53 |
|
||
|
PipeLine data source
|
|||
|---|---|---|---|
|
#18+
Ну все перегнать "в лоб" не просто. Хотя бы из-за Foreign Key и т.д. Я думаю быстрее всего создать нужные структуры таблиц в Oracle (ручками или конвертер какой есть, может он все позволяет делать ?), затем выкинуть данные в текстовый файл, залить из текстового файла, а затем создать индексы, внешние ключи и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2008, 15:19 |
|
||
|
PipeLine data source
|
|||
|---|---|---|---|
|
#18+
Да, к чему это всё я - PowerBuilder для этого не лучший инструмент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2008, 15:20 |
|
||
|
PipeLine data source
|
|||
|---|---|---|---|
|
#18+
Локшин Марк - база в оракле уже создана, надо только данные туда залить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2008, 16:30 |
|
||
|
PipeLine data source
|
|||
|---|---|---|---|
|
#18+
ASA : select * from SYSTABLE select * from SYSCOLUMN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2008, 17:14 |
|
||
|
PipeLine data source
|
|||
|---|---|---|---|
|
#18+
+/- - спасибо за подсказку, но нужна ещё одна подсказка, кто знает плиз хелп откуда можно взять "initial_value" колонки, не "default_value" (которое можно взять из таблиц syscolumn или syscolunms) а именно исходное значение ("initial_value") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2008, 07:46 |
|
||
|
PipeLine data source
|
|||
|---|---|---|---|
|
#18+
по-моему, если схема уже создана то оставьте Initial Value и Default Value пустыми, для того что бы данные перенеслись один в один в оракл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2008, 10:06 |
|
||
|
PipeLine data source
|
|||
|---|---|---|---|
|
#18+
leokolus Локшин Марк - база в оракле уже создана, надо только данные туда залить Если данных мало - можете играться с pipeline'ами. Если много - лучше выбрать другие средства экспорта/импорта данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2008, 16:29 |
|
||
|
PipeLine data source
|
|||
|---|---|---|---|
|
#18+
нвстроил я создание исходника пайплайн и сохранение его в файле - один в один как экспорт из PB, за один проход все таблицы вываливаю в исходники пайплайнов с сохранением их в файле. Раньше думал создам пайплайны и импортирую их в апликуху и всё затем подставляй пайплайны и перегоняй базу согласно составленной последовательности таблиц. Но как говорится появилась мысль усовершенствовать утиль, таким образом чтобы за один цикл происходило следующее: 1. создание исходника пайплайна 2. сохранение его во временном файле 3. импорт пайплайна 4. исполнение пайплайна пункты 1,2,4 я уже написал, а вот пункт 4 не соображу как сделать, плиз у кого какие мысли есть делитесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2008, 21:24 |
|
||
|
PipeLine data source
|
|||
|---|---|---|---|
|
#18+
Pipeline object ........ DataObject String The name of the pipeline object (the object created in the Data Pipeline painter) ..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2008, 22:06 |
|
||
|
PipeLine data source
|
|||
|---|---|---|---|
|
#18+
похоже вы не правильно вопрос написали, и пункт 3 не можете сделать .... сохранять в файлы и делать импорт не обязательно (импорт можно сделать только для dw, насколько мне известно). может это натолкнет на мысль : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2008, 22:22 |
|
||
|
PipeLine data source
|
|||
|---|---|---|---|
|
#18+
Насколько мне помнится, в Oracle можно настроить transparent gateway и тогда задача значительно упрощается ----------------------------------------------------------------------------- Главная деталь любой машины - голова ее владельца ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2008, 05:49 |
|
||
|
PipeLine data source
|
|||
|---|---|---|---|
|
#18+
Всем большое спасибо - всё получилось и с пунктом 3 тоже +/- только наоборот: lp_1.syntax = ls_syntax spas2001 - спасибо надо будет посмотреть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2008, 10:37 |
|
||
|
PipeLine data source
|
|||
|---|---|---|---|
|
#18+
Это.. ещё в оракле есть мощнейшая вещь - SQLLOADER - загрузка двоичных данных из файла в самых невообразимых вариациях. Если в ASA есть нечто вроде BCP (как в ASE) - выгружаем данные тупо в файлы (bcp), потом заливаем их SQLLOADER'ом на сервер Oracle (PS: сам так перетаскивал адовы объёмы по 100-400 млн.строк из ASE в Oracle). По скорости - ни что не сравнится, pipe-line даже рядом не лежал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2008, 14:40 |
|
||
|
PipeLine data source
|
|||
|---|---|---|---|
|
#18+
Есть конечно sqlloader, но он требует определенных знаний, хотя в учебниках все есть ----------------------------------------------------------------------------- Главная деталь любой машины - голова ее владельца ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2008, 14:43 |
|
||
|
PipeLine data source
|
|||
|---|---|---|---|
|
#18+
Ну, SQL-Loader - мало того, что великолепно документирован, ведёт подробнейшие логи жизнедеятельности - так ещё и не труден, если не лезть в дебри, которые для обычной переливки данных вряд ли могут понадобиться :) Крайне удивило, что в Oracle не существует аналогичной утилиты для выгрузки данных). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2008, 15:31 |
|
||
|
PipeLine data source
|
|||
|---|---|---|---|
|
#18+
Там это нечасто требуется bulk операции есть внутри) ----------------------------------------------------------------------------- Главная деталь любой машины - голова ее владельца ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2008, 19:19 |
|
||
|
PipeLine data source
|
|||
|---|---|---|---|
|
#18+
Вообще-то для этих дел есть Oracle Developer, который без проблем береться с сайта Oracle ----------------------------------------------------------------------------- Главная деталь любой машины - голова ее владельца ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2008, 19:22 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=35372481&tid=1336626]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
56ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 393ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...