Temat: przeniesienie danych z Oralcle do DB2 lub MS SQL

Witam.
Ponieważ moje doświadczenie z bazami danych, poza MySQL, jest niewielkie, dlatego bardzo proszę osoby z wiedzą w tej branży o pomoc :)
Mam taki problem, który nie wiem jak ugryźć:
W bazie oracle zapisywane są nieobrobione dane pomiarowe. Chciałbym część z tych danych kopiować do innej (darmowej) bazy np. MS SQL Express lub DB2. Przed wklejeniem dane powinny zostać poddane filtrowaniu wg ustalonych kryteriów oraz rozbite na tabele odpowiadające poszczególnym raportom. Dodatkowo powinny zostać dodane tabele z danymi zagregowanymi (np. minimum, maximum, średnia, itp. ). Ilość danych do przetworzenia to jednorazowo około 100-200mb.
Myślałem nad pobieraniem danych z oracle do accessa, przetwarzaniu za pomocą kwerend i zapisie do DB2 lub też przetwarzaniu za pomocą PHP. Czy ktoś próbował coś takiego zrobić, ewentualnie jakie są rozwiązania stosowane w praktyce?

konto usunięte

Temat: przeniesienie danych z Oralcle do DB2 lub MS SQL

Daniel Ś.:
przetwarzaniu za pomocą PHP. Czy ktoś próbował coś takiego zrobić, ewentualnie jakie są rozwiązania stosowane w praktyce?

Np. to:

http://www.wisdomforce.com/solutions-Data%20Migration....
http://www.wisdomforce.com/products-FastReader.html

Ale ostatecznie nie użyłem tego w praktyce. Tzn. temat "umarł".
Bartosz Ślepowronski

Bartosz Ślepowronski Problem? Jaki
problem?

Temat: przeniesienie danych z Oralcle do DB2 lub MS SQL

Daniel Ś.:
Myślałem nad pobieraniem danych z oracle do accessa, przetwarzaniu za pomocą kwerend i zapisie do DB2 lub też przetwarzaniu za pomocą PHP. Czy ktoś próbował coś takiego zrobić, ewentualnie jakie są rozwiązania stosowane w praktyce?

Że sie tak głupio spytam, po co chcesz pomiędzy dwie bazy wstawić coś trzeciego do obróbki danych? Nie mozesz ich obrobic na poziomie bazy zrodlowej lub docelowej?
Michał K.

Michał K. Specjalista Oracle
PL/SQL.

Temat: przeniesienie danych z Oralcle do DB2 lub MS SQL

Jeśli chodzi ci tylko o to żeby bazabyla darmowa, to oracle ma wersje darmową bazy: express edition. Wtedy przeniesienie danych to tylko export exp i import imp.
Jakub Fila

Jakub Fila Inżynieria / finanse
/ zarządzanie

Temat: przeniesienie danych z Oralcle do DB2 lub MS SQL

Jest kilka możliwości. Jedna z nich to zbudowanie narzędzia do migracji. Narzędzie łączyłoby sie np przez ODBC z bażą źródłową i docelową. Logika konwersji z jednej struktury do drugiej musiałaby już zostać zaszyta w tym narzędziu. Dodatkowe agregacje itp. mógłbyś wykonać już po stronie bazy docelowej. W dużych projektach po takiej migracji dokonuje się również rekoncyliacji danych, czyli weryfikacji ich poprawności np. na poziomie odpowiednich agregatów. Taka migracja to jednak sporo pracy.

Możesz też spróbować użyć freeware'owych narzędzi ETL (wpisz w google'a "free ETL").

Pozdr.

konto usunięte

Temat: przeniesienie danych z Oralcle do DB2 lub MS SQL

mssql 2005 / 2008 express obsługuje coś takiego jak linked servers
robisz coś takiego raz i z poziomu MSSQL-a odpytujesz Oracle bez potrzeby exportu/importu

np. definjujemy link o nazwie oracle


select * from openquery(oracle,'select * from dane.tabela where warunek = 2009') as t


czyli cała logika mogła by być w MSSQL-u bez potrzeby angażowania narzędzi zewnętrznychPrzemysław R. edytował(a) ten post dnia 19.09.09 o godzinie 15:39

konto usunięte

Temat: przeniesienie danych z Oralcle do DB2 lub MS SQL

Bartosz Ślepowronski:
Daniel Ś.:
Myślałem nad pobieraniem danych z oracle do accessa, przetwarzaniu za pomocą kwerend i zapisie do DB2 lub też przetwarzaniu za pomocą PHP. Czy ktoś próbował coś takiego zrobić, ewentualnie jakie są rozwiązania stosowane w praktyce?

Że sie tak głupio spytam, po co chcesz pomiędzy dwie bazy wstawić coś trzeciego do obróbki danych? Nie mozesz ich obrobic na poziomie bazy zrodlowej lub docelowej?

jak masz hurtownię danych dostarczaną przez jakąś firmę zewnętrzną z ograniczeniami, możesz za to robić zapytania to w przyjemniej się pracuje jak te dane można gdzieś przetworzyć, zrobić jakiś agregat czy raport
Jakub Fila

Jakub Fila Inżynieria / finanse
/ zarządzanie

Temat: przeniesienie danych z Oralcle do DB2 lub MS SQL

Przemysław R.:
mssql 2005 / 2008 express obsługuje coś takiego jak linked servers
robisz coś takiego raz i z poziomu MSSQL-a odpytujesz Oracle bez potrzeby exportu/importu

np. definjujemy link o nazwie oracle


select * from openquery(oracle,'select * from dane.tabela where warunek = 2009') as t


czyli cała logika mogła by być w MSSQL-u bez potrzeby angażowania narzędzi zewnętrznychPrzemysław R. edytował(a) ten post dnia 19.09.09 o godzinie 15:39

Heh, nie wiedziałem o tym :-) Dzięki - przyda się.

konto usunięte

Temat: przeniesienie danych z Oralcle do DB2 lub MS SQL

jest jeszcze jeden ciekawy mykacz
jak zachodzi potrzeba uruchomienia czegoś zdalnie to openquery jest jakby to powiedzieć nieużyteczne

przy włączonym RPC OUT dla danego linku można wykonać dowolny SQL na zdalnej maszynie np. DELETE


exec ('DELETE FROM TABELA WHERE id = ?',@id) at ORACLE


a co najzabawniejsze można coś takiego parametryzować do woli -> znak zapytania i zmienna po przecinku

na deser wynik takiego exec można załadować do tabeli albo zmiennej tabelarycznej


CREATE TABLE #temp (kolumna typ_kolumny...)
INSERT INTO #temp exec ('SELECT kolumna FROM TABELA WHERE id = ?',@id) at ORACLE
SELECT kolumna FROM #temp

altu warunek tabela do której ładujemy dane musi istnieć!

parametryzowanie OPENQUERY to jak borowanie zębów, naprawdę nie przyjemne, nie da się tego robić bezpośrednio, trzeba zrobić odpowiedniego stringa tekstowego z całym zapytaniem openquery i dopiero wykonać execut-em
Bartosz Ślepowronski

Bartosz Ślepowronski Problem? Jaki
problem?

Temat: przeniesienie danych z Oralcle do DB2 lub MS SQL

Przemysław R.:
jak masz hurtownię danych dostarczaną przez jakąś firmę zewnętrzną z ograniczeniami, możesz za to robić zapytania to w przyjemniej się pracuje jak te dane można gdzieś przetworzyć, zrobić jakiś agregat czy raport

O to mi wlasnie chodzilo. Oczywiscie, czasem przy duzych i skomplikowanych transformacjach warto pomiedzy dwie bazy wstawic jakies dedykowane narzedzie do ETL (np SSIS) - bo latwiej tak zarzadzac calym procesem - ale dla wiekszosci normalnych zastosowan wszystko to mozna zrobic przy uzyciu kilku procedur i tabeli tymaczasowych/roboczych. Szczegolnie jesli ktos nie chce wydawac kasy na dodatkowe narzedzia.

Temat: przeniesienie danych z Oralcle do DB2 lub MS SQL

bardzo dziękuję za wszystkie rady. czasami najbardziej oczywiste rozwiązanie trudno jest zauważyć :p tabele tymczasowe to chyba będzie to, czego potrzebuję.

konto usunięte

Temat: przeniesienie danych z Oralcle do DB2 lub MS SQL

z doświadczenia wiem że czasem lepiej zrobić sobie jakiś agregat niż za każdym razem odbytywać Oracl-a, powodem jest czas uzyskania interesujących nas danych

ale oczywiście to wszystko zależy od sytuacji
Mariusz Masewicz

Mariusz Masewicz Prawie wszysko o
bazach danych Oracle
:-)

Temat: przeniesienie danych z Oralcle do DB2 lub MS SQL

Jakub Fila:
Heh, nie wiedziałem o tym :-) Dzięki - przyda się.

W duga strone tez masz narzedzia - Oracle Transparent Gateway (z Oracle zadajesz zapytania m.in. do MS SQL Server, DB2, ...)Mariusz Masewicz edytował(a) ten post dnia 20.09.09 o godzinie 23:32

konto usunięte

Temat: przeniesienie danych z Oralcle do DB2 lub MS SQL

Myślę że narzędzie do replikacji, w połączeniu z odpowiednim przebudowaniem bazy rozwiązałoby ten problem w sposób trwały. Nie wiem jak w Oracle ale Sybase czy też MySQL posiada takie narzędzie więc myślę że i w tym przypadku coś da się znaleźćMariusz Wardas edytował(a) ten post dnia 12.10.09 o godzinie 17:32
Maciej W.

Maciej W. Oracle developer

Temat: przeniesienie danych z Oralcle do DB2 lub MS SQL

Jak już wspomniano - istnieje Oracle Express Edition które ma pewne ograniczenia, jednak jest to w pełni funkcjonalna baza danych.

Jeśli ktoś chce wczytać te dane z innej bazy to można się odwołać do bazy jako do zewnętrznego źródła informacji (to również zostało opisane).

Eksport - Oracle umożliwia eksport danych. Można to zrobić np. przez PL/SQL. Można także zrobić eksport do XML... nawet do CLOBa zawierającego cały XML. A dalej zaimportować w czymś tam.

Jest także masa narzędzi w stylu Oracle SQL Developer, które obsługują eksport (np. do SQL'owych zapytań albo do .csv).

Istnieją narzędzia komercyjne....

Można też samodzielnie napisać coś...

Możliwości jest wiele. Ja bym się jednak zastanawiał czy warto. MySQL to też własność Oracle - nie wiadomo jaką ma przyszłość. Jeśli komuś wystarczy Oracle EE - to dlaczego nie użyć tego? A jeśli komuś nie wystarczy to zapewne projekt jest na tyle duży, że wystarczy z niego kasy na komercyjny Oracle.
Mariusz Masewicz

Mariusz Masewicz Prawie wszysko o
bazach danych Oracle
:-)

Temat: przeniesienie danych z Oralcle do DB2 lub MS SQL

Maciej W.:
Możliwości jest wiele. Ja bym się jednak zastanawiał czy warto. MySQL to też własność Oracle - nie wiadomo jaką ma przyszłość. Jeśli komuś wystarczy Oracle EE - to dlaczego nie użyć tego? A jeśli komuś nie wystarczy to zapewne projekt jest na tyle duży, że wystarczy z niego kasy na komercyjny Oracle.

czepne sie tylko tego, ze w jezyku Oracle skrot EE oznacza enterprajs ediszion i kosztuje kupe kasy, expres ediszion to z kolei XE i to faktycznie jest za darmo do wszelkich zatosowan (BTW - Microsoft, IBM i Sybase tez maja produkty ekspres ediszion i licencje sa wszedzie bardzo podobne)Mariusz Masewicz edytował(a) ten post dnia 15.10.09 o godzinie 19:20

konto usunięte

Temat: przeniesienie danych z Oralcle do DB2 lub MS SQL

Na pewno warto zwrócić uwagę na najnowszą DB2 9.7. Mechanizmy federacji DB2 pozwalają gładko integrować się z bazami Oracle (rozwiązanie zbliżone do linków bazodanowych w Oracle). Programiści z IBM napracowali się i w db9.7 jest też masa innych udogodnień np.: obsługa pl/sql, podobne poziomy izolacji transakcji jak w oracle, odpowiadające sobie typy danych i kolekcji... wystarczy przestawić się w odpowiedni DB2_COMPATIBILITY_VECTOR. Nie wiem ile z tych mechanizmów będzie dostępne w wersji "ekspres ediszion" ale na pewno warto na to spojrzeć ;-) Chociażby tu
Gustaw Lasek

Gustaw Lasek Właściciel,
SERVITIUM

Temat: przeniesienie danych z Oralcle do DB2 lub MS SQL

Jeżeli chcesz przenieść dane z Oracle do SQL Servera to ja proponowałbym takie rozwiązanie.
1. Dane w surowej postaci zaczytywać z Oracle do SQLServer za pomocą DTS'ów (od SQLServer 2005 SSIS) z ograniczeniem do konkretnych danych
2. Dane przenosić do wcześniej przygotowanej Hurtowni danych w SQL Server
3. Przeliczyć kostki
4. I masz gotowe zagregowane dane z których możesz wyciągać wnioski

Oczywiście do wszystkiego można zrobić Job'y aby wszystko działało automatycznie bez Twojej ingerencji.

Zalety:
-Będzie szybkie
-Obliczenia zagregowanych danych też będą szybkie i jednokrotne w kostkach
-Łatwość weryfikacji, analizy a co najważniejsze możliwość wyciagania wniosków

Pozdrawiam
Gustaw

http://blog.czerwonyszlak.plGustaw Lasek edytował(a) ten post dnia 15.10.09 o godzinie 20:22

konto usunięte

Temat: przeniesienie danych z Oralcle do DB2 lub MS SQL

Gustaw Lasek:
Jeżeli chcesz przenieść dane z Oracle do SQL Servera to ja proponowałbym takie rozwiązanie.
1. Dane w surowej postaci zaczytywać z Oracle do SQLServer za pomocą DTS'ów (od SQLServer 2005 SSIS) z ograniczeniem do konkretnych danych
2. Dane przenosić do wcześniej przygotowanej Hurtowni danych w SQL Server
3. Przeliczyć kostki
4. I masz gotowe zagregowane dane z których możesz wyciągać wnioski

Oczywiście do wszystkiego można zrobić Job'y aby wszystko działało automatycznie bez Twojej ingerencji.

Zalety:
-Będzie szybkie
-Obliczenia zagregowanych danych też będą szybkie i jednokrotne w kostkach
-Łatwość weryfikacji, analizy a co najważniejsze możliwość wyciagania wniosków

Pozdrawiam
Gustaw

http://blog.czerwonyszlak.plGustaw Lasek edytował(a) ten post dnia 15.10.09 o godzinie 20:22

Z tego co kojarzę SQLServer 2005 SSIS + AS to kupa kasy...
Borys Mądrawski

Borys Mądrawski Architekt/Developer
EAI/Java

Temat: przeniesienie danych z Oralcle do DB2 lub MS SQL

100-200MB to bardzo mało - udźwignie to każdy RDBMS, a unix'owcy takie ilości danych trzymają w plikach tekstowych i parsują skryptami ;)

Przenoszenie się z Oracle na DB2 nie ma sensu - obie bazy podobnie kosztują, no, może darmowy Oracle (10) XE ma większe ograniczenia niż darmowy DB2 Express, ale DB2 jest bazą dużo trudniejszą.
Przenoszenie się na darmowego MS SQL Server nie wiem czy ma sens, bo też związane jest z różnymi ograniczeniami funkcjonalnymi.

Jeśli migracja danych po różnych typach RDBMS nie jest celem samym w sobie ;), to proponuję od razu użyć jakiegoś w 100% darmowego i wolnego (w sensie licencji) silnika bazy.
Najbardziej godnym polecenia jest PostgreSQL (baza funkcjonalnie zbliżona do Oracle), ewentualnie Firebird, JavaDB, lub SAP DB, MySQL InnoDB.

Nad tym, do drążenia danych, można zainstalować i użyć darmowego BI o nazwie Pentaho.

Co do migracji, to musiał bym looknąć, ale w większości przypadków można z bazy zrobić dump bazy do insert-statementów SQL, ewentualnie lekko je przeparsować (jak były by różnice składni - wątpliwe) i załadować na docelowy silnik. Są oczywiście narzędzia GUI bazujące na uniwersalnych modelach sterowników (ODBC, JDBC, ADO(.NET)) do różnych typów baz, które zrobią to w locie między bazami różnych typów - widziałem takie narzędzia na sourceforge.net (i sam takie kiedyś pisałem).

Następna dyskusja:

Import danych z Excela do t...




Wyślij zaproszenie do