Toto je původní verze internetového fóra ISPforum.cz do února 2020 bez možnosti registrace nových uživatelů. Aktivní verzi fóra naleznete na adrese https://telekomunikace.cz

Import komletní databáze RÚIAN do MySQL

Právní problematika, závazná legislativa, provozní a lokalizační údaje, atd.
Uživatelský avatar
zdenek.svarc
Administrator
Příspěvky: 1635
Registrován: 18 years ago
antispam: Ano

Import komletní databáze RÚIAN do MySQL

Příspěvekod zdenek.svarc » 8 years ago

Ahoj,

možná se někomu bude hodit. Vyštrachal jsem ze zápisků postup, kterým jsem kdysi vymyslel na import RÚIANu dostupného na webu do lokální SQL. Za aktuálnost ani chybuvzdornost ale neručím.

1. Příprava souboru schema.sql

Kód: Vybrat vše

SET NAMES utf8;
SET time_zone = '+00:00';
SET foreign_key_checks = 0;
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';

DROP TABLE IF EXISTS `ruian`;

CREATE TABLE `ruian` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`kod_adm` INT(11),
`kod_obce` INT(11),
`nazev_obce` VARCHAR(255),
`nazev_momc` VARCHAR(255),
`nazev_mop` VARCHAR(255),
`kod_casti_obce` INT(11),
`nazev_casti_obce` VARCHAR(255),
`nazev_ulice` VARCHAR(255),
`typ_so` VARCHAR(255),
`cislo_domovni` INT(11),
`cislo_orientacni` INT(11),
`znak_cisla_orientacniho` VARCHAR(255),
`psc` INT(11),
`souradnice_y` VARCHAR(255),
`souradnice_x` VARCHAR(255),
`plati_od` VARCHAR(255),
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;


2. Import schema.sql do databáze

Kód: Vybrat vše

mysql -u uživatel -p databáze < /root/ruian.sql


3. Stáhnutí souborů, spojení a konverze na jeden CSV soubor vhodný pro import (Linux nebo OS X)

- Stáhnout ZIP z http://nahlizenidokn.cuzk.cz/StahniAdresniMistaRUIAN.aspx a rozbalit (cca 6300 CSV souborů / 330 MB)
- Spojit jednotlivé CSV soubory do jednoho (celkem okolo 2,9 mil řádků), ten zkonvertovat z defaultního kódování cp1250 na UTF-8 a odstranit všechny řádky s hlavičkou:

Kód: Vybrat vše

1. cat * > cp1250.csv
2. iconv -f cp1250 -t utf-8 < cp1250.csv > utf-8.csv
3. grep -v '^Kód ADM' utf-8.csv > ruian.csv


Import CSV souboru ruian.csv do tabulky

- Název importovaného souboru (bez přípony .csv) musí být stejný jako tabulka do které je soubor importován.
- Pokud je oddělovač polí středník, pak je potřeba jej eskejpovat \;

Kód: Vybrat vše

mysqlimport --fields-terminated-by=\; --columns='kod_adm,kod_obce,nazev_obce,nazev_momc,nazev_mop,kod_casti_obce,nazev_casti_obce,nazev_ulice,typ_so,cislo_domovni,cislo_orientacni,znak_cisla_orientacniho,psc,souradnice_y,souradnice_x,plati_od' --local -u uživatel -p databáze ruian
4 x