UNPKG

@golemio/energetics

Version:
93 lines (74 loc) 3.28 kB
# Příprava dat z ENO do datové platformy Golemio ## Postup poprvé 1. Stažení zdrojových dat z: - [Data o objektech spravovaných MHMP](https://operator.sharepoint.com/:x:/s/Energetickportl2024/EY0U2oAmVctHt0uv6wlZfacBgv63KMOpcU9JHUmVeXAuFA?e=qjvGZz) - [Data o objektech spravovaných Městskými částmi (MČ)](https://operator.sharepoint.com/:x:/s/Energetickportl2024/EbN7TKYgnEBHlBX7gRjw7CYBfOqLbfz5sacuy0Bhq97jJQ?e=cSyPsL) 2. Převést první list do formátu CSV 3. Importovat csv do databáze jako novou tabulku např. skrze proram DBeaver - pro importer setings zaškrtnuto nastavení `Set empty string to null`, `Trim whitespace` a také nastaveno `Sample rows count` na 10000 (kvůli možnému podhodnocení datových typů) - v `Table mapping` kliknout na tlačítko `configure` a nastavit všechny sloupce jako varchar 4. Spustit sql nad importovanými tabulkami (doplnění gps viz níže) ```sql CREATE TABLE eno_address_gps ( adresa varchar(250) NULL, longitude float4 NULL, latitude float4 NULL ); CREATE VIEW v_eno_map_objects AS with base as ( select *, 'MČ' as "TYP_SPRAVCE", CASE WHEN "NAZEV_EJ" LIKE 'Odbor%' THEN "NAZEV_EJ_OTEC" || ' ' || "NAZEV_EJ" ELSE "NAZEV_EJ" END as "nazev_pozice_v_mape" from eno_raw_budova_majetek_mc union all select *, 'MMHP' as "TYP_SPRAVCE", CASE WHEN "NAZEV_EJ" LIKE 'HL.M.PRAHA%' THEN 'HL.M.PRAHA' ELSE "NAZEV_EJ" END as "nazev_pozice_v_mape" from eno_raw_budova_majetek_mhmp ) select "POPIS_ADRESA" as adresa, null as "ruian_id", "NAZEV_EJ" as "nazev_ej", "NAZEV_EJ_OTEC" as "ej_otec", "TYP_SPRAVCE" as "typ_spravce", "nazev_pozice_v_mape", ST_SetSRID(ST_MakePoint(ag.longitude, ag.latitude), 4326) as "gps_poloha" from base b left join eno_address_gps ag on b."POPIS_ADRESA" = ag.adresa where "POPIS_ADRESA" is not null ``` 5. Doplnit práva k tabulkám a pohledu ```sql GRANT REFERENCES, SELECT ON TABLE energetics.eno_raw_budova_majetek_mc TO dataplatform_energetics_ro; GRANT ALL ON TABLE energetics.eno_raw_budova_majetek_mc TO dataplatform_energetics_rw; GRANT REFERENCES, SELECT ON TABLE energetics.eno_raw_budova_majetek_mhmp TO dataplatform_energetics_ro; GRANT ALL ON TABLE energetics.eno_raw_budova_majetek_mhmp TO dataplatform_energetics_rw; GRANT SELECT, REFERENCES ON TABLE energetics.eno_address_gps TO dataplatform_energetics_ro; GRANT ALL ON TABLE energetics.eno_address_gps TO dataplatform_energetics_rw; GRANT REFERENCES, SELECT ON TABLE energetics.v_eno_map_objects TO dataplatform_energetics_ro; GRANT ALL ON TABLE energetics.v_eno_map_objects TO dataplatform_energetics_rw; ``` ## Doplnění GPS souřadnic 1. exportovat relevatní adresy ```sql select distinct "adresa", LENGTH("adresa") from energetics.v_eno_map_objects where (adresa like '%Praha%' and LENGTH("adresa")>19 or adresa not like '%Praha%' and LENGTH("adresa")>11) ``` 2. použít přiložený skript se správným tokenem 3. importovat výstupní csv do mapovací tabulky `eno_address_gps` ## Postup aktualizace dat Stačí kroky 1-3., s tím že data se importují do existujících tabulek a stará data se smažou. ## Poznámky Sloupec ruian_id je prázdný, protože to je volitelná část prototypu.