Nuo ko pradėti

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

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:

mirusiuju_toksikologinis_rezultatas — 14 laukų
IDLaukasTipasPrivalomasAprašymas
1_idstringtaipUnikalus įrašo identifikatorius.
2vda_idstring—Valstybės duomenų agentūros įrašo id.
3mirties_idstring—Mirties atvejo identifikatorius.
4t_rezstring—Toksikologinio tyrimo rezultato kodas.
5m_koncdouble—Nustatyta medžiagos koncentracija.
6mk_vienetaistring—Koncentracijos matavimo vieneto kodas.
7pavadinimasstring—Medžiagos pavadinimas.
8gr_pavadinimasstring—Medžiagos grupės pavadinimas.
9tipo_pavadinimasstring—Medžiagos tipo pavadinimas.
10lytisstring—Mirusiojo lytis.
11mirties_metailong—Mirties metai.
12gyv_tipasstring—Gyvenamosios vietos tipas (miestas / kaimas).
13amziaus_grupestring—Amžiaus grupė.
14mirties_priezastisstring—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.

GET/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.

Taip pat žiūrėkite

Kaip vertinate šį puslapį?