Sąvokos
Vardų erdvės, lentelės, failai, Iceberg schemos ir momentinės kopijos – Duomenų API duomenų modelis.
Atnaujinta
Duomenų API veikia virš Apache Iceberg duomenų
ežero, užklausiamo per Trino. Kiekviena užklausa yra tik skaitymui – vardų erdves
naršote ir schemas skaitote su GET, o eilutes užklausiate ar eksportuojate su
POST (kūne perduodamas tik užklausos aprašas). Verta suprasti penkis statybinius
blokus:
Vardų erdvė
Vardų erdvė – tai talpykla, identifikuojama tašku atskirtu keliu. Šiame
portale vardų erdvė paprastai yra duomenis skelbiančios organizacijos įmonės
kodas – mūsų pavyzdinis rinkinys yra vardų erdvėje 111958286 (Higienos
institutas).
Vardų erdvė pateikia savo antrines vardų erdves, lenteles ir failus, todėl visas katalogas yra medis, kurį naršote nuo šaknies:
GET/namespaces/111958286
{
"success": true,
"data": {
"current_namespace": "111958286",
"child_namespaces": [],
"tables": ["mirusiuju_toksikologinis_rezultatas", "gimimas", "…"],
"files": []
}
}Iškvieskite GET /namespaces be kelio,
kad gautumėte šaknies sąrašą.
Lentelė
Lentelė – tai Iceberg lentelė, su kuria galima daryti tris dalykus:
Schema
Perskaitykite stulpelius, tipus ir null leistinumą.
Užklausa
Skaitykite eilutes JSON formatu su filtru / rūšiavimu / puslapiavimu.
Eksportas
Atsisiųskite visą lentelę kaip NDJSON / JSON / CSV / Parquet.
Schema
Prieš užklausą perskaitykite lentelės schemą, kad žinotumėte tikslius stulpelių pavadinimus ir tipus. Schema yra Iceberg loginė schema: kiekvienas laukas turi pastovų skaitinį id (Iceberg seka stulpelius pagal id net juos pervadinus), tipą ir privalomumo (ne-null) žymę.
GET/namespaces/111958286/tables/mirusiuju_toksikologinis_rezultatas/schema
Štai tikra mūsų pavyzdinės lentelės schema:
| ID | Laukas | Tipas | Privalomas | Aprašymas |
|---|---|---|---|---|
| 1 | _id | string | taip | Unikalus įrašo identifikatorius. |
| 2 | vda_id | string | — | Valstybės duomenų agentūros įrašo id. |
| 3 | mirties_id | string | — | Mirties atvejo identifikatorius. |
| 4 | t_rez | string | — | Toksikologinio tyrimo rezultato kodas. |
| 5 | m_konc | double | — | Nustatyta medžiagos koncentracija. |
| 6 | mk_vienetai | string | — | Koncentracijos matavimo vieneto kodas. |
| 7 | pavadinimas | string | — | Medžiagos pavadinimas. |
| 8 | gr_pavadinimas | string | — | Medžiagos grupės pavadinimas. |
| 9 | tipo_pavadinimas | string | — | Medžiagos tipo pavadinimas. |
| 10 | lytis | string | — | Mirusiojo lytis. |
| 11 | mirties_metai | long | — | Mirties metai. |
| 12 | gyv_tipas | string | — | Gyvenamosios vietos tipas (miestas / kaimas). |
| 13 | amziaus_grupe | string | — | Amžiaus grupė. |
| 14 | mirties_priezastis | string | — | Mirties priežasties grupė (TLK-10-AM). |
Dažni Iceberg tipai, kuriuos pamatysite: string, long, int, double,
boolean, date, timestamp ir sudėtinis struct.
Failas
Failas – tai saugomas objektas, pateikiamas tiesiai iš objektų saugyklos:
PDF, paveikslėlis ar archyvas, susietas su vardų erdve. Failo pavadinimas yra
vienas bazinis vardas (be /), o atsakymas yra neapdoroti baitai su pirminiu
Content-Type.
/namespaces/{namespace}/files/{fileName}
Momentinė kopija
Iceberg saugo lentelės momentinių kopijų istoriją. Kiekvienas įrašymas sukuria
naują kopiją su skaitiniu snapshot_id. API skaito naujausią momentinę kopiją –
užklausos ir eksportas visada atspindi dabartinę lentelės būseną.
Atsakymo struktūra
API egzistuoja dvi atsakymo formos – įsidėmėkite skirtumą:
Vardų erdvės ir schemos galiniai taškai įvynioja turinį:
{ "success": true, "data": { "…": "…" } }Užklausos galinis taškas grąžina eilutes ir poslinkio puslapiavimo metaduomenis – be success lauko:
{ "data": [ /* eilutės */ ], "total": 22143, "total_pages": 4429, "current_page": 1 }Eksporto ir failo galiniai taškai grąžina neapdorotus baitus (NDJSON / JSON / CSV / Excel / Parquet arba failo turinio tipą), o ne JSON.
Užklausos į lenteles
Panaudokite schemą: select, filter, sort, puslapiavimas.
Duomenų atsisiuntimas
Masinis eksportas kaip NDJSON / JSON / CSV / Parquet.
Taip pat žiūrėkite
Kaip vertinate šį puslapį?