Tomasz B.

Tomasz B. Senior Software
Engineer

Temat: Data Warehouse - Co polecacie?

Witam
Szukam rozwiązania typu data warehouse. Mam taką sytuację techniczną że mam dużą ilość baz danych MySQL o troszkę różnych schema. Chciałbym za pomocą DW zrobić jeden spójny output tych danych tak jak przedstawia to diagram http://en.wikipedia.org/wiki/File:Datawarehouse.png.
Może ktoś z was używał jakiegoś oprogramowania DW i poleci mi odpowiedni software do wykonania takiej pracy. Będę wdzięczny za wszelkie informację.

konto usunięte

Temat: Data Warehouse - Co polecacie?

Przede wszystkim potrzebujesz chyba narzędzia ETL, w drugiej kolejności odpowiedniej bazy.
Najlepiej jakby wypowiedział się ktoś kto to robi - ale widzę że towarzystwo nieskore, więc podam to co znam:

Na poniższej stronie, na dole strony masz zestawienie kilku narzędzi ETL - nie wiem czy wszystkie dobre, ale podaje:

https://www.etltool.com/order.php

I tu podobna lista:
http://www.etltools.net/

Słyszałem tylko o Pentaho i Informatica, pierwsze to Open Source, drugie - komercja.Piotr L. edytował(a) ten post dnia 18.07.12 o godzinie 15:23
Adam O.

Adam O. Bazy danych etc

Temat: Data Warehouse - Co polecacie?

Słyszałem tylko o Pentaho i Informatica, pierwsze to Open

+1 Pentaho Kettle, bo podejrzewam (po mySQL) że główną cechą ma być niska cena produktu, natomiast pracochłonność dowolna;)
http://kettle.pentaho.com/

Jeżeli ma być łatwiej ale kosztowniej to Integration Services, Data Stage albo Data Integrator.
Łukasz Schabek

Łukasz Schabek Architekt Rozwiązań

Temat: Data Warehouse - Co polecacie?

Jakim budżetem dysponujesz? Tak pi*drzwi, czy Twoje rozwiązanie będzie stać pod biurkiem, czy stać cię na klaster Exadaty?;)

Jeśli ma to być rozwiązanie klasy Enterprise, to opłaci się zainwestować np. w Data Stage o którym wspomniał Adam.

Z drugiej strony istnieją darmowe rozwiązania, np. CloverETL - ma bogaty zestaw narzędzi, a uruchomisz go nawet na laptopie.

Do tego dostępna jest darmowa, wirtualna wersja bazy Teradata (o pojemności 1TB), która jest dedykowana do budowy hurtowni danych.

Ciekawym projektem jest również Hadoop, a konkretnie moduł Hive, który zapewnia mechanizmy hurtowni danych.

Oczywiście hurtownia danych to nie tylko narzędzia, potrzebujesz jeszcze stworzyć Kanoniczny Model Danych który zapewni jednolity dostęp do danych. Nie wiem, czy którekolwiek z wymienionych narzędzi posiada wsparcie dla budowy KMD.

Linki:
http://www.cloveretl.com/
http://downloads.teradata.com/download/database/terada...
http://hadoop.apache.org/Łukasz Schabek edytował(a) ten post dnia 18.07.12 o godzinie 20:39
Izabela Korzińska

Izabela Korzińska Architekt /
Developer ETL/TEam
Leader, Roche Polska

Temat: Data Warehouse - Co polecacie?

Tomasz B.:
Witam
Szukam rozwiązania typu data warehouse. Mam taką sytuację techniczną że mam dużą ilość baz danych MySQL o troszkę różnych schema. Chciałbym za pomocą DW zrobić jeden spójny output tych danych tak jak przedstawia to diagram http://en.wikipedia.org/wiki/File:Datawarehouse.png.
Może ktoś z was używał jakiegoś oprogramowania DW i poleci mi odpowiedni software do wykonania takiej pracy. Będę wdzięczny za wszelkie informację.

Skoro za wszelkie, to napiszę kilka słów o tych bardzo drogich - Informatice PowerCenter i IBM InfoSphere DataStage and QualityStage. Mam wrażenie, że chcesz tylko zintegrować dane, więc może wystarczyłyby Ci tańsze, albo darmowe rozwiązania. Myślę, że każde rozwiązanie ETL-owe poradzi sobie z tym, o czym napisałeś.

Przy wielu źródłach danych, nawet tego samego typu, chyba wolałabym użyć DataStage'a, ponieważ tam w bardziej przejrzysty sposób używa się parametrów połączeń do baz danych. Jeśli nie potrzebujesz pracy grupowej (śledzenia historii wersji), polecam DataStage'a.

Tu parę słów o Informatice:
http://www.goldenline.pl/forum/2485802/najlepsze-praktyki

Tu porównanie Informatici do DataStage'a na podstawie istotnych wg mnie braków po jednej ze stron:
http://www.goldenline.pl/forum/2705738/informatica-kon...
Tomasz B.

Tomasz B. Senior Software
Engineer

Temat: Data Warehouse - Co polecacie?

Witam
Dziękuję wszystkim za informację, obecnie powoli sprawdzam wszystkie wymionione przez was narzędzia. Narzędzie przeze mnie zastosowane może być płatne, cena musi być tylko adekwatna do jakości i ile czasu jaki pozwoli zaoszczędzić.

Jak to sobie wysmażyłem:

1) Mam wiele baz danych trzymających podobne danych (około 100)
2) Kluczowe tabele różnią się minimalnie od siebie
3) W ETL definiuje spójny model tych baz danych co mnie interesują
4) Do tego modelu podłączam moje bazy danych
5) Pisana przeze mnie aplikację podłączam za pomocą connectora do ETL
6) Aplikacja widzi jeden ouput ale czerpie dane z moich wszystkich baz danych
7) Dane zostają w bazach danych interfejsem jest ETL

P.S.
Jak nie znajdę jakiegoś narzędzia do ujednolicenia tych danych będę musiał w aplikacji pytać wszystkie pierdylion baz uwzględniając ich rużnice, a jestem zbyt leniwy by to tak robić :)

konto usunięte

Temat: Data Warehouse - Co polecacie?

Tomasz B.:
..
5) Pisana przeze mnie aplikację podłączam za pomocą connectora do ETL
..
7) Dane zostają w bazach danych interfejsem jest ETL

Czyli defacto nie będzie to DW, bo ten z założenia ma dane zrzucone na dany moment czasu - nie pobiera danych "online" i proces ETL odbywa się niezależnie od odczytu danych.

Wojciech Gardziński

Wypowiedzi autora zostały ukryte. Pokaż autora
Łukasz Schabek

Łukasz Schabek Architekt Rozwiązań

Temat: Data Warehouse - Co polecacie?

Wojciech Gardziński:
http://www.goldenline.pl/forum/2422377/hurtownia-danyc...

Jak Pana rozwiązanie radzi sobie z limitem rozmiaru pliku bazy Access?

Wojciech Gardziński

Wypowiedzi autora zostały ukryte. Pokaż autora
Adam O.

Adam O. Bazy danych etc

Temat: Data Warehouse - Co polecacie?

Tomasz B.:
Witam
Dziękuję wszystkim za informację, obecnie powoli sprawdzam wszystkie wymionione przez was narzędzia. Narzędzie przeze mnie zastosowane może być płatne, cena musi być tylko adekwatna do jakości i ile czasu jaki pozwoli zaoszczędzić.

Jak to sobie wysmażyłem:

1) Mam wiele baz danych trzymających podobne danych (około 100)
2) Kluczowe tabele różnią się minimalnie od siebie
3) W ETL definiuje spójny model tych baz danych co mnie interesują
4) Do tego modelu podłączam moje bazy danych
5) Pisana przeze mnie aplikację podłączam za pomocą connectora do ETL
6) Aplikacja widzi jeden ouput ale czerpie dane z moich wszystkich baz danych
7) Dane zostają w bazach danych interfejsem jest ETL

Jeżeli ilość danych nie jest problemem (koszt nośników/hostingu itd) to ja bym mimo wszystko używał narzędzi ETL do wrzucania danych do wspólnego worka i dopiero ten worek odpytywał. Nie bardzo nawet wiem jak byś chciał odpytywać narzędzie ETL "online", bo takie narzędzia służą przeważnie do przenoszenia danych, a nie udostępniania ich jako jakiegoś widoku, jak to rozumiem że chciałbyś zrobić (nie żeby to było niemożliwe, ale jak już jakieś narzędzie taki element ma, to służy najczęściej do audytowania a nie jako cel sam w sobie)

Nie znam mysqla, więc niech ktoś mnie poprawi jeżeli błądzę, ale do tego co opisujesz być może by wystarczył engine CSV i/lub federated tables. W takim przypadku nie potrzeba by było nawet narzędzi ETLowych, tylko sensownie napisane inserty/selecty.
Tomasz B.

Tomasz B. Senior Software
Engineer

Temat: Data Warehouse - Co polecacie?

Wolałbym stowrzyć wspólny widok w ETL dla wszystkich baz danych i nie kopiować tych danych ( jest ich za dużo), może w weekend znajde czas i poinstaluje sobie ruzne roziwazania ETL i sprawdze czy ta droga da sie cos zrobic. CVS ze wzgledu na wydajnosc nie wchodza w gre.
Zbiorczych danych z jednego dnia mam około 20M.
Bartosz Ratajczyk

Bartosz Ratajczyk MS SQL Developer

Temat: Data Warehouse - Co polecacie?

W takim razie nie potrzebujesz ani ETL ani DW.

Narzędzia ETL służą do przenoszenia danych z jednego miejsca w drugie z uwzględnieniem różnych działań na nich. W wielkim skrócie oczywiście. To nie jest coś, co ujednolica istniejący model danych i dodaje jakąś warstwę abstrakcji. Z kolei DW to miejsce składowania danych.

Jak rozumiem chcesz wymyślić jak z tych 100+ baz z niewielkimi odchyleniami w strukturze zrobić jeden wielki widok danych do możliwego odpytywania. Jeśli bazy są na tym samym serwerze, to na upartego możesz zbudować sobie jeden wielki (lub kilka wielkich) SQL w stylu

SELECT pola FROM baza1.tabela1
UNION ALL
SELECT pola FROM baza2.tabela21
UNION ALL
...


Będzie sporo minusów takiego rozwiązania, bo pewnie inaczej są pozakładane indeksy na tabelach, a w MySQL z tego co pamiętam nie zrobisz indeksów na widokach ani widoków materializowanych. Musiałbyś ładować te wszystkie dane w jedno miejsce, indeksować i dopiero odpytywać. Czyli wracamy do DW lub choćby odrębnej dedykowanej bazy danych.

Sugerowałbym jednak wykorzystanie procesu ETL do załadowania danych do jednego wspólnego modelu trzymanego w hurtowni i odpytywanie go.
Daniel Częstki

Daniel Częstki senior php developer

Temat: Data Warehouse - Co polecacie?

Potrzebujesz hurtowni danych

Temat: Data Warehouse - Co polecacie?

Daniel Częstki:
Potrzebujesz hurtowni danych

Nie sądzę żeby do czegoś takiego była potrzebna hurtownia danych.
Zależy co chcesz z tymi danymi robić. Raporty chcesz robić, czy może w jakiś sposób transakcyjny używać zintegrowanych danych. Ciężko w tym drugim przypadku wyobrazić sobie hurtownie danych.
Po prostu potrzebujesz integracji danych.
Kolejne pytanie czy dane mają być odświeżane np co tydzień, miesiąc
czy na bieżąco? To pytanie też odpowie Ci na pytanie jakie rozwiązanie zastosować.
Pentaho kettle jest niezłe używałem i szczerze mówiąc wcale nie gorsze od DataStage'a
chociaż za to drugie się nieźle płaci.Michał Patrzałek edytował(a) ten post dnia 30.07.12 o godzinie 16:18
Tomasz B.

Tomasz B. Senior Software
Engineer

Temat: Data Warehouse - Co polecacie?

Witam
Nareszcie zapowiada się że znajdę czas i w tym tygodniu zajmę się tym projektem. Obecnie wygląda to tak jest aplikacja ma jakieś 100 baz danych rozsianych po świecie, do każdej bazy danych spływają dane które w sumie muszą być analizowane w czasie rzeczywistym.

Teraz to tak jest że w programie mam pętle gdzie sobie czytam w kółko z każdej z osobna dane, analizuję podejmuję działania. Lipa jest taka że te bazy danych mają różną strukturę i dla jednej mam zapytanie select a,b from z a na innej mam select b,a from d.

Najlepiej pasowało by mi zrobić taki wspólny view table integrujący bazy danych, w tym view table chciałby by istniała kolumna z nazwą źródła (bazy danych).

Integracja danych i przeinstalowanie lub zimna struktury baz danych z których dane są czerpane nie ma takiej opcji, bazy muszą zostać takie jakie są.

Dane muszą być nie kopiowane ale czerpane z baz danych.

Moje pytanko jest takie czy ktoś z was robił takie sztuczki i ma praktyczne doświadczenie.

konto usunięte

Temat: Data Warehouse - Co polecacie?

Najprościej zwykłe db linki i potem jeden widok integrujący wszystkie bazy danych. Rozwiązanie najtańsze ale jeśli dane mają być online i nie jest ich zbyt wiele to może wystarczy.

Procesy ETL zazwyczaj działają w jakimś interwale czasowym ale za to dane możemy mieć w jednym źródle przez co odpytywanie będzie szybsze.

Można też od razu z grubej rury i wykorzystać federację danych (tylko ta cena)
http://www.sap.com/poland/solutions/sapbusinessobjects...

konto usunięte

Temat: Data Warehouse - Co polecacie?

Tomku,

czy Twoje analizy mają być zrobione w jakimś konkretnym narzędziu BI? Bo jeśli nie masz jeszcze swojego typu co do samego narzędzia w którym chcesz przedstawiać dane analizy, gdzie źródłem danych jest kilka baz danych to proponuje Pentaho BI + Pentaho Report Designer.

Jak już wcześniej proponowano fajnie jest użyć jakiegoś ETL, ale ten zazwyczaj potrzebuje gdzieś zrzucać dane. Jeśli wykorzystasz Pentaho Data Integration, w którym to możesz sobie zbudować transformację (ETL), która będzie zbierała dane ze wskazanych systemów (baz danych), przekształcała je do interesującej Cię postaci a następnie ... no własnie a następnie nie potrzebujesz definiować wyjścia. Tylko wykorzystujesz to jako źródło danych dla raportów czy analiz.

Tym samym nie musisz budować hurtowni danych. Minus jest taki, że w momencie odświeżania raportu najpierw będzie musiał wykonać się ETL, który zassa dane, przetransformuje i wyrzuci do Twojego raportu.

Oczywiście jeśli nie masz potrzeby przeglądania zmian z dokładnością do minuty to wystarczy zaharmonogramować raport, który wykona się przed Twoim przyjściem do pracy i po sprawie.

Daniel

Temat: Data Warehouse - Co polecacie?

Tomasz B.:
Witam
Nareszcie zapowiada się że znajdę czas i w tym tygodniu zajmę się tym projektem. Obecnie wygląda to tak jest aplikacja ma jakieś 100 baz danych rozsianych po świecie, do każdej bazy danych spływają dane które w sumie muszą być analizowane w czasie rzeczywistym.

Teraz to tak jest że w programie mam pętle gdzie sobie czytam w kółko z każdej z osobna dane, analizuję podejmuję działania. Lipa jest taka że te bazy danych mają różną strukturę i dla jednej mam zapytanie select a,b from z a na innej mam select b,a from d.

Najlepiej pasowało by mi zrobić taki wspólny view table integrujący bazy danych, w tym view table chciałby by istniała kolumna z nazwą źródła (bazy danych).

Integracja danych i przeinstalowanie lub zimna struktury baz danych z których dane są czerpane nie ma takiej opcji, bazy muszą zostać takie jakie są.

Dane muszą być nie kopiowane ale czerpane z baz danych.

Moje pytanko jest takie czy ktoś z was robił takie sztuczki i ma praktyczne doświadczenie.

Moim zdaniem potrzebne są Ci procedury ETL. Masz MySQLa, więc możesz sam takie procedury przenosząco-mapujące naklepać. Miej jednak na uwadze jedną rzecz - ETL nie oznacza (tak mi się wydaje) czasu rzeczywistego, on jest raczej czasu quasi rzeczywistego.
Co więcej, należy sobie zadać pytanie co się stanie, jeżeli narost danych źródłowych będzie tak duży, że ETL nie wyrobi w jakimkolwiek wymiarze czasowym. Uważam, że musisz sobie przemyśleć na przykład ładowanie różnicowe danych/zasilenia bazy docelowej okresowo (np. nocą).
Tabele logujące nazwy źródeł czy jakiekolwiek inne rzeczy mogą być w np. w oddzielnym schemacie, gdzie będą insertować procedury ETL.
Jednym z rozwiązań jest tworzenie triggerów reagujących na operacje DML na źródle - wydaje mi się jednak, że to będzie mało wydajne.
Co do oprogramowania to tworzenia analiz - jeżeli nie są to bardzo zaawansowane raporty itd., to możesz pokusić się o stworzenie czegoś samemu , używając czy to procedur, czy tworząc zewnętrzną aplikację - wydaje mi się, że nie jest to trudne.
Moje doświadczenie z hurtowniami danych jest małe, ale być może to Ci pomoże :D
Pozdrawiam.
Daniel Kmieć:
Tym samym nie musisz budować hurtowni danych. Minus jest taki, że w momencie odświeżania raportu najpierw będzie musiał wykonać się ETL, który zassa dane, przetransformuje i wyrzuci do Twojego raportu.

Oczywiście jeśli nie masz potrzeby przeglądania zmian z dokładnością do minuty to wystarczy zaharmonogramować raport, który wykona się przed Twoim przyjściem do pracy i po sprawie.

Daniel

Też uważam, że nie jest to do końca dobre rozwiązanie. Dajmy na to, że raport wykonujemy cyklicznie, raz na dzień. Odświeżanie raportu uruchamia zawsze ETL - w momencie, kiedy raportów mamy określoną ilość, to wydajność takiego rozwiązania jest słaba. Faktycznie, jest to minus.
Lepiej wykonać SELECT'a na zmapowanych danych niż odpalać ETL.Bartłomiej Pietraszuk edytował(a) ten post dnia 02.08.12 o godzinie 23:12

konto usunięte

Temat: Data Warehouse - Co polecacie?

Przemysław Kapica:
Najprościej zwykłe db linki i potem jeden widok integrujący wszystkie bazy danych. Rozwiązanie najtańsze ale jeśli dane mają być online i nie jest ich zbyt wiele to może wystarczy.

w MySQL-u? zapomnij nie ma takiego wynalazku
Procesy ETL zazwyczaj działają w jakimś interwale czasowym ale za to dane możemy mieć w jednym źródle przez co odpytywanie będzie szybsze.

Można też od razu z grubej rury i wykorzystać federację danych (tylko ta cena)
http://www.sap.com/poland/solutions/sapbusinessobjects...

taniej kupić bardziej sensowną bazę danych wraz z serwerem

Następna dyskusja:

SQL 2000 - Data Transpormat...




Wyślij zaproszenie do