0,0
рейтинг
20 марта 2012 в 22:15

Разработка → КЛАДР умер, да здравствует ФИАС?

Уважаемые коллеги, которые сталкивались с классификатором адресов Российской Федерации КЛАДР знают, насколько это странная база (в первую очередь своей структурой), а также большим количеством неточностей в самих данных.

В 2011 году за дело взялась ФНС, которая начала разрабатывать новую единую базу Федеральной информационной адресной системы (ФИАС) для того, что бы покончить с адресным бардаком, царящим среди различных ведомств. К слову сказать КЛАДР тоже делала налоговая, но, по всей видимости, оказалось, что лучше начать все с чистого листа, вместо мучений с предшественником.

Единой информацией из ФИАС будут обязаны пользоваться все ведомства – ГИБДД, Росреестр, ЗАГС, ФМС России и др, в частности Почта России – которая использует свой, отличный от КЛАДРа справочник адресов, что приводило к постоянным проблемам с доставкой писем, высылаемые ФНС налогоплательщикам. Налоговая служба разработала порядок ведения ФИАС, согласно которому данные об улице, доме, квартире и т. д. должны будут в течение нескольких дней с момента появления попадать в новую информационную систему.

И вот, с января 2012 года на сайте системы fias.nalog.ru начали в еженедельном режиме выкладывать в свободный доступ базу ФИАС в двух форматах dbf и xml, причем новая база со свежими данными доступна также в формате КЛАДРа (!) для использования в системах, заточенных под его использование. Интересующиеся могут сразу начать с описания структуры базы, вам понравится.
Сергей Колесников @sergpenza
карма
32,0
рейтинг 0,0
Пользователь
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (119)

  • +2
    Хорошая новость, спасибо за информацию.
    • +2
      скоро во всех браузерах рунета — fias.co
      • 0
        Ссылка ведет на основателя Automattic и создателя Wordpress)
  • +2
    Вот так новость, спасибо!
    XML в архиве весит 803Мб — нехило, сейчас посмотрим что они там придумали.
  • +12
    Как же без DBF! Обязательно в dbf, а дискеток нет случайно?
    • +12
      И в кодировочке CP866, будьте готовы :)
    • +7
      Для формата dbf написано дофига библиотек, в том числе под ДОС. Это значительно упрощает миграцию для старых приложений.
      • +5
        * Для формата dbf написано дофига библиотек под ДОС
  • 0
    Посмотрел форму поиска на сайте fias.nalog.ru — удобно, думаю в своем проекте сделаю так же.
    Но что собственно говоря изменилось, при поверхностном просмотре непонятно.
    Код остался в таком же виде: 2300300100000 (Анапа)
    • +2
      Читайте документацию, там кроме этого кода еще вагон полей (например родительский элемент, который позволяет легким движением запросом выбирать следующий или родительский уровень данных).
      • 0
        безусловно я так и поступлю, поставил на закачку xml-базу :)

        Использовать XML для распространения было очень правильным решением!
    • 0
      «И это хорошо!» (с)
      Я в том смысле, что отлично, когда разработка нового стандарта согласованна с предыдущими наработками. Если какой-то старый кусок вписывается в рамки нового, то и нужно его туда включать, а не перехерачивать все с нуля с полной несовместимость со старыми данными.
  • +3
    Для OpenStreetMap полезно наверное будет.
  • +11
    Редкий случай, когда да, ок, молодцы.
  • 0
    Спасибо вам большое!
  • 0
    Размеры впечатляют
    image
    • +1
      сорри, неправильный тэг
      image
      • +4
        Первый разя я матюгнулся, когда полез смотреть по ссылке описание структуры и мне вылез *.doc — html ради этого и разрабатывался, чтобы выкладывать в этом формате документы. А второй и последни, когда увидел это.
        Неужели люди, разрабатывающие такие технологии не думают об их использовании?
        • 0
          В каком ещё универсальном формате можно было выложить?
          • +3
            в html :)
          • 0
            Вы про документацию или базу спрашиваете?
            • 0
              Про базу.
              • –3
                Я совершенно не оспариваю выбор xml как способ структурирования данных, но реализация в таком виде оставляет желать лучшего ибо с этими размерами невозможно эффективно работать. Я имею в виду, что такой подход заставит разработчиков применять к представленным данным свои средства хранения: MSSQL, MySQL.
                Я считаю, что наиболее эффективным подходом было бы использование sqlite баз. 1. Размеры были бы гораздо меньше за счет отсутствия расходов на структуру, которая раздувает размеры неимоверно.
                2. Достаточно распространены провайдеры для этих баз, открытый формат.
                3. Отсутствие привязки к серверу базы данных.
                Можно провести более глубокий анализ, но в первом приближении данный выбор кажется мне лучшим.
                • +6
                  но реализация в таком виде оставляет желать лучшего ибо с этими размерами невозможно эффективно работать.

                  Откройте для себя потоковые xml-парсеры. DOM построить да нельзя, а вот потоковым выбрать данные да запросто.

                  Я имею в виду, что такой подход заставит разработчиков применять к представленным данным свои средства хранения: MSSQL, MySQL.

                  Все равно все так и делают.

                  Я считаю, что наиболее эффективным подходом было бы использование sqlite баз. 1. Размеры были бы гораздо меньше за счет отсутствия расходов на структуру, которая раздувает размеры неимоверно.

                  Поверьте мне сильно она не уменьшится. Там фишка в том что к примеру к тому же дому клеится два длинных ID и информация дополинтельная.

                  2. Достаточно распространены провайдеры для этих баз, открытый формат.

                  Xml тоже открыт. И библиотек необходимых еще больше.

                  • 0
                    Я в курсе потоковых парсеров. Я говорю об эффективности, а не о возможности.
                    • +5
                      Потоковые парсеры вполне эффективны. К тому же с моей точки зрения это формат иморта. Никто напрямую с этим работать не будет.
                • +2
                  Все верно: xml — это формат представления данных
                  В данном случае он более чем уместен, т.к. позволяет достаточно легко спарсить данные в необходимый пользователю формат
                • 0
                  Вас я бы на работу не взял.

                  По моему тут даже моей бабушке понятно, что XML Это просто формат для иморта/экспорта данных.
                  • –1
                    Аминь!
                • 0
                  Вводить в проект поддержку sqlite дороже, чем поддержку xml или перегнать данные в нужный формат из xml © К. О.
                  • 0
                    А в какой формат, к примеру?
                    • +2
                      В тот, который использует для хранения данных по умолчанию ИС, в которую будет внедряться ФИАС.

                      А большинство ИС у нас ВНЕЗАПНО клиент-серверные и многопользовательские. SQLite никто не использует, так как он ВНЕЗАПНО однопоточный.
                      • 0
                        По правде сказать, я не рассматривал «клиент-серверные и многопользовательские ИС». Возможно, сейчас софт для гос. учреждений и начала эволюционировать, но лет 5 назад он был как раз десктопным и однопользовательским, а полученную инфу таскали на дискетках.
                        Типичным для меня видением является использование этих самых файлов в разработке десктопного приложения без сервера.
                        Буду рад узнать, что в данной сфере всё изменилось, но пока такой информацией не владею.
                        • 0
                          Все изменилось и уже давно. В смысле более 5 лет назад.

                          И есть даже такое (по сути ESB для интеграции ведомств в масштабе всей страны).
                        • +1
                          Ну, и да — КЛАДР был стандартом не только для госучреждений, но и вообще самой стандартной БД адресов в стране и активно используется и в множестве enterprise-софта.
      • 0
        В связи с этими ужасающими объёмами вопрос:
        чем в OS X можно посмотреть такие огромные xml-файлы и поиграться с запросами?

        P.S. Попытался открыть в Textmate и Safari, после чего они умерил не приходя в сознание.
        • +2
          боюсь что такие вещи только потоквыми парсерами можно открыть. в принципе есть code.google.com/p/xpath4sax/, но проще мне кажется найти утилиту чтобы dbf перегнать в нормальную базу
          • 0
            для актуальной версии dbf нет
        • +3
          Возьмите Sedna. Я 4-гигабайтный XML скармливал этому чуду (да, это какое-то время занимает), а потом XPath-запросами моментально получал из него все, что мне нужно.
        • +1
          написать скрипт который выгрузит это в sql
        • +2
          Потоковые xml-парсеры ваши друзья.
        • 0
          www.firstobject.com/dn_markup.htm посмотрите, с исходниками.
        • 0
          терминал > less ;)
  • 0
    Надеюсь теперь номера домов и улицы будут все, а то в КЛАДР как-то адреса с точностью до инспекции. Отличная новость
    • 0
      Там есть онлайновый справочник. Из плюсов дома таки да ОТДЕЛЬНО. Но пока не все. На моей улице нет моего дома к примеру.
  • +3
    Мне вот интересно, как согласуется «национальная программная платформа» и перевод госучреждений на OpenSource, с описаниями в doc/docx и тотальным засилием всякого микрософта даже в такой не предназначенной для него области, как сайтостроение?
    • –1
      да легко, через высокий уровень коррупции и низкий — интеллекта
    • +11
      docx — открытый стандарт, чтобы вы знали. Провокация не засчитана.
      • 0
        Можно номер стандарта или ссылку на него? Желательно ГОСТ, хотя пойдёт и ISO.
        • +2
          ISO/IEC IS 29500:2008
          • +8
            Status: Withdrawn
            • +1
              А самому поискать лень?

              ISO/IEC 29500-1:2011
              ISO/IEC 29500-2:2011
              ISO/IEC 29500-3:2011
              ISO/IEC 29500-1:2011
              • +1
                ISO/IEC 29500-4:2011

                Status: Published :)
                • –3
                  Это нелигитимный published!
                  На самом деле всёравно withdrawn!
      • +3
        Ага 6 тыщ страниц спецификации. И ооочень долго принимали.
    • +1
      Как бы в фнс-е вообще очень много майкрософта. К примеру, mssql кругом. :)
      • 0
        Даже в этом описании ФИАСа по ссылке :)
    • +5
      На уровне ГОСТ в качестве стандарта документов таки odt.
  • 0
    КЛАДР 2.0?
    • +1
      КЛАДР уже имеет версию 4.0
  • +6
    Поддержкой нового классификатора занялась свежесозданная компания ФИАС Ко :)
  • 0
    Интересно квартиры с буквами и дробями — учли?
    А то их есть в моей деревне =)
    • 0
      Квартиры то еще ладно. Дома бы хотя бы.
    • +1
      RTFM.

      Предусмотрены даже объекты, «для которых нельзя указать точный структурированный адрес (почтовый адрес). Значение блока записывается в произвольном виде, позволяющем однозначно определить местонахождение объекта недвижимости через известные ориентиры на местности.»
      • 0
        на деревню дедушке Константину Макарычу
  • +1
    базу ФИАС в двух форматах dbf и xml

    XML? Не ужели они узнали о это формате? Кстати dbf все так же в cp866? :]
    • 0
      О существовании XML ФНС давно уже знает. Только в областях отличных от КЛАДРа.
      • 0
        Теперь и тут. Кстати я посмотрел тут формат и описание, вполне годно. Самое главное появилась отдельная таблица домов. Что радует.
        • 0
          Почему все так восхищаются отдельной таблицей домов? Ведь в КЛАДР номера домов тоже были выделены в отдельную таблицу.
          • 0
            Потому что в КЛАДР это строки с номерами домов. Типа вот у нас тут так. И опять же там не все дома. Эти обещают все. Что было бы неплохо. А то адресная информация получается до улицы, а дальше каждый в свою дуду дудит.
    • +2
      Логично, что dbf в cp866, его(dbf) и оставили для совместимости со старыми разработками.
  • +2
    вот если бы еще и координаты добавили, вообще цены не было бы этой базе!
    • 0
      это голубая мечта…
    • +2
      Координаты можно надергать из 2GIS через API.
      • 0
        Вы не пробовали?)
        • 0
          Список улиц вынимали.
          • 0
            Список улиц конкретного города? Или координаты?
            • +1
              Список улиц конкретного города, по всем городам вынуть удаться только в несколько заходов. И да там у дома насколько я помню координат несколько, так-как отрисовано оно не одной точкой.
    • 0
      … и телефонные коды
  • –4
    Честно говоря, не так просто найти хорошие (и свободные) библиотеки для работы с DBF для современных языков и систем программирования. (Речь не идёт о штуках типа MS Access). DBF скорее мёртв, чем жив.

    Может быть, лучше бы распространяли в формате базы SQLite — она кроссплатформенна и достаточно универсальна.

    XML? Куча пробелов там, небось? Для «ускорения» парсинга. И что, там реально вложенные структуры? А то, может, обычного CSV хватило бы?
    • 0
      XML? Куча пробелов там, небось? Для «ускорения» парсинга. И что, там реально вложенные структуры? А то, может, обычного CSV хватило бы?

      Пробелов нет вообще. В CSV вы не сможете выгрузить вот этот кусок. А вот в xml запросто.
      • 0
        кстати, там нет вложенных элементов.
        такчто всё выгрузится в csv.

        иерархии организованы через ссылку на родительский guid,
        а также косвенно, через коды регион-округ-район-город-пункт-улица.
        • 0
          Выгрузится, то выгрузится, а вот искать по xml всяко проще.
    • 0
      Когда столкнулся с dbf, я просто сконвертировал его библиотекой, написанной на ruby, в csv и работал уже с ним. Никаких проблем, кроме потраченных пяти минут на поиск нужного решения, не было.
  • +5
    ИМХО мертворожденное
    1. Структурно.
    Соответсвует модным подходам в БД, но сама структура российских адресов им не соответсвует, т.е. притянуто за уши и обработка исключительных случаев будет невозможна.

    Попытка смешать местоположение и адрес к хорошему не приведет.
    Привязать гео координаты к адресу — достойная задача, а вот писать в улицу «31 км 200 м Черлакского тракта» — это полный бред. Конечная цель каждого адреса — доставка.
    Вот удивиться почтальон когда поймет что пилить надо 31 км непонятно куда=)

    2. Организационно.
    Адреса ведут муниципалитеты. Там и так бардак, и добавление этой функции прядка не добавит.
    Говорить о синхронности действий муниципалитетов говорить вообще не приходится=)
    Для примера — одно шоссе проходящее через 3 муниципалитета будет введено 3 раза под отдельными номерами.
    Возможно это не баг, а фича, но «не плодите сущности без меры» никто не отменял.

    Ex.
    Сдт Березка-2 от КЗАМЭ
    и так 8 раз, т.к. введено разными людьми из разных муниципалитетов.

    3. Целостность
    Множество домов без индекса (~ 7000 записей в среднем от 10 до 500 домов на запись), а от индекса считается стоимость доставки, а это значит что вся автоматическая тарификация по этим домам будет развалена.

    в строке улица данные
    Гаражи в районе ул.Вокзальная 18г
    Гаражи в районе ул.Геологов 52
    Гаражи в районе ул.Геологов 28
    Гаражи в районе ул.Гоголя 57
    Гаражи в районе ул.Гоголя 60а
    Звезда-3 5 км от д Сорокино
    Серебристый от д Свищево 1км
    Л.м. в 1.5 км. от дор. Соликамск-Кунгур
    Сдт Автомобилист от ПРЗ
    4000м от п.Березовка на восток
    1500м от п.Березовка на юго-восток
    4700м от п.Березовка на восток
    4500м от п Первоманский на юго-запад
    Промплощадка ООО Ковдорский торговый дом
    Промплощадка ООО Топкинский цемент
    СНТ ООО дизайн-студия Маренго

    говорит о качестве ввода и его контроле.

    Понятия снесенного дома нет в базе, как и дома на реконструкции.

    Почта РФ говорит о 40-50 млн объектах почтовой связи
    в фиас сейчас по оценкам около 5 млн объектов

    • +4
      но сама структура российских адресов им не соответсвует, т.е. притянуто за уши и обработка исключительных случаев будет невозможна.

      ЛОЛ ШТО? Вообще-то адресная база хороший пример того, что отлично кладется без всякого мата в РСУБД.

      Попытка смешать местоположение и адрес к хорошему не приведет.
      Привязать гео координаты к адресу — достойная задача, а вот писать в улицу «31 км 200 м Черлакского тракта» — это полный бред. Конечная цель каждого адреса — доставка.

      Между тем может быть официальным адресом. Если вы можете придумать как по другому сделать то давайте рассказывайте.

      Адреса ведут муниципалитеты. Там и так бардак, и добавление этой функции прядка не добавит.
      Говорить о синхронности действий муниципалитетов говорить вообще не приходится=)
      Для примера — одно шоссе проходящее через 3 муниципалитета будет введено 3 раза под отдельными номерами.

      Вообще это там решено. И шоссе кстати там нет.

      Сдт Березка-2 от КЗАМЭ
      и так 8 раз, т.к. введено разными людьми из разных муниципалитетов.

      А коды смотрели? Я вот смотрел и в свое время выгружал КЛАДР на такой объем информации уровень ошибок целостности там низок.

      Множество домов без индекса (~ 7000 записей в среднем от 10 до 500 домов на запись), а от индекса считается стоимость доставки, а это значит что вся автоматическая тарификация по этим домам будет развалена.

      У населенного пункта имеется. Стоимость доставки считается по нему, а никак не по индексу дома. Индекс дома это только к какому почтовому отделению относится дом. И полезен исключительно при доставке.

      Понятия снесенного дома нет в базе, как и дома на реконструкции.

      Там есть пометка действующий адрес. Вообще в данный момент эта база основана на КЛАДР где нормальная точность была до улицы. Дальше был ад и израиль. Сейчас они хотят получить точность до дома, что уже хорошо.

      Почта РФ говорит о 40-50 млн объектах почтовой связи
      в фиас сейчас по оценкам около 5 млн объектов

      Под объектом почтовой связи что тут подразумевается? Дом или помещение? Опять же в КЛАДР и ФИАС точность справочника домов не взирая на его объем желают лучшего. Но в КЛАДР раньше было написано точность до улицы. Не более.

    • +1
      >а от индекса считается стоимость доставки
      В этом случае будет достаточно индекса родительского объекта. Внутри города стоимость не различается.
  • 0
    instanceof.ru/scr/2012/03/21/21.03.2012-10.10.50.png
    Не нашел адреса в базе ФИАС(ко)
  • 0
    Хороший вариант, особенно формат XML — теперь проще будет встраивать в веб-приложения.
  • 0
    А еще непонятно зачем было доверять делать сайт очередным криворуким пионерам и чем не устраивали обычные ссылки на скачивание? Но нет же — обязательно нужно извратиться через какой-нибудь убийственный яваскрипт. И в результате в последнем 11-м фоксе
    Ошибка: __doPostBack is not defined
    Источник: javascript:__doPostBack('ctl00$contentPlaceHolder$downloadRadGrid$ctl00$ctl04$formatKladrSZLinkButton','')
    Строка: 1
    • 0
      Это самый обычный ASP.NET, причем тут «убийственный яваскрипт»?
      Печально, что адресные базы становятся лучше, но все так же ужасно далеки от реальности…
      • 0
        Не знаю кто как, а я не вижу разницы между кривым яваскриптом с ничем не обоснованной избыточностью (убийственностью) без названия и тем же самым с названием заглавными буквами и с точкой :)
        • +1
          Очень странно с моей точки зрения называть «криворукими пионерами» людей, которые для создания сайта использовали одну из самых распространенных веб-технологий. То, что у вас оно не работает — не значит, что оно плохо.
          Я не защищаю WebForms (терпеть не могу, если честно), но подобные заявления отдают каким-то айти-экстремизмом.
          /offtopic
          • 0
            Мне тоже стыдно конечно, но с объективной точки зрения они именно криворукие и именно пионеры. Если не понимают вред любой избыточности системы и жертвуют устойчивостью и скоростью работы во имя удобства разработки и модности технологии. А массовость рядов «не понимающих» не делает их менее криворукими и менее пионерами.
            PS (сайт не работает в одном браузере на чистой системе) === (сайт не работает)
    • +3
      ASP.NET. Он не глючит, он просто так работает. Как умеет.
    • +2
      Я могу, конечно, многого не понимать, но имхо было бы лучше всем, если бы база (сами XML файлы) была доступна по rsync. А еще лучше под git'ом.
      • +1
        Эти точно не сделают. А если и сделают, то вместо нормального rsync'а будет какая-то кривая, адски глючащая, самописная проприетарная приблудина на дотнете.
  • +1
    Интересно почему архивы в формате rar, а не 7z
    • 0
      Старнный вопрос, и тот и другой не особо распространены (то есть в рф rar всяко лучше 7z распространен), почему не zip был бы законным вопрос… может быть чуть чуть хуже степень сжатия, зато разархивировать любой холодильник сможет %)
    • 0
      Так принято, rar прочно засел в мозгах российских обывателей. Зря он что ли в топе продаж. Гнать бы надо — да некому, привыкли же.
    • 0
      местный админ тетеньке которая архивирует (и фиксирует ежедневно в бумажном и пронумерованном журнале) поставил ZVER, а там…
    • 0
      если хотите хардкора — там вам arj есть.
    • 0
      странно, ведь кладр скачиваем в 7z (и в arj)
  • 0
    НАКОНЕЦ-ТО! Теперь импорт адресов в приложения будет как никогда проще!
  • 0
    за две минуты нашел дубль в базе (причем еще неправильно названный не ПД а СОТ)
  • 0
    работать с XML на C# лучше с XPath?
    • 0
      Неудачная идея была… XPathDocument весь xml грузит в память.
      По мотивам статьи пробую XmlTextReader (кстати, чем он отличается от XmlReader?).
      • 0
        некорректная схема или xml:
        AS_INTVSTAT_2_250_11_04_01_01.xsd
        AS_INTVSTAT_20120307_ff633bef-b21a-479d-8f04-705541a70b4e.XML
        наименования атрибутов различаются.
    • 0
      с таким XML работать нужно с SAX на любом языке.
  • 0
    В документации не описано поле LIVESTATUS, которео есть в XML базах.
  • 0
    Сайт лежит. Кто скачал, поделитесь пожалуйста!
  • 0
    Не могу найти сроки введения базы в эксплуатацию. Даже в приказе нету.
    Когда продакшн-релиз?
  • 0
    Че-то не понял а как забирать базу? Руками скачивать что-ли? Нет какого-то урла чтобы забирать?
  • 0
    забирать скриптом в смысле.
  • +1
    вот здесь есть телефонные коды, и будут координаты: www.dadata.ru
    доступно через REST
  • 0
    Есть публичный OLAP кубик по фиасу вот тут www.roscomputing.com/ru/address-olap/AddressOlap.aspx Можно делать анализ целостности базы и получать статистику. Например, можно убедиться, что среди адресных объектов много битых ссылок на нормативные документы и т.п.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.