Převádí data z RÚIAN výměnného formátu do PostgreSQL databáze.
ruian2pgsql je aplikace pro příkazový řádek. Čte data z XML souborů RÚIAN a ukládá jejich obsah do databáze PostgreSQL. Neukládá historické záznamy, udržuje pouze nejnovější záznamy všech objektů. Pomocí ruian2pgsql můžete importovat jeden soubor stejně tak jako více souborů. Pokud jeden soubor naimportujete několikrát, nebo se obsah jednoho souboru překrývá s obsahem jiného souboru, ruian2pgsql naimportuje všechny objekty jen jednou (jsou jednoznačně určeny svým unikátním klíčem přiřazeným v RÚIAN).
- JRE nebo JDK 7+
- server PostgreSQL s nainstalovanou knihovnou PostGIS nebo MySQL server (pokud bude při importu použit přepínač --no-gis)
- Apache Maven 3+ (pouze v případě, že si chcete sami aplikaci zkompilovat)
Není nutné, abyste aplikaci kompilovali sami, nejnovější zkompilovanou verzi si
můžete stáhnout z https://github.com/fordfrog/ruian2pgsql/downloads. Nicméně
kompilace ruian2pgsql je snadná. Jakmile nainstalujete Apache Maven, stačí
spustit příkaz mvn package
v hlavním adresáři zdrojových souborů, ve kterém je
umístěný soubor pom.xml.
Zde jsou informace o použití programu, které vypisuje ruian2pgsql, pokud ho spustíte bez parametrů (výpis je v angličtině, zde je přeložený):
Použití: java -cp ruian2pgsql-*.jar:jdbc-driver.jar com.fordfrog.ruian2pgsql.App <volby>
Kde:
jdbc-driver.jar
je soubor JAR obsahující databázový ovladač (bud PostgreSQL nebo MySQL)
--convert-to-ewkt
pokud je použito, tak jsou nejprve GML řetězce převedeny ze zdrojového
XML do EWKT formátu a následně uloženy do databáze, jinak jsou do
databáze ukládány původní GML řetězce (použijte tuto volbu v závislosti
na úrovni GML implementace ve vámi používané verzi Postgisu)
--create-tables
vytvoří databázové tabulky pro data (pokud tabulky se stejným názvem
již existují, tak jsou nejdříve odstraněny)
--db-connection-url <hodnota>
je připojovací URL ve formátu JDBC, například:
jdbc:postgresql://localhost/ruian?user=ruian&password=p4ssw0rd
--debug
pokud je použito, jsou vypisovány ladící informace
--dry-run
zpracuje všechny uvedené soubory, ale žádná data nezapíše do
databáze
--input-dir <hodnota>
je adresář, který obsahuje stažené soubory s příponou .xml.gz
--log-file <hodnota>
je volitelná specifikace logovacího souboru (pokud není uveden, log
bude zapsaný na konzoli)
--no-gis
ignoruje všechny GIS informace (element Geometrie) ve vstupním XML
souboru
--ignore-invalid-gml
pokud je GML definice chybná, aplikace ji ignoruje a uloží objekt
bez dané definice (pokud tento parametr není uvedený, aplikace
skončí vyjímkou při pokusu o uložení chybné GML definice, nevýhodou
tohoto parametru je, že import mírně zpomaluje, protože každá GML
definice je kontrolovaná dvakrát - jednou při kontrole a podruhé při
ukládání do databáze)
--reset-transaction-ids
zresetuje transakční id systému RÚIAN, takže při následujícím
importu budou veškerá data přepsána (data jsou aktualizována pouze
v případě, že nové id transakce je větší než id transakce uložené
v databázi - tato funkce je užitečná pokud potřebujete zregenerovat
data z důvodu nějaké chyby při importu, bez nutnosti smazání všech
dat a importu do čisté databáze)
Seznam plánovaných funkcí je na wiki.
ruian2pgsql je distribuovaný pod MIT licencí.
- Přidán přepínač --no-gis, který vypíná import GIS dat.
- Přidána podpora pro databáze MySQL, pokud je použit přepínač --no-gis.
- Předpřipravené statementy jsou nyní inicializovány pouze jednou, ne pokaždé když se zpracovává nový soubor.
- Změněny DDL příkazy pro vytváření indexů tak, aby byly kompatibilní i s PostgreSQL verzemi menšími než 9.0.
- Přidán přepínač --dry-run pro spuštění aplikace v režimu, kdy žádná data nejsou zapsána do databáze.
- Přidán přepínač --convert-to-ewkt, který převádí GML řetězce do formátu EWKT před uložením geometrií do databáze. To proto, že úroveň podpory GML v Postgisu není dostatečná pro GML data obsažená v RÚIAN souborech.
- Přidán přepínač --debug, který vypisuje ladící informace.
- Přidán pohled ruian_stats, který zobrazuje statistiky RÚIAN dat a jejich geometrií.
- Pokud je použitý přepínač --ignore-invalid-gml, tak pokud program narazí na chybný GML řetězec, tak ho vypíše do logu.
- Přidána úprava, která řeší chybu v Postgisu (neparsuje MultiPoint s elementem pointMembers a místo toho ukládá prázdný multipoint). Oprava chyby se aplikuje automaticky, pokud cílová databáze chybu obsahuje. Původní GML se přepíše tak, že místo pointMembers se použije element pointMember.
- Přidán přepínač --reset-transaction-ids.
- první vydaná verze