e-gov / kem-gsavalik

KeM avaliku GeoServeri teenuste kaardikihid ja SLD kujundused | Map layers and SLD styles for Estonian Ministry of the Environment's public GeoServer services.
Other
8 stars 6 forks source link

Vektorandmete muudatuste päringud #26

Open tkardi opened 7 years ago

tkardi commented 7 years ago

Üks asi veel, mis vajaks arutelu: kuna andmehulk, millest me nt #24 räägime on suhteliselt suur (1.5M+ andmerida juba puhtalt eraldistest, elementidest rääkimata), tuleks läbi mõelda, kuidas võimaldada "anna mulle ainult muudatused alates x ajahetkest"-stiilis päringud.

Elus objektide lisamiste ja muudatuste identifitseerimiseks sobib versiooni identifikaator veerus versioon, mis sisuliselt on rea loomise/viimase muutmise unix timestamp millisekundites. Pluss uus sys_id väärtus tähistab täiesti uut objekti.

Kustutamiste/arhiveerimiste kindlakstegemisega on aga see, et teave nende kohta peaks liikuma eraldi "logitabeli kaudu", sest andmeomanike soovil ei sega arhiveeritud/kustutatud objekte kehtivate objektidega. NB! Antud kontekstis mõistame kustutamist ja arhiveerimist sünonüümsena: need on objektid, mis pole enam kehtivad.

Kuna igale kihile/tabelile pole logipidamist rakendatud, siis võiks luua logitabeli igale logi omavale kihile/tabelile (pigem iga eraldi, kui üks suur massiivne). Kas piisab, kui logis oleks vaid konkreetse tabeli rea identifikaator sys_id, versiooni identifikaator versioon (identifitseeriks kustutatud objekti viimast versiooni, ei kanna endas objekti kustutamise aega). Või on vaja esitada ka eraldi kustutamise ajatempel? Mis arvate sellest üldse?

tkardi commented 7 years ago

See jäi täpsustamata, et nii versioon kui eraldi kustutamise aja veeru sisu ei tähista algallikas loomise/muutmise/kustutamise aega, vaid ajatemplit ühtlustatud kujul, mil andmed registrist vastaval kujul välja võeti ja vahebaasis loomine/muutmine/kustutamine tuvastati. Võib täiesti vabalt olla, et andmehulgas endas on sarnase semantikaga veerg juba olemas. Sellist ühtlustust kasutame ainult selleks, et sama lähendus kõikide tabelite/kihtide puhul kasutatav oleks.

tkardi commented 6 years ago

Kuna teema vastu huvi ei ole olnud, siis panen selle hetkel ootele, kuid lihtsalt kollektiivse mälu jaoks paar täiendust siia. Lõpuks peaks kihi kohta olema võimalik pärida WFSist a) uued read alates viimasest teadaolevast suurimast sys_id väärtusest N: ../geoserver/workspace/ows?service=WFS&version=2.0.0&typename=workspace:layer&cql_filter=sys_id>N&... b) muudetud read alates viimasest teadaolevast suurimast versioon väärtusest M ja sys_id väärtusest N (vt eelmine punkt): ../geoserver/workspace/ows?service=WFS&version=2.0.0&typename=workspace:layer&cql_filter=sys_id<=N and versioon>M&... c) kustutatud objektide identifikaatorid eraldi logitabelist viimase teadaoleva suurima sys_logid väärtusest L ../geoserver/workspace/ows?service=WFS&version=2.0.0&typename=log-workspace:layer-log&cql_filter=sys_logid>L&...