Dimensijos

Dimensijos apibrėžia duomenų metaduomenų detalumo lygį. Stulpeliai dataset, resource, base, model ir property yra naudojami kaip DSA dimensijos. dataset yra aukščiausia dimensija, property žemiausia. dataset ir resource dimensijos atitinka DCAT žodyną ir užtikrina trečia duomenų brandos lygį, o žemiau esantys base, model ir property atitinka RDFS žodyną ir užtikrina penktą duomenų brandos lygį. Vienoje lentelės eilutėje gali būti užpildytas ne daugiau kaip vienas dimensijos stulpelis. Užpildytasis dimensijos stulpelis nustato visų kitų stulpelių prasmę.

id d r b m property title
1 datasets/gov/ivpk/adk Atvirų duomenų katalogas
2   adk Atvirų duomenų katalogo duomenų bazė
3     /dcat/dataset Duomenų rinkinys
4       dataset Duomenų rinkinys
5         title Duomenų rinkinio pavadinimas

Pavyzdyje aukščiau, taupant vietą, dalies dimensijų pavadinimai sutrumpinti iki vienos raidės ir įtraukti ne visi stulpeliai, o tik id ir title metaduomenų stulpeliai. Pavyzdyje matome, kad vienoje eilutėje užpildytas tik vienas dimensijos stulpelis, o title stulpelio prasmė keičiasi priklausomai nuo dimensijos reikšmės. Toliau specifikacijoje konkrečios dimensijos stulpeliai įvardijami pateikiant tiek dimensijos, tiek metaduomens stulpelio pavadinimus, kad būtų aiškiau apie kurios dimensijos metaduomenį kalbama, pavyzdžiui model.title leidžia suprasti kad kalbama apie „Duomenų rinkinys“ reikšmę 4-oje eilutėje.

Be minėtų dimensijų stulpelių DSA lentelėje gali būti naudojami papildomos metaduomenų dimensijos, kai nurodoma type reikšmė ir nepateikiama nei viena dimensijos stulpelio reikšmė. Pavyzdžiui:

id d r b m property type ref uri
1           prefix dcat http://www.w3.org/ns/dcat#

Šiuo atveju prefix tampa dar viena dimensija, leidžianti pateikti metaduomenis apie naudojamų URI prefiksus. Analogiškai, kaip ir su kitomis dimensijomis, dimensijos ir metaduomens pavadinimus galima apjungti, pavyzdžiui prefix.ref apibūdina tik prefix dimensijai priklausančius ref stulpelius.

Dimensijos leidžia suskirstyti metaduomenis į hierarchinę struktūrą. Todėl DSA lentelės eilučių eiliškumas yra svarbus, kadangi žemiau esančios eilutės priklauso aukščiau esančiai dimensijai. Tas pats galioja ir pagalbinėms dimensijoms.

Nors lentelėje sudaro tik 15 stulpelių, tačiau pasitelkiant 5 pagrindinius dimensijas ir keletą papildomų dimensijų, atsiranda galimybė išsamiai aprašyti visą duomenų šaltinio struktūrą.

Duomenų rinkinys

DSA lentelėje duomenų rinkinys nurodomas tam, kad būtų išlaikomas ryšys tarp DSA ir ADK. Atliekant duomenų inventorizaciją, automatiškai generuota DSA lentelė turi būti suskirstoma į duomenų rinkinius. Tada priemonių pagalba automatiškai sukuriami pirminiai ADK metaduomenys apie duomenų rinkinius, kuriuos vėliau reikia papildyti rankiniu būdu prisijungus prie ADK. Automatizuota priemonė sukūrus duomenų rinkinių įrašus ADK, papildys DSA lentelę, į dataset.ref įrašant ADK sukurto duomenų rinkinio identifikatorių. Tokiu būdu, sekantį kartą vykdant sinchronizaciją, jei dataset.ref yra užpildytas, bus atnaujinami jau sukurti ADK duomenų rinkinių įrašai.

Į ADK turi būti publikuojami tik tie duomenų rinkiniai iš DSA, kurių dataset.access reikšmė yra public arba open.

dataset.source

Jei nenurodyta, naudoti https://data.gov.lt/ adresą.

dataset.prepare

Nenaudojama.

dataset.type

Jei nenurodyta, naudoti ivpk reikšmę. type nurodo API formatą, kuriuo automatiškai pildomi duomenų rinkinių metaduomenys atvirų duomenų portale.

Galimos reikšmės:

ckan

CKAN duomenų katalogas.

ivpk

data.gov.lt duomenų katalogas.

dataset.ref

Duomenų rinkinio duomenų kataloge identifikatorius.

dataset.level

Viso duomenų rinkinio Brandos lygiai. Paveldimas.

dataset.access

Viso duomenų rinkinio Prieigos lygiai. Paveldimas.

dataset.title

Duomenų rinkinio pavadinimas.

dataset.description

Duomenų rinkinio aprašymas.

Skaidymas į duomenų rinkinius turi būti atliekamas tokiu principu, kad visi tarpusavyje susiję modeliai patektų į vieną duomenų rinkinį. Teoriškai, absoliučiai visi modeliai gali būti susiję tarpusavyje, skaidymą reikėtų daryti pagal tematinį modelių tarpusavio ryšį, o ne pagal reliacinius ryšius.

Jei duomenys yra išskaidyti pagal laiką, vietove ar kitus kriterijus į skirtingus duomenų šaltinius, tokie duomenys turėtų būti apjungti į vieną modelį Modelio bazė pagalba ir turėtų priklausyti vienam duomenų rinkiniui. Tą pačią semantinę prasmę turintys duomenys neturėtų būti išskaidyti keliuose duomenų rinkiniuose.

Duomenų šaltinis

ŠDSA atveju duomenų šaltinis bus vidinis duomenų bazių serveris, kažkoks vidinis katalogas kuriame yra lentelių failai ar koks nors vidinis API.

ADSA atveju, duomenų šaltinis gali būti nenurodytas, tai reiškia, kad duomenų rinkinio duomenys dar nėra publikuoti. Jei duomenys jau yra publikuoti, tada ADSA duomenų šaltinis turi rodyti į publikuotus atvertus duomenis, tai gali būti nuorodos į CSV failus, į viešą JSON API ir pan.

Duomenų šaltinio įrašas taip pat naudojamas tam, kad automatiškai atnaujinti ADK esančius duomenų rinkinius, patelkiant konkrečias nuorodas į konkrečius duomenų failus. Analogiškai kaip ir Duomenų rinkinys atveju, resource.ref stulpelyje nurodomas duomenų šaltinio identifikatorius iš ADK.

resource.type

Duomenų šaltinio tipas. Galimos reikšmės:

sql

Reliacinės duomenų bazės

sqldump

SQL eksporto failai

csv

CSV lentelės

tsv

TSV lentelės

json

JSON resursai

jsonl

JSON lines resursai

geojson

GeoJSON failai

xml

XML resursai

html

HTML puslapiai

xlsx

Excel lentelės (naujasis OOXML formatas)

xls

Excel lentelės (senasis formatas)

ods

ODT skaičiuoklės formatas

wsdl

WSDL servisas.

resource.source

Priklauso nuo resource.source. Žiūrėti Duomenų šaltiniai.

resource.ref

Duomenų šaltinio duomenų kataloge identifikatorius. Priklauso nuo dataset.type reikšmės.

resource.level

Viso duomenų šaltinio brandos lygis. Paveldimas.

resource.access

Viso duomenų šaltinio prieigos lygis. Paveldimas.

resource.title

Duomenų šaltinio pavadinimas.

resource.description

Duomenų šaltinio aprašymas.

Duomenų šaltinio resource.type reikšmė apibrėžia kokią ETL priemonę naudoti skaitant duomenis iš duomenų šaltinio. Automatizuota duomenų priemonė skirta įstaigos duomenų atvėrimui turėtų palaikyti tik tokius duomenų šaltinius, kurie naudojami įstaigos vidinėje infrastruktūroje.

Esant poreikiui gali būti įgyvendintas palaikymas naujiems duomenų šaltiniams.

Modelio bazė

Pastaba

Kol kas modelių apjungimas naudojant vieną bazę nėra įgyvendintas.

Modelio bazė naudojama kelių modelių (lentelių) susiejimui arba apjungimui. Kadangi įvairiuose duomenų šaltiniuose dažnai pasitaiko duomenų, kuriuose saugomos tą pačią semantinę prasmę turinčios lentelės, base stulpelyje galima nurodyti kaip skirtingos lentelės siejasi tarpusavyje.

base.type stulpelyje nurodoma kokiu būdu lentelės yra susiję. ETL priemonė vadovaujantis base informacija duomenis automatiškai transformuoja ir sujungia kelias lenteles į vieną.

Modeliai ne tik susiejami semantiškai tarpusavyje, bet taip pat suliejami ir dviejų modelių duomenys naudojant laukų sąrašą nurodytą base.ref stulpelyje. base.ref stulpelyje nurodyti laukai naudojami norint unikaliai identifikuoti model lentelėje esančią eilutę, kuri atitinka base lentelėje esančią eilutę.

Siejant model ir base duomenis tarpusavyje, model lentelė įgauna lygiai tokius pačius unikalius identifikatorius, kurie yra base lentelėje. Tai reiškia, kad model lentelėje negali būti duomenų, kurių nėra base lentelėje.

model.property laukai turi sutapti su base modelio laukais, tačiau model gali turėti ir papildomų laukų, kurių nėra base modelyje Visi base.ref laukai turi būti aprašyti tiek base, tiek model modeliuose.

base.source

Nenaudojamas.

base.prepare

Išimtiniais atvejais, kai nėra galimybės lentelių susieti ar apjungti įprastiniais metodais, galima pasitelkti formules, kurių pagalba galima įgyvendinti nestandartinius lentelių apjungimo atvejus.

base.type

Lentelių susiejimo tipas. Jei nenurodyta naudoti sameas.

Galimos reikšmės:

base

Išplečia base ir saugo tik tų property duomenis, kurių neturi base. base ir model identifikatoriai sutampa.

sameas

Naudojama, kai tą pačią semantinę prasmę turintys duomenys saugomi skirtingose vietose.

proxy

Naudojama tada, kai kelių modelių duomenys yra identiški vienam base ir reikia duomenis saugoti tik į base.

prototype

Naudojamas tada, kai model tik paveldi base savybes, tačiau duomenis saugo atskirai ir identifikatorių nepernaudoja iš base.

Savybių matrica:

Sutampantys laukai Saugo duomenis į
base.type Išplečiami Dubliuojami Vienas identifikatorius base model
base taip ne taip taip taip [*]
sameas taip taip taip taip taip
proxy ne ne taip taip ne
prototype taip taip ne ne taip
[*]Saugo tik tuos duomenis, kurie nėra saugomi base modelyje.
Išplečiami
model gali turėti property eilučių, kurių neturi base.
Dubliuojami
model saugo property reikšmes, kurios sutampa su base.
Vienas identifikatorius
model gauna identifikatorių iš base ir abiejose vietose naudojamas vienodas identifikatorius.
base.ref

model.property reikšmė, kurios pagalba model objektai siejami su base objektais. Jei susiejimas pagal vieną model property yra neįmanomas, galima nurodyti kelis model.property pavadinimus atskirtus kableliu.

base.level

Baziniam modeliui priskirtų modelių brandos lygis. Paveldimas.

base.access

Baziniam modeliui priskirtų modelių prieigos lygis. Paveldimas.

Paaiškinimas, ką reiškia kiekviena savybė.

Duomenų modelis

Duomenų modelis apibrėžia duomenų grupę turinčią tas pačias savybes. Skirtinguose duomenų šaltiniuose ir formatuose, duomenų modelis gali būti išreikštas skirtingomis formomis, pavyzdžiui sql duomenų šaltinio atveju, modelis aprašo vieną duomenų bazės lentelę.

Kiekvienas modelis turi turėti pirminį raktą, unikalų modelio duomenų identifikatorių. Pirminis raktas aprašomas pateikiant vieną ar kelias model.property reikšmes model.ref stulpelyje, kurios kartu unikaliai identifikuoja kiekvieną duomenų eilutę.

Išimtiniais atvejais, kai modelio duomenų laukų reikšmės turi būti generuojamos dinamiškai ar kitais nestandartiniais atvejais yra galimybė nurodyti model.type reikšmę. Jei model.type yra pateiktas, tada už modelio duomenų generavimą, įeinančių duomenų tikrinimą ir visos kitos su modeliu susijusios dalys gali būti pritaikytos konkretaus modelio atvejui. Tačiau, jei reikia keisti tik duomenų pateikimą, užtenka naudoti model.prepare formules.

model.source

Modelio pavadinimas šaltinyje. Prasmė priklauso nuo resource.type.

model.prepare

Formulė skirta duomenų filtravimui ir paruošimui, iš dalies priklauso nuo resource.type.

Taip pat skaitykite: Duomenų atranka.

model.type

Jei nurodytą, naudoti išplėstą modelio variantą, jei nenurodyta palikti tuščią. Jei tuščia, naudoti standartinį modelio variantą.

Gali būti įrašoma reikšmė absent, kuri nurodo, kad modelis buvo ištrintas.

model.ref

Kableliu atskirtas sąrašas model.property reikšmių, kurios kartu unikaliai identifikuoja vieną duomenų eilutę (pirminis lentelės raktas).

model.level

Modeliui priklausančių laukų brandos lygis. Paveldimas.

model.access

Modeliui priklausančių laukų prieigos lygis. Paveldimas.

model.uri

Sąsaja su išoriniu žodynu.

model.title

Modelio pavadinimas.

model.description

Modelio aprašymas.

model.property

Modeliui priklausantis duomenų laukas.

Savybė

property.source

Duomenų lauko pavadinimas šaltinyje. Prasmė priklauso nuo resource.type.

property.prepare

Formulė skirta duomenų tikrinimui ir transformavimui arba statinės reikšmės pateikimui.

property.type

Žiūrėti Duomenų tipai.

property.ref

Priklauso nuo property.type, nurodo matavimo vienetus, laiko ar vietos tikslumą, klasifikatorių arba ryšį su kitais modeliais. Ką tiksliai reiškia šis laukas, patikslinta skyrelyje Duomenų tipai.

property.level

Nurodo duomenų lauko brandos lygį. Žiūrėti Brandos lygiai.

property.access

Nurodo prieigos prie duomenų lygį. Žiūrėti skyrių Prieigos lygiai.

property.uri

Sąsaja su išoriniu žodynu. Žiūrėti Išoriniai žodynai.

property.title

Duomenų lauko pavadinimas. Šis pavadinimas yra skirtas skaityti žmonėms ir bus rodomas duomenų laukų sąrašuose ir antraštėse. Jei nenurodyta, bus naudojamas property kodinis pavadinimas.

property.description

Duomenų lauko aprašymas.

property.enum

Žiūrėti Klasifikatoriai.

Papildomos dimensijos

Išorinių žodynų prefiksai

Sąsają su išoriniais žodynais galima pateikti model.uri ir property.uri stulpeliuose. Tačiau prieš naudojant žodynus, pirmiausia reikia apsirašyti žodynų prefiksus. Žodynų prefiksai aprašomi taip:

prefix
prefix.ref

Prefikso pavadinimas.

prefix.uri

Išorinio žodyno URI.

prefix.title

Prefikso antraštė.

prefix.description

Prefikso aprašymas.

Rekomenduojama naudoti LOV prefiksus.

Aprašyti prefiksai gali būti naudojami model.uri ir property.uri stulpeliuose tokiu būdu: prefix:name.

Klasifikatoriai

Tam tikri duomenų laukai turi fiksuotą reikšmių variantų aibę. Dažnai duomenų bazėse fiksuotos reikšmės saugomos skaitine forma ar kitais kodiniais pavadinimais. Tokias fiksuotas reikšmes duomenų struktūros apraše galima pateikti neužpildant hierarchinių stulpelių ir nurodant type reikšmę enum, pavyzdžiui:

id d r b m property type ref source prepare level access uri title description
1 datasets/example/places                  
2   places sql   sqlite://            
3       Place   id PLACES            
4         id integer   ID   3 open      
5         type string   CODE   3 open      
6           enum   1 "city"       City  
7               2 "town"       Town  
8               3 "village"       Village  
9         name string   NAME   3 open      

Šiame pavyzdyje Place.type laukas yra klasifikatorius, kurio reikšmės yra kodai 1, 2 ir 3, kurios duomenų struktūros apraše keičiamos į city, town ir village, papildomai title stulpelyje nurodant reikšmės pavadinimą.

Jei tas pats klasifikatorius gali būti naudojamas kelios skirtingose vietos, tada galima iškelti klasifikatorių ir suteikti jam pavadinimą, pavyzdžiui:

id d r b m property type ref source prepare level access uri title description
6           enum place 1 "city"       City  
7               2 "town"       Town  
8               3 "village"       Village  
1 datasets/example/places                  
2   places sql   sqlite://            
3       Place   id PLACES            
4         id integer   ID   3 open      
5         type string place CODE   3 open      
9         name string   NAME   3 open      

Šiuo atveju, klasifikatoriui buvo suteiktas pavadinimas place įrašytas enum.ref stulpelyje, 6 eilutėje. O Place.type laukui, prepare stulpelyje nurodyta, kad šis laukas naudoja vardinį place klasifikatorių.

enum
enum.ref

Pasirinkimų sąrašo pavadinimas.

enum.source

Pateikiama originali reikšmė, taip kaip ji saugoma duomenų šaltinyje. Pateiktos reikšmės turi būti unikalios ir negali kartotis.

Jei pageidaujama aprašyti tuščią šaltinio reikšmę, tada property.prepare celėje reikia nurodyti formulę, kuri tuščią reikšmę pakeičia, į kokią nors kitą. Formulės pavyzdys:

swap('', '-')
enum.prepare

Pateikiama reikšmė, tokia kuri bus naudojama atveriant duomenis. model.prepare filtruose taip pat bus naudojama būtent ši reikšmė.

enum.prepare reikšmės gali kartotis, tokiu būdu, kelios skirtingos enum.source reikšmės bus susietos su viena enum.prepare reikšme.

enum.access

Klasifikatoriams galima nurodyti skirtingas prieigos teises, tokiu atveju, naudotojas turintis open prieigą matys tik tuos duomenis, kurių klasifikatorių reikšmės turi open prieigos teises, visi kiti bus išfiltruoti.

enum.title

Fiksuotos reikšmės pavadinimas.

enum.description

Fiksuotos reikšmės aprašymas.

Pagal nutylėjimą, jei property.prepare yra tuščias ir property turi Klasifikatoriai sąrašą, tada jei šaltinis turi neaprašytą reikšmę, turėtų būti fiksuojama klaida.

Jei yra poreikis fiksuoti tik tam tikras reikšmes, o visas kitas palikti tokias, kokios yra šaltinyje, tada property.prepare stulpelyje reikia įrašyti self.choose(self).

Parametrai

Parametrai leidžia iškelti tam tikras duomenų paruošimo operacijas į parametrus kurie gali būti naudojami Dimensijos, kurioje apibrėžtas parametras kontekste. Parametrai gali gražinti iteratorius, kurių pagalba galima dinamiškai kartoti resource duomenų skaitymą, panaudojant aprašytus parametrus. Taip pat parametrų pagalba galima sudaryti reikšmių sąrašus, kurių pagalba galima kartoti resource su kiekviena reikšme.

Parametrai dažniausiai naudojami žemesnio brandos lygio duomenų šaltiniams aprašyti, o taip pat API atvejais, kai duomenys atiduodame dinamiškai.

Parametrai aprašomi pasitelkiant papildomą Parametrai dimensiją.

id d r b m property type ref source prepare
1 datasets/example/cities        
2   places csv   https://example.com  
3       Country   id countries.csv  
4         code string   CODE  
5         title string   TITLE  
6       City   country, title cities/{country.code}.csv  
7           param country Country select(code)
8         country ref Country   param("country").code
9         title string   TITLE  
param
param.ref

Parametro kodinis pavadinimas.

param.prepare

Formulė, kuri grąžina sąrašą reikšmių aprašomam parametrui.

param.source

Jei reikšmė pateikta, tada ši reikšmė perduodama formulei kaip self. Pavyzdžiui, jei param.prepare pateikta formulė select(code), o param.source nurodyta Country, tai formulė bus iškviesta taip select("Country", code).

Jei parametro reikšmė yra iteratorius, tada dimensija, kurios kontekste yra aprašytas parametras yra kartojama tiek kartų, kiek reikšmių grąžina iteratorius.

Jei yra keli Parametrai grąžinantys iteratorius, tada iš visų iteratorių sudaroma Dekarto sandauga ir resource dimensija vykdoma su kiekviena sandaugos rezultato reikšme.

Jei sekančioje DSA eilutėje, einančioje po eilutės, kurioje aprašytas Parametrai, nenurodytas type ir neužpildytas joks kitas dimensijos stulpelis, tada parametras tampa iteratoriumi, kurio reikšmių sąrašą sudaro sekančiose eilutėse patektos source ir prepare reikšmės. Pavyzdžiui anksčiau pateiktą pavyzdį galima būtų perdaryti taip:

id d r b m property type ref source prepare
1 datasets/example/cities        
2   places csv   https://example.com  
3       Country   id countries.csv  
4         code string   CODE  
5         title string   TITLE  
6       City   country, title cities/{country}.csv  
7           param country   "lt"
7                 "lv"
7                 "ee"
8         country ref Country   param("country")
9         title string   TITLE  

Šiame pavyzdyje, parametras country grąžins tris šalies kodus: lt, lv ir ee, kurie bus įrašome į cities/{country}.csv.

Parametrai reikšmės pasiekiamos naudojanti pavadinimą įrašytą param.ref stulpelyje. Pavyzdžiui, jei param.ref stulpelyje įrašyta x, tada x parametro reikšmę galima gauti taip:

source

{x}.

prepare

x arba param(x).

Parametrų generavimui galima naudoti tokias formules:

param.prepare
range(stop)

Sveikų skaičių generavimas nuo 0 iki stop, stop neįeina.

range(start, stop)

Sveikų skaičių generavimas nuo start iki stop, stop neįeina.

scalar(name)

Jei nurodytas param.source, tada imama tik name lauko reikšmė, o ne visi modelio laukai.

Jei užpildytas param.source stulpelis, tada param.prepare stulpelyje galima naudoti filtrą nurodyto param.source modelio duomenims filtruoti, o naudojant parametrus galima nurodyti ir modelio laukų pavadinimus, pavyzdžiui:

source

{x.field}.

prepare

x.field arba param(x).field.

Reikšmių sukeitimas

Tam tikrais atvejais duomenis tenka normalizuoti parenkant tam tikrą reikšmę jei tenkinama nurodyta sąlyga. Tokias situacijas galima aprašyti pasitelkiant switch dimensiją.

switch
switch.source

Reikšmė, kuri bus atveriama.

switch.prepare

Sąlyga, naudojant einamojo modelio laukus. Jei sąlyga tenkinama, tada laukui priskiriama switch.source reikšmė. Jei sąlyga netenkinama, tada bandoma tikrinti sekančią sąlygą. Parenkama ta reikšmė, kurios pirmoji sąlyga tenkinama.

Jei switch.prepare yra tuščias, tada sąlyga visada teigiama ir visada grąžinama switch.source reikšmė.

Komentavimas

Dirbant su DSA yra galimybė komentuoti eilutes, naudojant papildomą comment dimensiją, kurią galima naudoti bet kurios kitos dimensijos kontekste.

comment
comment.id

Komentaro numeris.

comment.title

Komentaro data, ISO 8601 formatu.

comment.description

Komentaro tekstas.

comment.source

Komentaro autorius.

comment.ref

Cituojamo komentaro numeris. Jei šis stulpelis užpildytas, tai reiškia, kad komentaras yra atsakymas į kitą, nurodyto numerio komentarą.

comment.access

Nurodoma, ar komentaras gali būti publikuojamas viešai.

private
Komentaras negali būti publikuojamas viešai. Šis prieigos lygis naudojamas pagal nutylėjimą.
open
Komentaras gali būti publikuojamas viešai.

Daugiakalbiškumas

title ir description stulpeliuose tekstas rašomas lietuvių kalba, tačiau galima pateikti tekstą ir kita kalba, panaudojus papildomą lang dimensiją, kurią reikia naudoti prieš eilutę, kuriai pateikiamas tekstas kita kalba.

lang
lang.ref

ISO 639-1 dviejų simbolių kalbos kodas.

lang.title

Pavadinimas lang.ref stulpelyje nurodyta kalba.

lang.description

Aprašymas lang.ref stulpelyje nurodyta kalba.

Struktūros keitimas

Laikui einant, pirminių duomenų šaltinių arba jau atvertų duomenų struktūra keičiasi, papildoma naujais modeliais ar savybėmis, keliant duomenų brandos lygį seni duomenys keičiami naujais, aukštesnio brandos lygio duomenimis.

Visi šie struktūros ar pačių duomenų pasikeitimai fiksuojami papildomos migrate dimensijos pagalba, kuri gali būti naudojama, bet kurios kitos dimensijos kontekste.

migrate
migrate.ref

Migracijos numeris (UUID). Kiekvienos migracijos metu gali būti atliekama eilė operacijų, visos operacijos fiksuojamos naudojant migracijos numerį.

Visų migracijų sąrašas pateikiamas, kai migrate nepriklauso jokiam dimensijos kontekstui. Migracijų eiliškumas yra svarbus.

migrate.source

Ankstesnės migracijos numeris, pateiktas migrate.ref stulpelyje, arba tuščia, jei prieš tai jokių kitų migracijų nebuvo.

Naudojamas jei migrate nepatenka į jokios dimensijos kontekstą.

Jei migrate aprašomas dimensijos kontekste, tada šis stulpelis nenaudojamas.

migrate.prepare

Migracijos operacija. Galimos tokios operacijos:

create(**kwargs)

Priklausomai nuo dimensijos konteksto, prideda naują modelį, arba savybę.

Funkcijai galima perduoti name ir kitus vardinius argumentus, kurie atitinka DSA lentelės metaduomenų stulpelių pavadinimus.

update(**kwargs)

Priklausomai nuo dimensijos konteksto, keičia modelį ar savybę.

Funkcijai galima perduoti name ir kitus vardinius argumentus, kurie atitinka DSA lentelės metaduomenų stulpelių pavadinimus.

Perduodami tik tie vardiniai argumentai, kuriuos atitinkantys metaduomenys keičiasi.

delete()

Priklausomai nuo dimensijos konteksto, šalina modelį ar savybę.

Pašalinto modelio ar savybės type keičiamas į absent reikšmę.

filter(where)

Naudojamas property kontekste, kai vykdoma duomenų migracija. Nurodo, kad migracija taikoma tik where sąlygą tenkinantiems duomenims.

Be šių pagrindinių migracijos operacijų, galima naudoti kitas duomenų transformavimo operacijas, kurios vykdomos su kiekviena duomenų eilute ir atlikus pateiktas transformacijos funkcijas, pakeista reikšmė išsaugoma.

migrate.title

Migracijos data ir laikas.

Naudojamas tik tada, kai migrate nepatenka į jokios dimensijos kontekstą.

migrate.description

Migracijos atliekamo pakeitimo trumpas aprašymas.

Vardų erdvės

Vardų erdvės gali būti aprašomos pasitelkiant ns papildomą dimensiją.

ns
ns.ref

Vardų erdvės kodinis pavadinimas.

ns.title

Vardų erdvės pavadinimas.

ns.description

Vardų erdvės aprašymas.