duza baza - jaka
Trompele - 20-05-2006 00:05
duza baza - jaka
Witam, Mam za zadanie wybrac i ew wdrozyc system bazodanowy. Wymagania: 1. Potrafiacy przeszukiwac spore ilosci danych 2. Bezpieczny (replikacje/clustering) 3. Skalowalny 4. W miare szybki
System mialby za zadanie przetrzymywac okolo 100 mln rekordow bez relacji (w przyszlosci do 200 mln i wiecej) Zapis do bazy danych odbywal by sie sporadnycznie, raz do roku kilkudniowe ladowanie danych. Baza danych bedzie wykorzystywana przez kilka dziesiat osob do wyszukiwania danych ktore sa w niej zawarte. Powiedzmy do 100 zapytan przez jedna osobe w ciagu dnia, czyli maksymalnie 10 000 zapytan dziennie (zapewne srednio bedzie kolo 1000). Co wybrac ? Cos z opensource mysql/postgresql czy moze lepiej komercyjne ms/oracle ? Jaki sprzet do tego bedzie potrzebny? czy baze ze 100 mln rekordow mozemy nazwac duza ? Moze jakies inne rozwiazania ? Przetrzymywanie tego w plikach tekstowych raczej nie wchodzi w rachube. Budzet jest ograniczony ale powiedzmy ze firme stac na dedykowane serwery ktore beda ta bazke trzymaly. Pozdrawiam i dzieki za jakiekolwiek informacje jak sie zabrac do oceny wymagan takiej bazy.
T
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Krzysztof Paz - 20-05-2006 00:05
Na początek, proponuję zerknąć na bezpłatną wersję IBM DB2 Express-C - http://www-306.ibm.com/software/data...load.html#v824, dostępną dla Linux i Windows. Ma ograniczenie do 2 procesorów i 4GB RAM, ale za to nie ma limitu uzytkowników czy rozmiaru bazy i nic nie kosztuje. Zawiera pełne narzędzia (GUI i cmd) do administracji i zarządzania serwerem oraz dobrą dokumentację.
Jak już kiedyś projekt przekroczy wydolność takiej maszyny, do na cztery procki z 16GB RAM i także pod komeryjne UNIXy (AIX, Solaris, HP-UX), polecam płatną edycję DB2 Workgroup - http://www-306.ibm.com/software/data...tion-wsue.html
Jeśli trzeba będzie kiedykolwiek coś więcej - to bez żadnych ograniczeń platformowo-sprzętowych warto rozważyć edycję DB2 Enterprise - http://www-306.ibm.com/software/data...ition-ese.html
Do budowy klastra bezpieczeństwa warto rozważyć mechaniz DB2 HADR - http://www-306.ibm.com/software/data/db2/udb/hadr.html
Pozdrawiam, Krzysztof.
dap - 20-05-2006 00:05
Trompele wrote: > Witam, > Mam za zadanie wybrac i ew wdrozyc system bazodanowy. > Wymagania: > 1. Potrafiacy przeszukiwac spore ilosci danych -duzo ramu 16GB do 32 GB > 2. Bezpieczny (replikacje/clustering) -mysql (oracle i mssql za drogie) > 3. Skalowalny -mysql@amd - mozna dodac dodatkowe procesory, pamiec > 4. W miare szybki j.w.
> System mialby za zadanie przetrzymywac okolo 100 mln rekordow bez relacji (w > przyszlosci do 200 mln i wiecej) > Zapis do bazy danych odbywal by sie sporadnycznie, raz do roku kilkudniowe > ladowanie danych. Baza danych bedzie wykorzystywana przez kilka dziesiat osob > do wyszukiwania danych ktore sa w niej zawarte. Powiedzmy do 100 zapytan przez > jedna osobe w ciagu dnia, czyli maksymalnie 10 000 zapytan dziennie (zapewne > srednio bedzie kolo 1000). > Co wybrac ? Cos z opensource mysql/postgresql czy moze lepiej komercyjne > ms/oracle ? Jaki sprzet do tego bedzie potrzebny? czy baze ze 100 mln rekordow > mozemy nazwac duza ? Moze jakies inne rozwiazania ? Przetrzymywanie tego w > plikach tekstowych raczej nie wchodzi w rachube. Budzet jest ograniczony ale > powiedzmy ze firme stac na dedykowane serwery ktore beda ta bazke trzymaly. > Pozdrawiam i dzieki za jakiekolwiek informacje jak sie zabrac do oceny wymagan > takiej bazy.
Zalezy ile w niej bedziesz mial danych ja bym tradycyjnie sprobowal od mysql@linux na amd64@sun :) Sprzet moze byc tzw. firmowe noname, jako ze wpisy beda raz na jakis czas to i backupy odpadaja.
Z lepszy to moze ten http://www.sun.com/servers/entry/x4200/
Jesli dostep bedzie tylko przez selecty to mozna pobawic sie z innymi bazkami.
dap
-- ,= ,-_-. =. gnu.org ((_/)o o(\_)) polanski.biz `-'(. .)`-' xoops.pl \_/
hubert depesz lubaczewski - 21-05-2006 00:23
Trompele wrote: > 1. Potrafiacy przeszukiwac spore ilosci danych
zalezy co to za przeszukwianie. inaczej bym stawial na pelnotesktowke, a inaczej na przeszukwianie przy pomocy normalnych operatorów "=", ">", "<" i pochodne.
> 2. Bezpieczny (replikacje/clustering)
to teraz ma praktycznie kazda baza.
> 3. Skalowalny
#define skalowalny
> 4. W miare szybki
a to jest bardzo wzgledne.
> System mialby za zadanie przetrzymywac okolo 100 mln rekordow bez relacji > (w przyszlosci do 200 mln i wiecej) > Zapis do bazy danych odbywal by sie sporadnycznie, raz do roku kilkudniowe > ladowanie danych. Baza danych bedzie wykorzystywana przez kilka dziesiat > osob do wyszukiwania danych ktore sa w niej zawarte. Powiedzmy do 100 > zapytan przez jedna osobe w ciagu dnia, czyli maksymalnie 10 000 zapytan > dziennie (zapewne srednio bedzie kolo 1000).
tak na oko to bym zgadywał, że jest to system typu dss. gdybym był na twoim miejscu to: 1. poszukałbym firmy która zanalizuje problem i przedstawi rozwiązania. lub: 2. postawił postgresa na odpowiednio dużej maszynie. jeśli przestanie sie wyrabiać, to z postgresa można trywialnie prosto przejść na bizgresmpp, a ta baza bezstresowo sobie poradzi z danymi w takiej ilosci lub nawet sporo wiekszymi.
> Co wybrac ? Cos z opensource mysql/postgresql czy moze lepiej komercyjne > ms/oracle ? Jaki sprzet do tego bedzie potrzebny? czy baze ze 100 mln > rekordow mozemy nazwac duza ? Moze jakies inne rozwiazania ?
100 milionów - raczej średnia. duża nie jest. choć to też zależy co to za rekordy :) na pewno mozna tym z miare normalnie operować. nie wiem jaki masz profil zapytań. jakie zapytanie na takiej bazie będziesz wykonywał, jaki czas to "długo", a jaki "krótko".
> Przetrzymywanie tego w plikach tekstowych raczej nie wchodzi w rachube. > Budzet jest ograniczony ale powiedzmy ze firme stac na dedykowane serwery > ktore beda ta bazke trzymaly. Pozdrawiam i dzieki za jakiekolwiek > informacje jak sie zabrac do oceny wymagan takiej bazy.
oceń czego dokładnie oczekujesz od takiej bazy. jeśli np. jest to baza z której będziesz robił raporty za każdym razem używając 50% rekordów z bazy. i muszą być gotowe w np. 2 sekundy, to będzie ci potrzebny inny sprzęt/software niż jeśli będziesz robił wyszukiwania typu: select * from tabela where pola=cośtam; co zazwyczaj zwróci ci 0.001% rekordów.
anyway - ze swojej strony polecam postgresa, dedykowane *sensowne* serwery i macierz. udźwignie raczej bez większych problemów - ale tak jak powiedziałem - wszystko zależy od profilu użytkowania.
depesz
p.s. <reklama>firma gdzie pracuje robi konsulting w sprawach baz danych, postgresa, instalacji, optymalizacji itd. jeśli cię interesuje, odezwij się.</reklama>
-- http://www.depesz.com/ - nowy, lepszy depesz
genuine - 21-05-2006 00:23
> Witam, > Mam za zadanie wybrac i ew wdrozyc system bazodanowy. > Wymagania: > 1. Potrafiacy przeszukiwac spore ilosci danych > 2. Bezpieczny (replikacje/clustering) > 3. Skalowalny > 4. W miare szybki >
z tym bezpieczenstwem to zabrzmialo jak z taniej ulotki marketingowej. :) Ja jednak proponuje baze komercyjna nie musi byc oracle, ale m$ sql. rozlożenie plików danych, prawdziwa strategia backupu, dts, no i szybkie przywrocenie. a nie musisz kupować ms'a na wielu uzytkownikow - przeciez i tak dostarczysz im jakis loyout do wprowadzania parametrów.
T - 21-05-2006 00:23
hubert depesz lubaczewski wrote:
>> 1. Potrafiacy przeszukiwac spore ilosci danych > zalezy co to za przeszukwianie. inaczej bym stawial na pelnotesktowke, a > inaczej na przeszukwianie przy pomocy normalnych operatorów "=", ">", "<" > i pochodne.
Przeszukiwanie bedzie odbywalo sie na stringach i jego czesciach. Czyli mamy np tabele: imie, nazw, adresnr,adresulica,miasto,kodpocztowy I wpisuje np: Roman Mazur, Oczekuje ze wyswietli mi wszystkie rekordy ktore zawieraja i Roman i Mazur,
>> 2. Bezpieczny (replikacje/clustering) > to teraz ma praktycznie kazda baza. Chodzi mi o latwe tworzenie i przywracanie kopi zapasowej danych w razie uszkodzenia dysku/dyskow/macierzy.
>> 3. Skalowalny > > #define skalowalny W tym roku mam 100 mln danych w nastepnych 200 mln zeby sie nie okazalo ze niestety baza obsluzy do 199 mln ;]
> tak na oko to bym zgadywa?, ?e jest to system typu dss. > gdybym by? na twoim miejscu to: > 1. poszuka?bym firmy która zanalizuje problem i przedstawi rozwi?zania. > lub: > 2. postawi? postgresa na odpowiednio du?ej maszynie. je?li przestanie sie > wyrabia?, to z postgresa mo?na trywialnie prosto przej?? na bizgresmpp, a > ta baza bezstresowo sobie poradzi z danymi w takiej ilosci lub nawet sporo > wiekszymi.
Raczej wlasnie sie rozgladam, jezeli nie bede w stanie sam ocenic wymagan napewno skorzytam z jakiejs firmy zew firmy , chociaz wolalbym tego uniknac.
>> Co wybrac ? Cos z opensource mysql/postgresql czy moze lepiej komercyjne >> ms/oracle ? Jaki sprzet do tego bedzie potrzebny? czy baze ze 100 mln >> rekordow mozemy nazwac duza ? Moze jakies inne rozwiazania ? > > 100 milionów - raczej ?rednia. du?a nie jest. cho? to te? zale?y co to za > rekordy :) > na pewno mozna tym z miare normalnie operowa?. nie wiem jaki masz profil > zapyta?. jakie zapytanie na takiej bazie b?dziesz wykonywa?, jaki czas to > "d?ugo", a jaki "krótko".
Rekordami beda stringi skladowane w powiedzmy 15 kolumnach varchar. Wielkosc jednego rekordu to gora 500 znakow
>> Przetrzymywanie tego w plikach tekstowych raczej nie wchodzi w rachube. >> Budzet jest ograniczony ale powiedzmy ze firme stac na dedykowane serwery >> ktore beda ta bazke trzymaly. Pozdrawiam i dzieki za jakiekolwiek >> informacje jak sie zabrac do oceny wymagan takiej bazy. > > oce? czego dok?adnie oczekujesz od takiej bazy. > je?li np. jest to baza z której b?dziesz robi? raporty za ka?dym razem > u?ywaj?c 50% rekordów z bazy. i musz? by? gotowe w np. 2 sekundy, to > b?dzie ci potrzebny inny sprz?t/software ni? je?li b?dziesz robi? > wyszukiwania typu: > select * from tabela where pola=co?tam; > co zazwyczaj zwróci ci 0.001% rekordów.
Oczekuje odpowiedzi w powiedzmy czasie do minuty. Wynik bedzie zawieral do 100 rekordow najwiecej (ze wzgledu na to, ze czlowiek bedzie musial je przejzec i wybrac najodpowiedniejsze - zatem bedzie musial ograniczac wielkosc wyniku) Zapytanie: select * from tabela where pola=co?tam; jak najbardziej pasuje do tego w jaki sposob beda wyszukiwane dane.
> anyway - ze swojej strony polecam postgresa, dedykowane *sensowne* serwery > i macierz. ud?wignie raczej bez wi?kszych problemów - ale tak jak > powiedzia?em - wszystko zale?y od profilu u?ytkowania.
Wiec juz powiedzialem, czas odpowiedzi nie jest tutaj priorytetem, wazniejsze sa funkcje ciaglej dostepnosci, bezawaryjnosci i skalowalnosci. Ogolnie mowiac bardziej zalezy mi na przechowywaniu tych danych a potem dopiero wygodzie uzytkownika (czas odpowiedzi itp).
> depesz
> p.s. <reklama>firma gdzie pracuje robi konsulting w sprawach baz danych, > postgresa, instalacji, optymalizacji itd. je?li ci? interesuje, odezwij > si?.</reklama>
Jesli kosulting moze odbyc sie w jezyku angielskim i firma nie stara sie na sile "wcisnac" postgresa to prosze o namiary.
Pozdrawiam
T
hubert depesz lubaczewski - 21-05-2006 00:23
T wrote: > Wiec juz powiedzialem, czas odpowiedzi nie jest tutaj priorytetem, > wazniejsze sa funkcje ciaglej dostepnosci, bezawaryjnosci i skalowalnosci. > Ogolnie mowiac bardziej zalezy mi na przechowywaniu tych danych a potem > dopiero wygodzie uzytkownika (czas odpowiedzi itp).
każd będzie ci polecał taką bazę jaką zna. ja/my znamy postgresa i jego polecamy. potrafimy go skalować, potrafimy zapewnić ciągłą (oczywiście kwestia ciągłości jest względna. cyz mówimy o 6 dni w tygodniu przez 8 godzin (ciągłość w/g niektórych) czy 99.9999% czasu (ciągłość w/g innych)). backupy itd. są oczywiście proste i nie przeszkadzają w pracy.
>> p.s. <reklama>firma gdzie pracuje robi konsulting w sprawach baz danych, >> postgresa, instalacji, optymalizacji itd. je?li ci? interesuje, odezwij >> si?.</reklama> > Jesli kosulting moze odbyc sie w jezyku angielskim i firma nie stara sie > na > sile "wcisnac" postgresa to prosze o namiary.
konsulting może się odbywać po angielsku. co do postgresa - jego znamy bardzo dobrze. to może być minusem, bo w oczywisty sposób wpływa na nasze propozycje. znamy jednak też jego wady i mówimy o tym otwarcie (aczkolwiek żadna ze znanych wad postgresa nie wydaje mi się być istotna przy takim projekcie).
depesz
-- http://www.depesz.com/ - nowy, lepszy depesz
dap - 21-05-2006 00:23
Pozwole się podłączyć...
>>>1. Potrafiacy przeszukiwac spore ilosci danych >> >>zalezy co to za przeszukwianie. inaczej bym stawial na pelnotesktowke, a >>inaczej na przeszukwianie przy pomocy normalnych operatorów "=", ">", "<" >>i pochodne. > > > Przeszukiwanie bedzie odbywalo sie na stringach i jego czesciach. > Czyli mamy np tabele: imie, nazw, adresnr,adresulica,miasto,kodpocztowy > I wpisuje np: Roman Mazur, > Oczekuje ze wyswietli mi wszystkie rekordy ktore zawieraja i Roman i Mazur,
Wyszukiwanie wg. pojedynczych wyrazów w jednej kolumnie nie jest żadnym problemem dla chyba zadnej bazy danych. Problem jest gdy dana osoba będzie miała dwa imiona, przedrostek przed nazwiskiem i tytul. Dodatkowym problemem jeśli pozwoli się na wyszukiwanie przez wyrażenia regularne z przodu np. *nna - może być i Hanna, i Anna, Zuzanna, itd...
>>>2. Bezpieczny (replikacje/clustering) >> >>to teraz ma praktycznie kazda baza. > > Chodzi mi o latwe tworzenie i przywracanie kopi zapasowej danych w razie > uszkodzenia dysku/dyskow/macierzy.
Skoro dane są ładowne raz na kilka miesięcy to i kopia zapasowa będzie robiona tylko w tym czasie. A że pewnie ładowanie danych będzie sie wiazalo z wylaczeniem bazy danych to mozna rownoczesnie zrobic cold-backup, polagajacy na przekopiowaniu odpowiednich plików.
Replikacja/Klastry zapewniaja przede wszystkim dostępność i skalowalność bazy danych.
>>>3. Skalowalny >> >>#define skalowalny > > W tym roku mam 100 mln danych w nastepnych 200 mln zeby sie nie okazalo ze > niestety baza obsluzy do 199 mln ;]
To ile wreszcia ich ma byc? 100mln co rok przez 10 lat?
> Rekordami beda stringi skladowane w powiedzmy 15 kolumnach varchar. Wielkosc > jednego rekordu to gora 500 znakow
W najgorszym przypadku 15*500*100000000=750000000000/1024/1024/1024 = 698 GB (dane bez indeksów) - chyba troche przesadzone
15*50*100000000=750000000000/1024/1024/1024 = 69 GB (dane bez indeksów) -nie ma problemu :)
> Oczekuje odpowiedzi w powiedzmy czasie do minuty. Wynik bedzie zawieral do > 100 rekordow najwiecej (ze wzgledu na to, ze czlowiek bedzie musial je > przejzec i wybrac najodpowiedniejsze - zatem bedzie musial ograniczac > wielkosc wyniku)
Ok - top 100 jak w google :)
> Zapytanie: select * from tabela where pola=co?tam; jak najbardziej pasuje do > tego w jaki sposob beda wyszukiwane dane.
Być może będzie sensowne użycie wiekszej ilości tabeli np. z miastami, imionami, kodami pocztowymi - aby uniknąć błędów przy wpisywaniu danych. Prawdopodobnie partycjonowanie też będzie konieczne
>>anyway - ze swojej strony polecam postgresa, dedykowane *sensowne* serwery >>i macierz. ud?wignie raczej bez wi?kszych problemów - ale tak jak >>powiedzia?em - wszystko zale?y od profilu u?ytkowania. > > > Wiec juz powiedzialem, czas odpowiedzi nie jest tutaj priorytetem, > wazniejsze sa funkcje ciaglej dostepnosci, bezawaryjnosci i skalowalnosci. > Ogolnie mowiac bardziej zalezy mi na przechowywaniu tych danych a potem > dopiero wygodzie uzytkownika (czas odpowiedzi itp).
ciaglej - a dokladniej to 24/7/356 czy moze raczej 8/5/250? bezawaryjność - to zalezy od sprzetu :) skalowalnosc - ilość danych się zmieni czy tez moze ilość użytkowników?
Po tym liście skłaniem sie raczej w stron Oracle (choc mysql tez da z tym rade), ale w wypadku rozwiazan komercyjnych przygotuj sie na duze wydatki zwiazane z licencjami (szczegolnie M$).
dap
-- ,= ,-_-. =. gnu.org ((_/)o o(\_)) polanski.biz `-'(. .)`-' xoops.pl \_/
=?ISO-8859-2?Q?Micha=B3?= Kuratczyk - 23-05-2006 00:24
Trompele wrote: > czy baze ze 100 mln rekordow mozemy nazwac duza ? Można, tylko po co? ;->
SQL> select count(*) from user_tables where num_rows > 100000000;
COUNT(*) ---------- 4
SQL> select sum(num_rows) from user_tables;
SUM(NUM_ROWS) ------------- 2141594484
-- Michał Kuratczyk
Grzesiek G. - 25-05-2006 00:50
genuine napisał(a): >>Witam, [...] > Ja jednak proponuje baze komercyjna nie musi byc oracle, ale m$ sql. > rozlożenie plików danych, prawdziwa strategia backupu, dts, no i szybkie > przywrocenie. a nie musisz kupować ms'a na wielu uzytkownikow - przeciez i > tak dostarczysz im jakis loyout do wprowadzania parametrów.
Co nie zwalnia (prawnie, nie technicznie) z konieczności zakupu odpowiedniej liczby licencji.
Pozdrawiam
-- Grzegorz Gruza Odpowiadając usuń "spamerom_nie." z adresu!!!
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Baza Accessa bez Accessa
Zrywanie =?ISO-8859-2?Q?po=B3aczen_z_baza_danych_-_pos?==?ISO-8859-2?Q?tgresql_=3C-=3E_odbc?=
=?iso-8859-2?q?co_wybra=E6_=3F=3F_Baza_Mysql_na_serwerze_gdzi e=B6_w_polsce_czy_......?=
[oracle] Baza danych do kursy Introduction to Oracle9i:PL/SQL ? Skąd ją pobrać ?
Problem z zapytaniem SQL - Excel i baza danych SQL Serwer 2000
Współużytkowanie jednej bazy poprzez 2 komputery (uzupełnianie) jak ? (Baza w MS acces97 na 1 komp.)
=?ISO-8859-2?Q?Baza_danych_2_TB_-_uda_si=EA_w_PostgreSQL=3F?=
Baza danych EnterpriseED - =?ISO-8859-2?Q?wra=BFenia/opinie=3F?=
[MS SQL] program do zarządzania bazą coś innego niż Managment Studio
katalog lost+found figuruje jako baza danych MySQL
zanotowane.pldoc.pisz.plpdf.pisz.plbajkomoda.xlx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|