Article View: pl.comp.bazy-danych
Article #195533Re: struktura bazy do zbierania danych z czujników
From: geos
Date: Sun, 11 Feb 2018 01:12
Date: Sun, 11 Feb 2018 01:12
63 lines
4915 bytes
4915 bytes
On 09.02.2018 00:48, baItiz wrote: > W dniu 08.02.2018 o 20:15, Adam M pisze: >> Zagadzam sie w 100% - w systemach rejestracji danych czasu >> rzeczywistego pewny zapis pomiaru jest najwazniesza rzecza - dlatego >> tabela powinna byc jak najprostasza. Reszte mozna dobudowac jak sie >> chce - w zaleznoci jak dane beda uzywane. Dodatkowo autor powinien >> oszacowac rozdzielczosc czasu w systemie i rozmiar strumienia danych >> (tzn jak szybko dane beda naplywaly i ile ich bedzie w danym momecie) >> - moze sie okazac ze sam SQL jest za wolny i trzeba dolozyc jakies >> posrednie buforowanie przed zapisem do bazy danych. W zasadzie w >> systemach rejestracji danych czasu rzeczywistego projektowanie bazy >> danych jest zadaniem drugorzednym - baza danych ma poprostu zapewnic >> pewna i trwala rejestracje pomiaru - jak dane sa pozniej >> uzywane/opisane nie jest to problemem systemu rejestracji. > > To chyba jest najlepszy pomysł. Najpierw prosto zbierać dane a później > zastanowić się co i jak z nimi zrobić. > > Strumień danych nie będzie duży. Docelowo co minutę do 50 wartości > pomiarów z 3 lokalizacji. W każdej lokalizacji czujniki będą > komunikowały się z bramką a ta dopiero wysyłała dane dalej. W razie > potrzeby można na poziomie bramki wprowadzić agregację i wysyłać > uśrednione dane co 5 min. chyba powinieneś przemyśleć co chcesz zrobić. bo jak chcesz rejestrować strumień w sposób pewny to nie potrzebujesz do tego bazy. po prostu rejestrujesz to jako nieprzetworzony strumień danych z czujników. do tego potrzebujesz odpornego na błędy toru transmisji i metody składowania. do składowania z grubsza potrzebujesz macierzy odpowiedniego typu. to chyba wszystko. z 5 czujników rejestrujesz 5 strumieni. będziesz miał rejestrację pewną, odporną na błędy i awarie. a później taki strumień sobie po prostu odpowiednio obrabiasz. żadna baza nie pomoże jak się coś po drodze "zesra" a może nawet przeszkadzać. śmiem jednak wątpić czy to chcesz właśnie robić skoro piszesz na tę grupę. padły sugestie o użycie typów złożonych do danych. to nie to samo co "strumienie". odpowiedź sobie na pytanie, czy potrzebujesz nadać swoim danym strukturę złożoną albo czy czegoś brakuje typom prostym w tym konkretnym zastosowaniu. wtedy będziesz wiedział, czy potrzebujesz typów złożonych typu json, xml itp. powątpiewam, chociaż nie wykluczam, że mógłbyś tak chcieć w konkretnym celu, np. w celu późniejszej wymiany danych z innymi systemami jednym z popularnych standardów wymiany danych. z tego co piszesz wnioskuję jednak, że wystarczą podstawowe typy proste. prawdopodobnie potrzebujesz również stosunkowo prostej relacyjnej bazy danych. sqllite by pewnie wystarczył z nawiązką. małe i sporo potrafi. skoro wspominasz o "pewności zapisu" to przydałoby się coś z obsługą transakcji. ale pewnie świat się nie zawali gdy będzie nietransakcyjna bo prawdopodobnie w swoich rozważaniach uwzględniasz, że awarie się zdarzają i czujnik może się po prostu popsuć (i prawdopodobnie czujników nie duplikujesz aby zapobiec utracie danych, co nie?) co będzie miało finalny efekt taki sam jak transakcja, która się nie powiedzie - brak danych. summa summarum temat "co minutę do 50 wartości z 3 lokalizacji" IMHO nie jest wart rozważań o partycjonowaniu, strumieniach, bazach nosql, typach złożonych i na dodatek nowej ortografii :) zrób to najprościej bez generowania zbędnych problemów: zbierz dane z czujnika, opakuj w inserta, wrzuć do tabeli, zakomituj. pozdrawiam geos
Technical Details
Message-ID:
<5a7f9864$0$553$65785112@news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer03.am4!peer.am4.highwinds-media.com!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailReferences:
<p5an7s$eou$1@node2.news.atman.pl> <d33f511a-0c12-4805-abd0-06577cabc391@googlegroups.com> <fcf9136a-74d7-469e-8274-cffa1a6624d3@googlegroups.com> <p5inkf$n9p$1@node1.news.atman.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer03.am4!peer.am4.highwinds-media.com!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail Subject: Re: struktura bazy do zbierania danych z czujników Newsgroups: pl.comp.bazy-danych References: <p5an7s$eou$1@node2.news.atman.pl> <d33f511a-0c12-4805-abd0-06577cabc391@googlegroups.com> <fcf9136a-74d7-469e-8274-cffa1a6624d3@googlegroups.com> <p5inkf$n9p$1@node1.news.atman.pl> From: geos <geos@SPAMPRECZ.autograf.pl> Date: Sun, 11 Feb 2018 02:12:04 +0100 MIME-Version: 1.0 In-Reply-To: <p5inkf$n9p$1@node1.news.atman.pl> Lines: 65 Message-ID: <5a7f9864$0$553$65785112@news.neostrada.pl> Organization: Telekomunikacja Polska NNTP-Posting-Host: 95.160.100.242 X-Trace: 1518311524 unt-rea-b-01.news.neostrada.pl 553 95.160.100.242:34101 X-Complaints-To: abuse@news.neostrada.pl X-Received-Bytes: 4646 X-Received-Body-CRC: 3079913652 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit