Pertekliniai duomenys

Duomenų srautas generuojamas RPI iš ARDUINO į MySQL DB yra labai didelis. Tai sulelia sunkumų perduodant juos iš VJC (vėjo jėgainės kontrolerį) į duomenų atvaizdavimo aplikaciją. Kaip pavyzdys gali būti komanda į DB ‘truncate spi’ – duomenų išvalymas, kuri trunka >30min. Čia būtų įdomūs konkretūs skaičiai: kiek per parą padaroma įrašų ir kiek laiko trunka šių įrašų trynimas. Šiandien komanda truncate spi paleista 5:00.

Iškelkim užduotį sumažinti duomenų srautą. Momentines reikšmes įrašinėkime cikliškai į spi lentelę, o į naują lentelę įrašykime apibendrintus duomenis. Paimkime 5 sekundžių intervalą, kas sudarys 5*20=100 kartų mažesnį srautą. Čia 20 kartų per sekundę yra momentinių duomenų įrašymo greitis.

Užduoties įgyvendinimui reikia:

1. Sukurti naują lentelę

Pavadinkime ją delta. Pagrindiniai lentelės duomenys bus šešios analoginės keitiklio reikšmės, duomenų įrašymo periodas ir absoliutus laikas. Taigi lentelės laukai: id (long integer), A0-A5 (byte), Periodas (integer – milisekundės), Date (timestamp).

2. Pakoreguoti RPI programą, kuri įrašinėja duomenis.

Prisiminkime, kuri vykdoma programos versija:

pi@raspberrypi:~ $ ps -xa |grep test
1263 ? S 0:00 sudo /home/pi/test3.o
1273 ? R 2712:37 /home/pi/test3.o /*paryškintas programos veikimo laikas*/

Žemiau yra C kodo iškarpa, formuojanti DB įrašą. Ją reiks koreguoti:

A0=resu[3] + resu[4]*256;
A1=resu[5] + resu[6]*256;
A2=resu[7] + resu[8]*256;
A3=resu[9] + resu[10]*256;
A4=resu[11] + resu[12]*256;
A5=resu[13] + resu[14]*256;
VGRA=resu[15] + resu[16]*256;
VGRB=resu[17] + resu[18]*256;
TS1=resu[19] + resu[20]*256;
TS2=resu[21] + resu[22]*256;
//TSa2Point=&TSa2[0];
//TS=AtmestiKrastinesReikmes(TSa2Point, jmax);
//int A0min=0xFFFF;int A0max=0;for (j=0; j<jmax; j++) {if (A0a[j]>A0max) A0max=A0a[j];if (A0a[j]<A0min) A0min=A0a[j];}
//int A1min=0xFFFF;int A1max=0;for (j=0; j<jmax; j++) {if (A1a[j]>A1max) A1max=A1a[j];if (A1a[j]<A1min) A1min=A1a[j];}
//int A2min=0xFFFF;int A2max=0;for (j=0; j<jmax; j++) {if (A2a[j]>A2max) A2max=A2a[j];if (A2a[j]<A2min) A2min=A2a[j];}
//int A3min=0xFFFF;int A3max=0;for (j=0; j<jmax; j++) {if (A3a[j]>A3max) A3max=A3a[j];if (A3a[j]<A3min) A3min=A3a[j];}
//int A4min=0xFFFF;int A4max=0;for (j=0; j<jmax; j++) {if (A4a[j]>A4max) A4max=A4a[j];if (A4a[j]<A4min) A4min=A4a[j];}
//int A5min=0xFFFF;int A5max=0;for (j=0; j<jmax; j++) {if (A5a[j]>A5max) A5max=A5a[j];if (A5a[j]<A5min) A5min=A5a[j];}
sprintf(qu, "insert into vejojegaines.spi values (\"\",%i,%i,%i,%i,%i,%i,%i,%i,null)",A0,A1,A2,A3,A4,A5, VGRA+VGRB, TS1+TS2*256*256);
//printf("qu=%s\n", qu);
res=mysql_perform_query(conn, qu);
mysql_free_result(res); 

Verta paanalizuoti gaunamus momentinius duomenis, parodytus žemiau. Paryškinti duomenys pasikartoja. Kodėl?:

Nr.id A1 A2 A3 A4 A5 A6 TSL TSH Date

1 193466 783 780 782 815 784 786 49272 325578935 2017-11-14 06:44:04
2 193465 783 780 782 815 784 786 49272 325578935 2017-11-14 06:44:04
3 193464 783 780 782 815 784 786 49272 325578935 2017-11-14 06:44:04
4 193463 783 780 782 815 784 786 49272 325578935 2017-11-14 06:44:04
5 193462 783 780 782 815 784 786 49272 325578935 2017-11-14 06:44:04
6 193461 783 780 782 815 784 786 49272 325578935 2017-11-14 06:44:04
7 193460 783 780 782 815 784 786 49272 325578935 2017-11-14 06:44:04
8 193459 783 780 782 815 784 786 49272 325578935 2017-11-14 06:44:04
9 193458 783 780 782 815 784 786 49272 325578935 2017-11-14 06:44:04
10 193457 783 780 782 815 784 786 49272 325578935 2017-11-14 06:44:04
11 193456 796 806 801 828 811 810 48293 325578632 2017-11-14 06:44:04
12 193455 796 806 801 828 811 810 48293 325578632 2017-11-14 06:44:04
13 193454 796 806 801 828 811 810 48293 325578632 2017-11-14 06:44:04
14 193453 796 806 801 828 811 810 48293 325578632 2017-11-14 06:44:04
15 193452 796 806 801 828 811 810 48293 325578632 2017-11-14 06:44:04
16 193451 796 806 801 828 811 810 48293 325578632 2017-11-14 06:44:03
17 193450 796 806 801 828 811 810 48293 325578632 2017-11-14 06:44:03
18 193449 796 806 801 828 811 810 48293 325578632 2017-11-14 06:44:03
19 193448 796 806 801 828 811 810 48293 325578632 2017-11-14 06:44:03
20 193447 796 806 801 828 811 810 48293 325578632 2017-11-14 06:44:03
21 193446 799 801 795 835 806 810 48293 325578632 2017-11-14 06:44:03

22 193445 799 801 795 835 806 810 48568 325578334 2017-11-14 06:44:03
23 193444 799 801 795 835 806 810 48568 325578334 2017-11-14 06:44:03
24 193443 799 801 795 835 806 810 48568 325578334 2017-11-14 06:44:03
25 193442 799 801 795 835 806 810 48568 325578334 2017-11-14 06:44:03
26 193441 799 801 795 835 806 810 48568 325578334 2017-11-14 06:44:03
27 193440 799 801 795 835 806 810 48568 325578334 2017-11-14 06:44:03
28 193439 799 801 795 835 806 810 48568 325578334 2017-11-14 06:44:03
29 193438 799 801 795 835 806 810 48568 325578334 2017-11-14 06:44:03
30 193437 799 801 795 835 806 810 48568 325578334 2017-11-14 06:44:03
31 193436 799 801 795 835 806 810 48568 325578334 2017-11-14 06:44:03
32 193435 794 809 798 831 807 814 18896 325578133 2017-11-14 06:44:03
33 193434 794 809 798 831 807 814 18896 325578133 2017-11-14 06:44:03
34 193433 794 809 798 831 807 814 18896 325578133 2017-11-14 06:44:03
35 193432 794 809 798 831 807 814 18896 325578133 2017-11-14 06:44:03
36 193431 794 809 798 831 807 814 18896 325578133 2017-11-14 06:44:03
37 193430 794 809 798 831 807 814 18896 325578133 2017-11-14 06:44:03
38 193429 796 807 798 831 807 814 18896 325578133 2017-11-14 06:44:03
39 193428 796 807 796 839 806 813 48035 325577837 2017-11-14 06:44:03
40 193427 796 807 796 839 806 813 48035 325577837 2017-11-14 06:44:03
41 193426 796 807 796 839 806 813 48035 325577837 2017-11-14 06:44:03
42 193425 796 807 796 839 806 813 48035 325577837 2017-11-14 06:44:03
43 193424 796 807 796 839 806 813 48035 325577837 2017-11-14 06:44:03
44 193423 796 807 796 839 806 813 48035 325577837 2017-11-14 06:44:03
45 193422 796 807 796 839 806 813 48035 325577837 2017-11-14 06:44:03
46 193421 796 807 796 839 806 813 48035 325577837 2017-11-14 06:44:03
47 193420 796 807 796 839 806 813 48035 325577837 2017-11-14 06:44:03
48 193419 796 807 796 839 806 813 48035 325577837 2017-11-14 06:44:03
49 193418 799 806 796 828 811 807 46002 325577546 2017-11-14 06:44:03
50 193417 799 806 796 828 811 807 46002 325577546 2017-11-14 06:44:02
51 193416 799 806 796 828 811 807 46002 325577546 2017-11-14 06:44:02
52 193415 799 806 796 828 811 807 46002 325577546 2017-11-14 06:44:02
53 193414 799 806 796 828 811 807 46002 325577546 2017-11-14 06:44:02
54 193413 799 806 796 828 811 807 46002 325577546 2017-11-14 06:44:02
55 193412 799 806 796 828 811 807 46002 325577546 2017-11-14 06:44:02
56 193411 799 806 796 828 811 807 46002 325577546 2017-11-14 06:44:02
57 193410 799 806 796 828 811 807 46002 325577546 2017-11-14 06:44:02
58 193409 799 806 796 828 811 807 46002 325577546 2017-11-14 06:44:02
59 193408 795 803 797 829 807 806 45878 325577265 2017-11-14 06:44:02
60 193407 795 803 797 829 807 806 45878 325577265 2017-11-14 06:44:02
61 193406 795 803 797 829 807 806 45878 325577265 2017-11-14 06:44:02
62 193405 795 803 797 829 807 806 45878 325577265 2017-11-14 06:44:02
63 193404 795 803 797 829 807 806 45878 325577265 2017-11-14 06:44:02
64 193403 795 803 797 829 807 806 45878 325577265 2017-11-14 06:44:02
65 193402 795 803 797 829 807 806 45878 325577265 2017-11-14 06:44:02
66 193401 795 803 797 829 807 806 45878 325577265 2017-11-14 06:44:02
67 193400 795 803 797 829 807 806 45878 325577265 2017-11-14 06:44:02
68 193399 795 803 797 829 807 806 45878 325577265 2017-11-14 06:44:02
69 193398 792 804 796 824 811 809 42022 325576982 2017-11-14 06:44:02
70 193397 792 804 796 824 811 809 42022 325576982 2017-11-14 06:44:02
71 193396 792 804 796 824 811 809 42022 325576982 2017-11-14 06:44:02
72 193395 792 804 796 824 811 809 42022 325576982 2017-11-14 06:44:02
73 193394 792 804 796 824 811 809 42022 325576982 2017-11-14 06:44:02
74 193393 792 804 796 824 811 809 42022 325576982 2017-11-14 06:44:02
75 193392 792 804 796 824 811 809 42022 325576982 2017-11-14 06:44:02
76 193391 792 804 796 824 811 809 42022 325576982 2017-11-14 06:44:02
77 193390 792 804 796 824 811 809 42022 325576982 2017-11-14 06:44:02
78 193389 796 803 799 828 812 811 45781 325576699 2017-11-14 06:44:02
79 193388 796 803 799 828 812 811 45781 325576699 2017-11-14 06:44:02
80 193387 796 803 799 828 812 811 45781 325576699 2017-11-14 06:44:02
81 193386 796 803 799 828 812 811 45781 325576699 2017-11-14 06:44:02
82 193385 796 803 799 828 812 811 45781 325576699 2017-11-14 06:44:02
83 193384 796 803 799 828 812 811 45781 325576699 2017-11-14 06:44:02
84 193383 796 803 799 828 812 811 45781 325576699 2017-11-14 06:44:01
85 193382 796 803 799 828 812 811 45781 325576699 2017-11-14 06:44:01
86 193381 796 803 799 828 812 811 45781 325576699 2017-11-14 06:44:01
87 193380 796 803 799 828 812 811 45781 325576699 2017-11-14 06:44:01
88 193379 796 801 799 833 802 812 43725 325576424 2017-11-14 06:44:01
89 193378 796 801 799 833 802 812 43725 325576424 2017-11-14 06:44:01
90 193377 796 801 799 833 802 812 43725 325576424 2017-11-14 06:44:01
91 193376 796 801 799 833 802 812 43725 325576424 2017-11-14 06:44:01
92 193375 796 801 799 833 802 812 43725 325576424 2017-11-14 06:44:01
93 193374 796 801 799 833 802 812 43725 325576424 2017-11-14 06:44:01
94 193373 796 801 799 833 802 812 43725 325576424 2017-11-14 06:44:01
95 193372 796 801 799 833 802 812 43725 325576424 2017-11-14 06:44:01
96 193371 796 801 799 833 802 812 43725 325576424 2017-11-14 06:44:01
97 193370 801 801 803 832 804 813 43397 325576158 2017-11-14 06:44:01
98 193369 801 801 803 832 804 813 43397 325576158 2017-11-14 06:44:01
99 193368 801 801 803 832 804 813 43397 325576158 2017-11-14 06:44:01
100 193367 801 801 803 832 804 813 43397 325576158 2017-11-14 06:44:01

Viena mintis apie “Pertekliniai duomenys

  1. Dėl pasikartojančių duomenų: pritaikius pertraukimo principą matuojant vėjo greitį pertekliniai duomenys dingo, Programa dirba gerokai sklandžiau.

Parašykite komentarą

El. pašto adresas nebus skelbiamas. Būtini laukeliai pažymėti *