Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Baza podataka za logovanje merenja

[es] :: Baze podataka :: Baza podataka za logovanje merenja

Strane: 1 2

[ Pregleda: 6275 | Odgovora: 25 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

indicator1
BGD

Član broj: 4248
Poruke: 533
*.amres.ac.rs.



+1 Profil

icon Baza podataka za logovanje merenja21.02.2014. u 08:05 - pre 122 meseci
Prvo da kazem da sam APSOLUTNI pocetnik u vezi baza podataka pa oprostite ako nesto lupim.

Elem, treba da napravim bazu za VELIKU kolicinu merenja, otprilike 50 u sekundi. Svako merenje ima oblik: ID (sestocifreni broj, ima otprilike 300 razlicitih merenja), TIMESTAMP(vreme u formatu datum:vreme), VALUE(moze biti ili broj ili string do 25 karaktera), FLEG (bit). Server ce biti MS SQL Express, na 32-bitnom XP-u.
Posto nemam nikakvog iskustva, imam par teskih dilema:

1. Da li je ovo (obzirom na kolicinu podataka) ovo preveliki zalogaj za majkrosoftov server i XP? Klijenata koji pristupaju bazi bice najvise 2 u jednom trenutku. Takodje, u bazi se nikada nece nista ispravljati, vec se se samo dodavati novi upisi. Baza bi trebalo da radi merenja za bar 4-5 godina.

2. Kako uopste osmisliti bazu za ovu namenu. Krajnji rezultat treba da bude jednostavan prikaz vrednosti odredjenog merenja izmedju dva vremena po izboru. Jel dovoljan samo jedan table sa 4 kolone, ili vec pri upisu u db razvrstati podatke u razlicite kolone (il cak zasebne table-ove)?

Dosada sam ovo radio tako sto moja aplikacija (pisana u VB-u) vrsi upis u CSV fajl na dnevnom nivou (novi dan -novi fajl) i to je radilo, ali je problem sto se trazi jedinstvena baza podataka.
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: Baza podataka za logovanje merenja21.02.2014. u 08:24 - pre 122 meseci
Dakle, 50 merenja u sekundi to mu izađe 50*60*60*24 = 4,320,000 slogova za 24 časa. Jedan slog bi bio, otprilike 40 bajtova, pa mu to izađe 172,800,000 bajtova u roku od 24 časa.
Limit Express verzije je 10GB podataka, pa mu to izađe da će skalamerija da radi 58 dana dok se ne dostigne limit.
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: Baza podataka za logovanje merenja21.02.2014. u 08:36 - pre 122 meseci
Sa druge strane, onako kako si opisao situaciju, to ne bi bio problem ni za jednu bazu podataka, samo da nije ograničenja količine podataka.
Bolje da ideš na MySQL ili neku drugu "besplatnu" bazu.
 
Odgovor na temu

indicator1
BGD

Član broj: 4248
Poruke: 533
*.amres.ac.rs.



+1 Profil

icon Re: Baza podataka za logovanje merenja21.02.2014. u 09:24 - pre 122 meseci
Hvala na odgovoru. Eto nisam znao za limit od 10GB, znaci express ispada iz igre. Minimalna kolicina podataka treba da bude bar za 1 godinu, sto onda ispada nekih 60GB?
Malo me brine i to sto je os XP 32 bita, znaci 3gb rama maksimalno. Ne znam da li je to dovoljno, ili cu morati da nabavim 64-bitnu verziju.

 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: Baza podataka za logovanje merenja21.02.2014. u 09:57 - pre 122 meseci
Ja sam lupio odokativno potreban prostor, ne znam kakvi su ti zaista podaci, ali treba da računaš i da ćeš želeti da imaš indekse nad podacima, što mu dođe još 30%-100% overheda na podatke.

Sada, kada ti je otpala MS SQL Express varijanta, ne moraš uopšte ni da ideš na Win varijantu servera. Ako je neki niskobudžetni projekat, lepo staviš 64-bitni Linux, pa onda stavi memorije koliko hoćeš. Ne znam koliko je matora mašina, kada još uvek gura XP na sebi, ali za max 400 EUR kupiš bombonicu od mašina sa 8GB RAM-a, pa sve ima da leti (evo, baš gledam neki i3 sa 8GB za 39,990)...
 
Odgovor na temu

indicator1
BGD

Član broj: 4248
Poruke: 533
*.amres.ac.rs.



+1 Profil

icon Re: Baza podataka za logovanje merenja21.02.2014. u 14:17 - pre 122 meseci
Nazalost, mora XP, jer se merenja kupe preko softvera koji radi samo pod Windows-ima.
 
Odgovor na temu

drvlada75
Prokuplje

Član broj: 153703
Poruke: 1204
..3.252.195.static.beotel.net.



+34 Profil

icon Re: Baza podataka za logovanje merenja21.02.2014. u 14:26 - pre 122 meseci
PostgreSQL?
http://www.postgresql.org/about/
 
Odgovor na temu

brzak

Član broj: 66407
Poruke: 126



+5 Profil

icon Re: Baza podataka za logovanje merenja23.02.2014. u 07:58 - pre 122 meseci
Najbolje da probas na svojoj konfiguraciji.

Posto mene zanimaju mogucnosti PosgreSQL pustila sam ovo na svom par godina starom laptopu. Tablespace je na eksternom usb disku.

create table test as
select
trunc(random()*300+1) id
,current_timestamp ct
,substr(md5(random()::text),1,25) vl
,round(random()) bt
from generate_series(1,1500000000);

Ovo je odradio za neka 2.5 sata. Kreiranje indexa nad (id,ct) je radio satima i nije uspeo da zavrsi. Zauzece diska u podacima je 117GB.

Ovo bi trebalo da simulira godinu dana rada (na id treba dodati do sestocifrene vrednosti).

PostgreSQL nije podesavan default instalacija je u pitanju.

 
Odgovor na temu

brzak

Član broj: 66407
Poruke: 126



+5 Profil

icon Re: Baza podataka za logovanje merenja23.02.2014. u 08:43 - pre 122 meseci
Predlazem ti da kada upunis bazu napravis neki programcic koji ce da simulira punjenje baze da vidis da li mozes da postignes brzinu od 50/s.
 
Odgovor na temu

indicator1
BGD

Član broj: 4248
Poruke: 533
*.amres.ac.rs.



+1 Profil

icon Re: Baza podataka za logovanje merenja10.03.2014. u 15:35 - pre 122 meseci
Nisam imao bas puno vremena ali evo sta sam postigao:

Krenuo sam od MS SQL Express 2008R2 . Napravio sam bazu sa 1 tabelom , 52 kolone gde je prva vreme kao string, zatim 50 real merenja i index. Kroz VB sam simulirao "punjenje" baze od godinu dana, sa 50 velicina na svake 2 sekunde i baza ispadne velicine nekih 8Gb, znaci ispod 10 tako da MS SQL Express teoretski moze da zavrsi posao. Medjutim, update na tolikoj bazi (365*24*60*30 zapisa) je EKSTREMNO SPOR, nesto tipa minut-dva za jedan record a meni je poptrebno da se odradi u delicu sekunde. Citajuci malo o bazama naisao sam da se rad usporava ako baza ne moze da stane u RAM, a posto MS server uzme otpr. duplu kolicinu rama u odnosu na bazu, ispalo je da najveca velicina baze koju mogu brzo da apdejtujem jeste oko 1GB (radim na XP-u a tu je max. RAM ogranicen na 3GB).
Zato sam odlucio da napravim bazu na mesecnom nivou a da onda mesecno pravim arhivu (kroz bekap) pa da potom bazu popunjavam ponovo, tj apdejtujem zapise za odredjeni vremenski trenutak. Da ubrzam rad, pretvorio sam vreme u integer (po formuli sekunde + minuti*60 + sati*3600 +dani*86400), i sad update traje stvarno vrlo kratko.

Ostaje mi da resim pristup arhiviranim podacima. Ideja mi je da na serveru pored trenutne baze imam i neku temp bazu u koju bih po potrebi mogao da vratim bekapovane podatke za odredjeni mesec, te ih obradim po potrebi. E, sad imam problem posto ne znam kako to da izvedem. Pokusao sam da uradim restore:

Dim conect As New ADODB.Connection
With connect
.ConnectionString = "Provider=SQLNCLI10;Server=SERVER\SQLEXPRESS;Database=baza;Trusted_Connection=yes"
.Open
.Execute "RESTORE DATABASE bazatemp FROM DISK = 'C:\Backup\baza.bak' WITH REPLACE;"
.Close
End With

ali ovo ne radi, tj umesto u bazatemp pokusava da uradi restore u originalnu bazu a to server ne dozvoli jer je baza otvorena. Verujem da je resenje jednostavno ali jos ga nisam nasao pa ako neko zna, neka pomogne.
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Baza podataka za logovanje merenja10.03.2014. u 17:57 - pre 122 meseci
Nije ti serevr kriv za sporost, nego najverovatnije baza.

Ono 52 kolone najverovatnije moze da se svede na 52 rekorda. Kazao si ovo:
Citat:
ID (sestocifreni broj, ima otprilike 300 razlicitih merenja), TIMESTAMP(vreme u formatu datum:vreme), VALUE(moze biti ili broj ili string do 25 karaktera), FLEG (bit).


Tvoja tabela treba da izgleda ovako:
Merenja { ID LongInt, Vreme datetime, Vrednost varchar(25) } PRIMARY KEY (ID,Vreme) Pretpostavio sam da ID na neki nacin predstavlja 'sta se meri' pa se istih 52 ID ponavljaju svake sekunde sa razlicitim vrednostima.

Ovakav dizajn tabele ce mnogo brze da ti radi nego 52 kolone (zlo i naopako, daleko bilo...)




 
Odgovor na temu

indicator1
BGD

Član broj: 4248
Poruke: 533
46.240.153.*



+1 Profil

icon Re: Baza podataka za logovanje merenja10.03.2014. u 22:28 - pre 122 meseci
Nije mi jasan ovaj tvoj predlog za organizaciju baze. Ne znam da li sam i sam najbolje opisao zadatak ali da probam jos jednom:

Svake sekunde treba "upamtiti" vrednosti 50 razlicitih velicina. Vrednosti (value1,...value50) su ili integer ili real brojevi. Iz baze treba da se po potrebi "izvuce" kretanje bilo koje velicine od tih 50 izmedju dva proizvoljna vremenska trenutka. Nekako mi je logicno bilo da svaki row bude nova sekunda, ali mozda ima bolji pristup?







 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Baza podataka za logovanje merenja11.03.2014. u 13:30 - pre 122 meseci
Nije svaki row jedna sekunda. 50 rows bi bila jedna sekunda. Svako od 50 merenje u svakoj sekundi ide u zaseban row. Ima mnogo redova, godisnje 52*60*24*365 ali ce ti kveriji biti mnogo brzi, unos I sve ostalo.

Ovako nekakao, ako je moguce. Pretpostavka je da za svaki od 50 izmerenih podataka znas sta je to (napon, amperaza, proticaj, nivo, brzina, nekakav staus I slicno).

Code:

 Brojac     Trenutak  StaSeMeri IzmerenaVrednost
    1          T1            Napon        218.25
    2         T1            Amperaza    14.2
    ..
    49        T1            NekiStatus    Y
    50         T1            Brzina        1.5
'prazan red da bi slika bila jasnija, druga (T2) sekunda:    
    1          T2            Napon        221.75
    2         T2            Amperaza    13.6
    ..
    49        T2            NekiStatus    N
    50         T2            Brzina        1.25
'prazan red da bi slika bila jasnija, trecca (T3) sekunda:        
    1         T3            Napon        218.25
    2         T3          Amperaza    14.2
.....


 
Odgovor na temu

brzak

Član broj: 66407
Poruke: 126



+5 Profil

icon Re: Baza podataka za logovanje merenja12.03.2014. u 21:23 - pre 122 meseci
Citat:
indicator1: Nisam imao bas puno vremena ali evo sta sam postigao:

Krenuo sam od MS SQL Express 2008R2 . Napravio sam bazu sa 1 tabelom , 52 kolone gde je prva vreme kao string, zatim 50 real merenja i index.


Sta je ta zadnja kolona koja je index? Mozda si hteo da indeksiras po vremenu da bi brze nasao slog

CREATE INDEX idxVreme ON MyTable (Vreme);

Ali tu si na knap sa 10 GB, nije bas sa tim se kockati.
 
Odgovor na temu

indicator1
BGD

Član broj: 4248
Poruke: 533
*.amres.ac.rs.



+1 Profil

icon Re: Baza podataka za logovanje merenja13.03.2014. u 09:26 - pre 122 meseci
Jeste,
Citat:
Zidar: Nije svaki row jedna sekunda. 50 rows bi bila jedna sekunda. Svako od 50 merenje u svakoj sekundi ide u zaseban row. Ima mnogo redova, godisnje 52*60*24*365 ali ce ti kveriji biti mnogo brzi, unos I sve ostalo.

Ovako nekakao, ako je moguce. Pretpostavka je da za svaki od 50 izmerenih podataka znas sta je to (napon, amperaza, proticaj, nivo, brzina, nekakav staus I slicno).


Znam sta je svaka velicina, poznat je i format. Mislim da razumem predlog, formiracu test bazu da vidim kako radi. Samo da te ispravim, imace 50*60*60*24*365 redova, tj 1.5 milijardi na godisnjem nivou sto mi deluje zastrasujuce. Potrebne su 3-4 kolone, timestamp, Id, value, eventualno index ako uopste treba. Posto baza ima mnogo vise upisa nego prva varijanta (u prvoj 52 velicine u sekundi, u drugoj 150-200), i verovatno ce biti mnogo veca, moram da vidim sta moze da stane u 10GB (kao sto sam pomenuo, imam mogucnost da merim na 2 sekunde umesto na jednu kao i da baza bude na mesecnom nivou sa automatskim bekapom). Iskren da budem MS SQL Expres mi je "legao" pa ne bih da prelazim na nesto drugo ako ne moram.


Malo mi je nezgodno sto ce upis i citanje biti u komplikovanijem obliku nego sada. trenutno kad hocu da "izvucem" neku velicinu koristim:

Code:
rekordset.Open "select time_stamp,valuex from merenja where time_stamp Between 'pocetno_vreme' and '"krajnje_vreme"'", conect, adOpenForwardOnly, adLockOptimistic


a za tvoj predlog baze ce valjda ici nesto tipa
Code:
select time_stamp,IDx, valuex where time_stamp Between ... and IDx=...


Meni se laicki cini da ce ovaj upit da se radi sporije, ima vise uslova. Takodje, kod apdejtovanja umesto da se apdejtuje 1 row sa 50-tak kolona apdejtuje se 50 row-a sa 3 kolone. Da li organizacija tabele da ima malo kolona a puno redova zaista toliko ubrzava rad sa bazom?


Citat:
brzak: Sta je ta zadnja kolona koja je index? Mozda si hteo da indeksiras po vremenu da bi brze nasao slog CREATE INDEX idxVreme ON MyTable (Vreme); Ali tu si na knap sa 10 GB, nije bas sa tim se kockati.


Upravo to, nisam istestirao ali je to bila ideja.


[Ovu poruku je menjao indicator1 dana 13.03.2014. u 10:46 GMT+1]
 
Odgovor na temu

Getsbi

Član broj: 124608
Poruke: 2828



+45 Profil

icon Re: Baza podataka za logovanje merenja13.03.2014. u 10:38 - pre 122 meseci
Možda bi bilo dobro da nam detaljinije opišeš realni sistem koji pokušavaš da prevedeš u informacioni. Koji je to konkretni realni sistem?
Recimo da bi jedna od ideja smanjenja količine upisa bila, da se upisuje zapis samo ukoliko se bar u jednom merenju razlikuje od prethodnog. To bi smanjilo zahteve za kapacitetom, jer se zapis nebi upisivao na svaki sekund.
Kada su merenja u pitanju, sigurno je da postoje standardne veličine (dozvoljene granice).
Razmisli o tome da beležiš samo one koje su van opsega.

 
Odgovor na temu

indicator1
BGD

Član broj: 4248
Poruke: 533
*.amres.ac.rs.



+1 Profil

icon Re: Baza podataka za logovanje merenja13.03.2014. u 12:42 - pre 122 meseci
Da kazemo da je u pitanju vise strimova podataka koji stizu potpuno asinhrono, ali vrlo cesto. Da bude lakse, recimo meri se 50 temperatura a za merenje se koriste razliciti meraci. Windows PC pod XP-om (ima razloga zasto je bas XP) skuplja podatke sa vise tipova meraca, sa kojima se komunikacija ostvaruje ili preko LAN mreze ili serijskim portom ili konvertorskom karticom ugradjenom u sam racunar. To znaci da moja aplikacija kupi raznorazne podatke (merenja), na razlicite nacine (DCOM objekti, UDP strim, serijska komunikacija, windows drajver kojem se pristupa na razne nacine. ...) Strimovi su razlicite brzine neki dostavljaju podatke i po 100 puta u sekundi, neki redje. Zadatak je prikupiti sve te podatke od razlicitih uredjaja(strimova) i skupiti ih na jedno mesto za naknadnu analizu.
Svaka merene velicina ima svoj dozvoljeni opseg, ali to nije od interesa u ovoj prici. Ono sto jeste je da je za naknadnu analizu potrebno podatke pamtiti u vremenskom sledu od 1, eventualno 2 sekunde NAJREDJE . Brze podatke obradim (usrednjim, filtriram, sta vec) tako da ih svedem na tu vremensku bazu. Korisnik aplikacije treba bude u mogucnosti da analizira vrednosti bilo koje od 50 velicina za bilo koje vreme u poslednjih godinu dana. Do sada sam to radio direktnim upisom u binarne fajlove, pa ih kroz svoju aplikaciju vratim nazad i prikazem graficki, kroz excel tabelu ili vec kako ko hoce, sada moram da uposlim SQL bazu (da bi podaci bili dostupni i na neki drugi nacin a ne smo kroz moju aplikaciju).

Znaci ukratko, ja vec odbacujem suvisne podatke koje treba pamtiti, ovih 50 u 2 sekunde je MINIMUM MINIMUMA. Velicine su promenljive u vremenu, realnoj je ocekivati da se menjaju iz sekunde u sekundu tako da asinhroni nacin pracenja (belezenje samo trenutaka i velicine promene) nema smisla.

Video sam da se za ovakve stvari koriste neke ne-sql baze, ali ovde je bas zahtev za SQL (ima i smisla, taj koji bude analizirao podatke moze putem svojih sql upita da izdvoji bas ono sto mu treba iz GOMILE podataka).

Kad se ima (puno) para, za ovo se koriste historian baze, ali ovo treba da bude za dzabe.

[Ovu poruku je menjao indicator1 dana 13.03.2014. u 13:56 GMT+1]
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: Baza podataka za logovanje merenja13.03.2014. u 12:47 - pre 122 meseci
Firebird baza je besplatna ali nemam iskustva sa tolikom količinom podataka, možda da i nju pogledaš?

Nemam iskustva sa bilježenjem mjerenja, ali ako se ne varam, "SQL baze ilitiga relacijske baze" nisu najsretnije rješenje za tvoj problem. Dakle, po meni bi tebi trebala neka noSQL baza tipa Cassandra, SimpleDB, MongoDB. Ponavljam, nemam iskustva u tom području ali savjetujem ti da si malo googlaš, možda nađeš efikasnije rješenje.

Cassandra
F
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: Baza podataka za logovanje merenja13.03.2014. u 12:52 - pre 122 meseci
Citat:
indicator1:
Video sam da se za ovakve stvari koriste neke ne-sql baze, ali ovde je bas zahtev za SQL (ima i smisla, taj koji bude analizirao podatke moze putem svojih sql upita da izdvoji bas ono sto mu treba iz GOMILE podataka).


Taman sam ti u zadnjem postu o ovome pisao. Zašto misliš da se u noSQL bazama ne može izdvojiti točno određeni podatak? Postoje i za njih "jezici" kojima se izvlače podatci, inače te baze ne bi imale smisla.
Mislim da si previše ograničen (pogotovo sa besplatnim verzijama) sa relacijskim bazama podataka. A o mjesečnom dijeljenu baza ne bi niti pomišljao jer me i strah pomisliti šta bi se dogodilo da moraš tražiti podatke u rangu 1.1.-31.12.

F
 
Odgovor na temu

indicator1
BGD

Član broj: 4248
Poruke: 533
*.amres.ac.rs.



+1 Profil

icon Re: Baza podataka za logovanje merenja13.03.2014. u 14:53 - pre 122 meseci
Zato sto korisnik trazi SQL bazu (iako malte ne nema relacija) jer zna SQL upite posto ima i druge SQL baze, a nece da uci kako se operise ne-sql bazama Ja ne znam nista o bazama pa mi je svejedno, ali ne mogu da biram. Vec sam potrosio par dana na upoznavanje sa SQL-om pa ne bih da menjam "u pola posla". Pomenuo sam da sam to sve ranije radio i bez baze, pa sam se borio sa tolikom kolicinom podataka. Neki sledeci put cu sigurno pogledati neke od ovih "specijalizovanih" baza, sad mora da bude besplatno i po mene jednostavno.
 
Odgovor na temu

[es] :: Baze podataka :: Baza podataka za logovanje merenja

Strane: 1 2

[ Pregleda: 6275 | Odgovora: 25 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.