xt84 / test_project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Задача

Организовать выгрузку и обработку данных по датам регистрации земельных участков.

Шаги

По сути нам нужно три приложения:

  • Выгрузка
  • Обработка
  • Загрузка

Конфигурирование приложения:

  • Параметры командной строки
  • Файлы конфигурации

Выгрузка данных

  • Выгрузка произдится из реляционной СУБД
    • СУБД задаётся через соответсвующий 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)
);

About