Организовать выгрузку и обработку данных по датам регистрации земельных участков.
По сути нам нужно три приложения:
- Выгрузка
- Обработка
- Загрузка
Конфигурирование приложения:
- Параметры командной строки
- Файлы конфигурации
- Выгрузка произдится из реляционной СУБД
- СУБД задаётся через соответсвующий JDBC-драйвер (указывается в качестве параметра)
- Так же в качестве параметра передаётся строка подключения
- Данные могут быть выгруженны тремя способами:
- Выгрузка всей таблицы
- Выгрузка за определённый день/месяц/год
- Выгрузка за период
- Выгрузка производится в CSV-файл:
- с заголовком
- разделитель ","
- конец строки "\n"
- Выгрузка должна быть заархивированна (Gzip)
Полученный файл должен быть обработан следующим образом
- Данные группируются в каталоги, где YYYY год, а MM месяц, полученные из файла:
/
|-yyyy1-mm1
|-cdca1.csv.gz
|-cbca2.csv.gz
|-...
|-cbcaN.csv.gz
...
|-yyyyN-mmN
|-cbca1.csv.gz
|-cbca2.csv.gz
...
|-cbcaN.csv.gz
В каждом файле содержаться данные по конкретному кадастровому району
CD - кадастровый округ
СA - кадастровый район
Данные должны быть загружены в конечную СУБД в табицы вида (если таблица не существует она создаётся):
CREATE TABLE cadastral_data_yyyymm (
cdca VARCHAR(5),
cn VARCHAR(17),
reg_date DATE,
owner_id VARCHAR(255),
owner_passport VARCHAR(10)
);
Запуск процесса обработки должен быть оформлен в виде shell-скрипта
Кадастровый номер - это номер кадастрового участка. Структура номера, разделителем для частей номера является символ ":":
CD:CA:CB:CP
- CD - кадастровый округ (23 для Краснодарского края, длина 2 символа)
- CA - кадастровый район (01-51 для Краснодарского края, длина 2 символа)
- CB - кадастровый квартал (длина 6 символов)
- CP - номер участка (максимальная длина 4)
CREATE TABLE cadastral_data (
cn VARCHAR(17),
reg_date DATE,
owner_id VARCHAR(255),
owner_passport VARCHAR(10)
);