Duomenų šaltiniai#
SQL#
- resource.source
Duomenų bazės URI. Duomenų bazės URI formuojamas naudojant tokį ABNF šabloną:
uri = type ["+" driver] "://" [user [":" password] "@"] host [":" port] "/" database ["?" params]
Šablone naudojamų kintamųjų aprašymas:
- type
Duomenų bazių serverio pavadinimas:
- sqlite
- postgresql
- mysql
- oracle
- mssql
- driver
Konkretaus duomenų bazių serverio tvarkyklė naudojama komunikacijai su duomenų baze.
- user
Naudotojo vardas jungimuisi prie duomenų bazės.
- password
Duomenų bazės naudotojo slaptažodis.
- host
Duomenų bazių serverio adresas.
- port
Duomenų bazių serverio prievadas.
- database
Konkrečios duomenų bazės pavadinimas.
- params
Papildomi parametrai
Query string
formatu.
- resource.prepare
Formulė skirta papildomiems veiksmams reikalingiems ryšiui su duomenų baze užmegzti ir duomenų bazės paruošimui, kad būtų galima skaityt duomenis.
- resource.type
Galimos reikšmės:
sql
.
- resource.prepare
- connect(dsn, schema: str = None, encoding: str = 'utf-8')#
- Parametrai:
dsn -- Duomenų bazės URI, kaip nurodyta resource.source.
schema -- Duomenų bazės schema.
encoding -- Duomenų bazės koduotė.
Naudojama tais atvejais, kai jungiantis prie duomenų bazės reikia perduoti papildomus parametrus.
- model.source
Duomenų bazėje esančios lentelės pavadinimas.
- property.source
Lentelės stulpelio pavadinimas.
CSV#
- resource.type
Galimos reikšmės:
csv
,tsv
.
- resource.source
Žiūrėti Failai.
- resource.prepare
- tabular(sep: ',')#
Nurodoma kaip CSV faile atskirti stulpeliai. Pagal nutylėjimą
separator
reikšmė yra,
.
- model.source
Nenaudojama, kadangi CSV resursas gali turėti tik vieną lentelę.
- model.prepare
Žiūrėti Stulpeliai lentelėje.
- property.source
Žiūrėti Stulpeliai lentelėje.
JSON#
- resource.type
Galimos reikšmės:
json
,jsonl
.
- resource.source
Žiūrėti Failai.
- model.source
JSON objekto savybės pavadinimas, kuri rodo į masyvą reikšmių, kurios bus naudojamos kaip modelio duomenų eilutės. Kiekvienas masyvo elementas atskirai aprašomas
property
dimensijoje. Jei JSON objektas yra kompleksinis žiūrėti Kompleksinės struktūros.
- property.source
JSON objekto savybė, kurioje pateikiami aprašomo stulpelio duomenys.
- property.prepare
Žiūrėti Kompleksinės struktūros.
XML#
- resource.type
Galimos reikšmės:
xml
,html
.
- resource.source
Žiūrėti Failai.
- model.source
XPath iki elementų sąrašo kuriame yra modelio duomenys.
- model.prepare
Jei neužpildyta, vykdoma
xpath(self)
funkcija.- xpath(expr)#
Vykdo nurodyta
expr
, viso XML dokumento kontekste.
- property.source
XPath iki elemento kuriame yra duomenys.
XPath nurodomas reliatyvus modeliui, arba kitai daugiareikšmei savybei, kurios sudėtyje savybė yra. Daugiareikšmės savybės žymimos
[]
simboliais savybės kodiniame pavadinime, įprastai tai yraarray
tipo savybės.
- model.prepare
Jei neužpildyta, vykdoma
xpath(self)
funkcija, išmodel
gauto elemento kontekste.
Pavyzdys
<countries>
<country id="1" name="Lithuania">
<cities>
<city id="10" name="Vilnius">
<streets>
<street id="100">Gedimino st.</street>
<street id="101">Konstitucijos st.</street>
</streets>
</city>
<city id="11" name="Kaunas">
<streets>
<street id="102">Laisves st.</street>
<street id="103">Daukanto st.</street>
</streets>
</city>
</cities>
</country>
</countries>
classDiagram direction LR class Country { + id: integer [1..1] + name@en: string [1..1] } class City { + id: integer [1..1] + name@en: string [1..1] } class Street { + id: integer [1..1] + name@en: string [1..1] } City --> "[1..1]" Country : country City "[1..*]" <-- Country : cities Street --> "[1..1]" City : city Street "[1..*]" <-- City : streets
Pagal aukščiau duotus duomenis ir koncepcinį modelį, struktūros aprašas atrodys taip:
model |
property |
type |
ref |
source |
---|---|---|---|---|
Country |
id |
countries/country |
||
id |
integer |
@id |
||
name@en |
string |
@name |
||
cities[] |
backref |
City |
cities/city |
|
cities[].id |
integer |
@id |
||
cities[].name@en |
string |
@name |
||
cities[].country |
ref |
Country |
../../@id |
|
cities[].streets[] |
backref |
Street |
streets/street |
|
cities[].streets[].id |
integer |
@id |
||
cities[].streets[].name@en |
string |
@name |
||
cities[].streets[].city |
ref |
City |
../../@id |
|
City |
id |
countries/country/cities/city |
||
id |
integer |
@id |
||
name@en |
string |
@name |
||
country |
ref |
Country |
../../@id |
|
Street |
id |
countries/country/cities/city/streets/street |
||
id |
integer |
@id |
||
name@en |
string |
@name |
||
country |
ref |
City |
../../@id |
Struktūros apraše matome du variantus, kaip gali būti aprašomi duomenys.
Pirmu atveju Country
modelyje naudojama objektų kompozicija, kur vieno
Country
objekto apimtyje, pateikiami ir kiti objektai.
Reikia atkreipti dėmesį, kad savybės esančios kitos daugiareikšmės savybės
sudėtyje, property.source
stulpelyje nurodo XPath išraišką
reliatyvią daugereikšmei savybei. Daugiareikšmės savybės žymymos []
žyme.
Pavyzdyje cities[].id
property.source
stulpelyje nurodo @id
,
kuris yra reliatyvus cities[]
savybės streets/street
atžvilgiu.
Pagal struktūros aprašą pateiktą aukščiau, kreipiantis į /Country
,
gausime tokius UDTS specifikaciją atitinkančius duomenis:
{
"_type": "Country",
"_id": "29df0534-389d-4eac-a048-799ac64d5103",
"id": 1,
"name": {"en": "Lithuana"},
"cities": [
{
"_type": "City",
"_id": "4a7a3214-e6c3-4a5b-99a8-04be88eac3d4",
"id": 10,
"name": {"en": "Vilnius"},
"country": {
"_type": "Country",
"_id": "29df0534-389d-4eac-a048-799ac64d5103"
},
"streets": [
{
"_type": "Street",
"_id": "c1380514-549f-4cdd-b258-6fecc3a5bbda",
"id": 100,
"name": {"en": "Gedimino st."},
"city": {
"_type": "City",
"_id": "4a7a3214-e6c3-4a5b-99a8-04be88eac3d4"
},
},
{
"_type": "Street",
"_id": "5c02f700-6478-43a0-a147-959927cb3c1c",
"id": 101,
"name": {"en": "Konstitucijos st."},
"city": {
"_type": "City",
"_id": "4a7a3214-e6c3-4a5b-99a8-04be88eac3d4"
},
}
]
},
{
"_type": "City",
"_id": "0fee7d9a-6827-4931-bbea-d44d197faef2",
"id": 11,
"name": {"en": "Kaunas"},
"country": {
"_type": "Country",
"_id": "29df0534-389d-4eac-a048-799ac64d5103"
},
"streets": [
{
"_type": "Street",
"_id": "399a37d6-63a7-43a4-82de-d3d5c75f5d02",
"id": 102,
"name": {"en": "Laisves st."},
"city": {
"_type": "City",
"_id": "0fee7d9a-6827-4931-bbea-d44d197faef2"
},
},
{
"_type": "Street",
"_id": "5b04fecd-5fff-48f6-8674-7cc6da840281",
"id": 103,
"name": {"en": "Daukanto st."},
"city": {
"_type": "City",
"_id": "0fee7d9a-6827-4931-bbea-d44d197faef2"
},
}
]
}
]
}
Analogiškai, jei kreiptumėmės į /Street
, gautume visas gatves iš visų miestų:
{
"_data": [
{
"_type": "Street",
"_id": "c1380514-549f-4cdd-b258-6fecc3a5bbda",
"id": 100,
"name": {"en": "Gedimino st."},
"city": {
"_type": "City",
"_id": "4a7a3214-e6c3-4a5b-99a8-04be88eac3d4"
},
},
{
"_type": "Street",
"_id": "5c02f700-6478-43a0-a147-959927cb3c1c",
"id": 101,
"name": {"en": "Konstitucijos st."},
"city": {
"_type": "City",
"_id": "4a7a3214-e6c3-4a5b-99a8-04be88eac3d4"
},
},
{
"_type": "Street",
"_id": "399a37d6-63a7-43a4-82de-d3d5c75f5d02",
"id": 102,
"name": {"en": "Laisves st."},
"city": {
"_type": "City",
"_id": "0fee7d9a-6827-4931-bbea-d44d197faef2"
},
},
{
"_type": "Street",
"_id": "5b04fecd-5fff-48f6-8674-7cc6da840281",
"id": 103,
"name": {"en": "Daukanto st."},
"city": {
"_type": "City",
"_id": "0fee7d9a-6827-4931-bbea-d44d197faef2"
},
}
]
}
XLSX#
- resource.type
Galimos reikšmės:
xlsx
,xls
arbaodt
.
- resource.source
Žiūrėti Failai.
- model.source
Skaičiuoklės faile esančio lapo pavadinimas.
- model.prepare
Žiūrėti Stulpeliai lentelėje.
- property.source
Žiūrėti Stulpeliai lentelėje.