» »

Bigdata v postgresql

Bigdata v postgresql

dejanlesnik ::

Zdravo,
igram se z različnimi merilnimi napravami in senzorji. Vse podatke si zbiram v svoji postgresql bazi. Pojavlja se mi težava, ko si želim te podatke (ki jih je veliko) smiselno izvozit v excel ali pa prikazat na spletu.
Iz baze dobim podatke po vrsticah, grupirane po napravi in razvrščene po času. Težava je sedaj, ko bi rad vse podatke iz različnih naprav in različnih tipov vstavil v eno vrstico (ki ima isti ali približno isti čas meritve).
Trenutno delam skripto, ki grem večkrat skozi vse podatke v PHPju. To traja zelo dolgo in si želim zadevo pohitrit.
Kako lahko to izboljšam?
Je že kdo delal kaj podobnega?

Hvala za pomoč.
Dejan

Ales ::

Boš moral biti precej bolj konkreten pri opisu tvojega query-a baze, da bi ti kdo lahko pomagal. Pastaj konkretno kodo.

dejanlesnik ::

jaz mislim da ravno tu je težava. Jaz enostavnoma query-am vse podatke in dobim vsak podatek v svoji vrstici. Želel pa bi imeti vse podatke z istim časom v eni vrstici. In to neodvisno od števila naprav. Tega ne znam naredit.
Da odgovorim na tvoje vprašanje. Nimam pravega query-a in to iščem.

Primer:
naprave= a, b, c
podatki= p1, p2, p3

Jaz si jih izvozim:
čas1.1, a, p1
čas1.1, a, p2
čas1.1, a, p3
čas2.1, a, p1
.
.
.
čas1.3, c, p3
čas2.3, c, p1
čas2.3, c, p2
.
.
.

Želel pa bi:
čas1, a.p1, a.p2, a.p3, ...., c.p3
čas2, a.p1, a.p2, a.p3, ...., c.p3
čas3, .....

največ problemov mi povzroča razlika v lasih zajema podatka med različnimi napravami in če nimajo vse naprave enakih podatkov.
lp

MrStein ::

Rabiš GROUP BY ali kaj podobnega.

Odvisno od specifik PostgreSQL, morebiti kaki pivot.

Oracle ima recimo LISTAGG
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

Zgodovina sprememb…

  • spremenil: MrStein ()

jernejl ::

Kot je MrStein zapisal, lahko podatke grupiraš po času, kot agregatno funkcijo pa uporabiš string_agg ali kaj podobnega.
Ta rešitev bo vrednosti prikazala v enem stolpcu kot niz vrednosti, ločenih z vejico.

Če želiš imeti vrednosti v stolpcih (vsaka vrednost svoj stolpec), rabiš pivot funkcijo. Postgres sicer ne poznam iz prve roke, mislim pa, da temu ustreza crosstab funkcija.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Zaporedje, izjave, problem.

Oddelek: Šola
84099 (1297) krka321
»

3DTV ne zazna 3D signala iz pc

Oddelek: Zvok in slika
161767 (1081) Apache90
»

Dodajanje RAMa

Oddelek: Pomoč in nasveti
6698 (566) DeeCoy
»

Nastavitve CPU ventilatorja

Oddelek: Strojna oprema
152143 (1793) kanja
»

Vista že na MSDN (strani: 1 2 )

Oddelek: Novice / Ostala programska oprema
629994 (4227) neoto

Več podobnih tem