Skip to content

obivan/fiaser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fiaser

Утилита предназначена для конвертации выгрузок БД ФИАС в формате XML (и в формате ГАР), представленных на сайте https://fias.nalog.ru/Updates, в файл базы данных SQLite и/или PostgreSQL. Сохраняет содержимое выгрузок в виде набора таблиц, схема которых строится на основе xsd-файлов.

Установка

Скачайте файл fiaser-0.2.0-standalone.jar со страницы релизов или используйте lein uberjar для сборки из исходного кода.

Использование

Необходимо загрузить полную БД ФИАС в формате XML (или БД ГАР ФИАС) и схемы соответствующего формата. Схемы выгружаются по ссылкам "XSD схемы выгрузки БД в формате ГАР" или "XSD схемы выгрузки БД ФИАС в формате XML". Следует распаковать загруженные файлы, указать необходимые параметры в конфигурационном файле и запустить конвертацию:

$ java -jar fiaser-0.2.0-standalone.jar [path/to/config.edn]

Опции

  • :sources. Источники данных для конвертации.
    • :xml-dir. Определяет расположение каталога с данными ФИАС.
    • :xsd-dir. Определяет расположение каталога со схемами ФИАС.
  • :targets. Цели конвертации
    • :enabled?. Включить/выключить конвертацию.
    • :sqlite. Параметры конвертации в SQLite.
      • :file. Определяет имя и местоположение выходного файла SQLite.
    • :postgres. Параметры конвертации в PostgreSQL.
      • :host. Адрес сервера.
      • :port. Порт сервера.
      • :user. Имя пользователя.
      • :dbname. Имя базы данных.
      • :schema. Имя схемы. При отсутствии будет создана автоматически.
      • :tablespace. Имя табличного пространства. Опциональный параметр. В случае указания, на момент старта конвертации табличное пространство должно быть создано. Все таблицы будут созданы в указанном табличном пространстве.
      • :password. Пароль пользователя БД.

Ошибки и ограничения

На данный момент поддерживается работа только с полной (не дельта) выгрузкой ФИАС.

При обработке данные проверяются на соответствие модели, описанной в xsd-схеме. На данный момент (октябрь 2020) данные ФИАС полностью проходят валидацию по своей модели и конвертируются без ошибок. Данные в новом формате ГАР ФИАС имеют ошибки как на уровне схем, так и уровне данных. Ниже приведен список известных ошибок:

  • В файле схемы AS_PARAM_2_251_02_04_01_01.xsd отсутствует известный тип поля OBJECTID. При конвертации будет использован тип text.
  • Файлы схем AS_CHANGE_HISTORY_251_21_04_01_01.xsd, AS_ADM.HIERARCHY_2_251_04_04_01_01.xsd, AS_ADDR.OBJ.DIVISION_2_251_19_04_01_01.xsd и AS_MUN.HIERARCHY_2_251_10_04_01_01.xsd имеют одинаковые имена коллекций и элементов: ITEMS/ITEM. Это создает коллизию имен коллекций справочника. Утилита конвертации исправляет данную ошибку подменой имен коллекций и элементов для определенных файлов схем и соответствующих файлов данных.
  • Структура xsd-схемы AS_NORMATIVE.DOCS.KINDS_2_251_09_04_01_01.xsd, в отличие от остальных, имеет заголовочную части коллекции.
  • Часть данных не проходит валидацию по схеме AS_PARAM_2_251_02_04_01_01.xsd по причине отсутствия обязательного поля VALUE (Значение параметра). Такие записи при конвертации пропускаются, их идентификаторы выводятся в stdout.

Лицензия

Copyright © 2020 Vadim Komarov

This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0.

This Source Code may also be made available under the following Secondary Licenses when the conditions for such availability set forth in the Eclipse Public License, v. 2.0 are satisfied: GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version, with the GNU Classpath Exception which is available at https://www.gnu.org/software/classpath/license.html.