Pull to refresh

Comments 25

К счастью, цепочки от уровня здания теперь можно представить в едином виде с элементами от 10 до 1, где 10 — это дом, а 1 — регион, и подчиняются они именно в таком порядке.

если вы про object_levels, то там ещё есть Начало действия записи, Окончание действия записи и Признак действующего адресного объекта, а указанные числа - это просто уникальные идентификаторы записей, и нигде не сказано, что это именно уровень в иерархии, т.к. при добавлении/удалении (а удаление будет просто установкой даты окончания) записей идентификаторы будут всегда увеличиваться

Насчет идентификаторов, посмотрите какие уровни были в старом фиасе:

Ничего не увеличилось. Будет оно увеличиваться, как вы утверждаете, или не будет - я не знаю, утверждать ничего не могу. Если будет, будем менять код соответствующим образом.

Система иерархическая, и они постарались в новой классификации сделать эту самую иерархию удобнее.

Цепочки можно вытянуть из двух файлов, один с административным делением (историческим), другой с муниципальным (актуальным). Судя по моим изысканиям, отличия минимальные и затрагивают верхние уровни подчинения (административные и муниципальные районы).

Поэтому работаем с муниципальным делением. А вообще, чтобы помочь Даше отыскать все 10 различий, можно зайти сюда, выбрать деление и сравнить поля.

Муниципальное деление воспринимать как актуальное не совсем правильно, и понимать административное деление как историческое (не актуальное) тоже не верно. У РФ ест 2 вида территориального деления, муниципальное и административное, и оба они актуальные, и оба они используются в равной степени, в зависимости от назначения задачи.

Возможно. В нашей задаче нам хватает муниципального. Возможно, историческим административное деление считает только налоговая, и информация с сайта налоговой - https://fias.nalog.ru/ExtendedSearch - при наведении на подсказку.

В некоторых регионах предусмотрительно выделена колонка PATH с цепочкой адресов. Если же такой колонки там нет, то может помочь дополнительный ключ ОКТМО

А почему вы рекурсивно не можете построить адресную цепочку, начиная с house или appartment? В данных объектах есть ссылка на объект в справочнике adm/mun иерархий, в том же справочнике есть идентификатор на родительскую запись, и так далее до самого верха?

А почему вы рекурсивно не можете построить адресную цепочку, начиная с house или appartment?

Не только могу, но и практикую. Если вы обратите внимание на следующее предложение, то там указана причина, по которой это нельзя делать бездумно:

В своих функциях я обращаюсь к сверке ОКТМО, когда вверху цепочки вдруг происходит взрыв.

А разрыв это когда цепочка не доходит до региона? или разрыв когда у адреса нет каких либо потомков на определенных уровнях?

Если честно, на разрывы не обращали внимания, может, они там и есть.

Взрыв цепочки - это когда на каком-то из уровней у объекта несколько родителей одновременно. В статье указан пример - Челябинск, у которого все внутригородские районы являются родителями самого Челябинска. И тогда цепочек становится по количеству этих самых внутригородских районов.

Но если такие адреса попробовать найти через веб-форму фиаса, то в родителях будет только один внутригородской район. Отсечь лишнее можно, сверив ОКТМО. Если есть другой, менее геморройный способ, и кто-то может его указать, будем благодарны.

Подсказать на текущий момент к сожалению ничего не могу, так как не сталкивался с таким кейсом

Немного оффтопик, но у меня подгорает, когда структуры, принадлежащие частным лицам, пытаются "справедливыми рыночными инструментами" присваивать себе заслуги наших предков и всего советского народа в целом и "лочить" эти достижения внутри своих "экосистем".


Грубо говоря, у нас аналогом "закона о Микки-Маусе" является текущая ситуация с Союзмультфильмом, например.


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

Привет! Меня зовут Таня, я развиваю продукт «Единый адрес» в HFLabs. Статья очень ценная, информации про ГАР не так много, спасибо что поделилась своими наработками.

Но, судя по тексту, чем занимается HFLabs, похоже, не совсем понятно :(

Есть компании, перепродающие ФИАС, иногда с дополнениями (DaData) или собирающие ваши данные (HFLabs). Несомненно, работа по очистке, поддержка, сбор координат из росреестра или другого источника, чего-то стоят, и кто-то не готов ее сам чистить и поддерживать, но готов заплатить, в том числе своими данными, и это нормально. Как относиться к тому, что в таком случае они не указывают первоисточник данных, где можно тупо скачать базу без вопросов, решайте сами.

HFLabs работает с крупными заказчиками, софт и БД разворачивается у заказчика в контуре, есть NDA и законодательство, все данные живут у заказчика. Сервис DaData сделан нашей командой для тех, кому энтерпрайз-решение не нужно. Формат ФИАС (а скоро перейдем на ГАР), используем в наших сервисах и не скрываем этого.

1 сентября 2021 года ФНС перестала выпускать справочник в формате ФИАС с dbf, а оставила только ГАР в xml. Мы сделали конвертер из ГАР в ФИАС и стали раздавать всем желающим справочник в формате «ФИАС», т.к. не все системы успели поддержать формат ГАР в xml.

Чтобы получить справочник «ФИАС» из ГАР мы просим указать емейл, писали про это в статье «Сделали «ФИАС» на основе ГАР». Емейлы нужны, чтобы оценить потенциальную нагрузку на сервера, с которых будет скачиваться справочник и чтобы понять, а нужна ли вообще кому-то эта выгрузка. А то может желающих миллионы, и нам надо бежать, наращивать серверные мощности, чтобы держать регулярную нагрузку. Или, наоборот, никому справочник не нужен, так зачем его вообще поддерживать? :-)

Мы не перепродаем ФИАС. Наоборот, раздаем сделанный на основе ГАР справочник в формате ФИАС бесплатно и делимся знаниями про ГАР в телеграм и на ютьюб-канале.

1 сентября 2021 года ФНС перестала выпускать справочник в формате ФИАС с dbf, а оставила только ГАР в xml. Мы сделали конвертер из ГАР в ФИАС и стали раздавать всем желающим справочник в формате «ФИАС», т.к. не все системы успели поддержать формат ГАР в xml.

Об этом переходе стало известно кажется месяца за три до этого перехода. Идеологически более верно дать людям "удочку" и научить их самим парсить эти базы, вместо того, что зависеть еще от одной третьей стороны, которая перегоняет новые базы в старый формат, тем более, что ваша статья вышла уже через месяц после такого перехода.


Чтобы получить справочник «ФИАС» из ГАР мы просим указать емейл, писали про это в статье «Сделали «ФИАС» на основе ГАР». Емейлы нужны, чтобы оценить потенциальную нагрузку на сервера, с которых будет скачиваться справочник и чтобы понять, а нужна ли вообще кому-то эта выгрузка.

Ну… чтобы скачать публичные и открытые данные, нужно вводить на какой-то сайт свои персональные данные. Причем нигде нет ссылки ни на оригинал, ни на скрипты, которыми этот переход делается.


На том же hetzner инстансы с 20 ТБ трафика стоят довольно тривиальные деньги. С около нулевыми расходами у меня получалось хостить даже датасеты терабайтного размера (да и есть некоммерческие и научные хостинги для таких больших данных).


Поэтому наверное позволю себе усомниться в истинности таких намерений (более того, не всем нужно качать сразу все регионы). Вы могли выложить скрипты и ссылку на первоисточник и скрипт, и никакого трафика бы в принципе не возникло. Но вы почему-то сделали иначе.


Мы не перепродаем ФИАС. Наоборот, раздаем сделанный на основе ГАР справочник в формате ФИАС бесплатно и делимся знаниями про ГАР в телеграм и на ютьюб-канале.

Если вынести позитивный анализ за скобки, пусть каждый читатель сам сделает для себя вывод.


Нам активно продают будущее, где мы ничего не можем и ничем не владеем. От нас прячут источники. Нам рассказывают, что мы должны покупать корпоративные экосистемы.


Будущее в наших руках. Каждый должен сам сделать вывод, за какое будущее он голосует.


Статья очень ценная, информации про ГАР не так много, спасибо что поделилась своими наработками.

И почему-то именно после вашего комментария "очень ценная" статья на не самую массовую и популярную тему стала резко набирать минусы… интересно. Причем число этих "резких" минусов примерно соответствует числу сотрудников, у кого у вас RW карма.


Хабр конечно не VC, чтобы показывать кто что лайкает, но на определенные выводы меня это наводит.

Идеологически более верно дать людям "удочку" и научить их самим парсить эти базы, вместо того, что зависеть еще от одной третьей стороны, которая перегоняет новые базы в старый формат, тем более, что ваша статья вышла уже через месяц после такого перехода.

Да, мы сначала рассматривали вариант, чтобы дать конвертер для самостоятельного парсинга. Конвертер писался на скорую руку, и в данный момент использует часть уже имеющейся у нас инфраструктуры, которую мы не можем выложить в открытый доступ. А для того чтобы подготовить, выложить все опенсорс и описать, нужно потратить определенное время и ресурсы команды. И ресурсов на это уйдет больше, чем выкладывать справочник.

Поэтому решение о временном выпуске справочника «ФИАС» из конвертера удобно для пользователей и для поддержки.

В конечном итоге, все должны прийти к тому, чтобы использовать ГАР, который предоставляет ФНС, а не жить постоянно с конвертером из ГАР в «ФИАС».

Поэтому вы компанией минусите статью человека, бесплатно поделившегося своей работой, потратившего много времени и усилий на то, что вы не сделали, после того как он в личке отказался удалять справедливую адекватную критику. Лицемерно говоря "Молодец, хорошая статья".

Интересно. Компания, специализирующаяся на данной тематике, не смогла "потратить определенное время и ресурсы команды", а одна девушка смогла и просто поделилась.

И, о ужас, она отказалась по вашей просьбе цензурировать свое мнение и вы тупо сливаете ее статью.

Как показательно.

В итоге в сухом остатке по итогу статьи habr.com/ru/post/692182/ :

  • Справедливость восстановлена, факт коллективного слива этой компанией публично задокументирован

  • Статья получила больше exposure

  • Карма восстановлена, теперь вы ее слить не сможете даже если всей толпой проголосуете

  • Вероятно если проголосуете, то хабр уже с вами что-то сделает

    Удивительно и занятно, что не прокатило, не так ли?

На дворе был 2021 год, а нагрузку всё так же определяли не по фактически скаченным данным, а по количеству присланных е-майлов.
Годах в 15-16 делал похожий проект — с поправкой на КлАдр вместо ФИАС — для объединения собственно адресного справочника с выпиской телефонных кодов (те что «открытые данные») и корпоративного доступа к ним средствами используемой СУБД. Даже в во много раз меньшим объёмом данных (КлАдр против ФИАС) и заметной простоте исходных таблиц (DBF и CSV соответственно) приходилось делать отдельную таблицу для исключений из общих правил заполнения как КлАдра, так и выписки кодов, чтобы merge прошёл успешно. Причём каждое (еженедельное, ЕМНИП) обновление любой из исходных таблиц порождало новые исключения, иногда исключения исключений, и вынуждало вручную править эту таблицу исключений, хоть и подозрительные записи выявлялись автоматизированно при обновлении.
Какой бедлам творится сейчас в этих базах — не представляю :)

Через тернии к звёздам. Но базы всё-таки есть и становятся лучше, хоть и медленно.

С другой стороны «лучшее — враг хорошего». Несомненно, КлАдр имел свои недостатоки и ограничения, однако его несоизмеримо меньший объём наверняка будет неоспоримым преимуществом. Пусть ФИАС и ввёл уникальные ключи любой сущности, но, имхо, база раздута чрезмерно и неоправданно.
Ещё вспомнилось, к чести «хозяина» выписки телефонных кодов (по крайней мере в то время), все отправленные мной на публичный email абузы с несостыковками в таблицах (очепятки, дубликаты, перемешанные части строк и т.п.) исправлялись, пусть иногда и через месяц-полтора, но чаще в ближайшем обновлении. По крайней мере для этой базы вышеупомянутая мной таблица исключений уменьшалась в разы по сравнению с самым первым состоянием.
Остаётся загадкой, почему подобные ошибки не выявлялись сразу при заполнении или выгрузке, ведь даже мой несложный скрипт на пару сотен строк легко их выявлял.

Меня лично в этом всем пугает ещё и откровенно сложный формат подачи - цепочки, xml, много легаси.

Не берусь судить почему они так выкладывают, но 100% можно пожертвовать какими-то историческими особенностями и сделать проще. Чего стоит только отсутвие унификации полей всяких корпусов и строений.

Но наверное это является отражением каких-то внутренних неведомых нам процессов.

Добрый день,
Согласно AS_MUN_HIERARCHY_2_251_10_04_01_01.xsd в файлах AS_MUN_HIERARCHY_*.XML нет поля PATH. Да и в файлах AS_ADM_HIERARCHY_*.XML тоже. Можно узнать, откуда вы получили эту информацию?

Вы используете xml.etree.ElementTree и парсите XML целиком в память. Я столкнулся, что при обработке XML файлов размером по несколько сотен мегабайт и даже пару гигабайт, это происходит - ну очень долго:) Да и памяти нужно много. Я обрабатываю эти файлы, используя lxml, и делаю for event, element in ET.iterparse(xml_file, encoding='utf-8'). При этом сохраняю все данные в csv файл, который потом импортирую в постгрес, из которого уже можно делать все, что угодно. Получается относительно быстро.

А вообще, ФИАС - очень веселая система:)

Если не ошибаюсь, поле PATH упоминается в документации, но не в схеме xsd. И это поле присутствует не во всех регионах.

Насчет очень долго - для нас терпимо, памяти у нас достаточно, поэтому мы не искали способы сделать это более эффективно.

Постгрес мы любим и используем, но сложные манипуляции с данными давно делаем в питоновых скриптах, так как работаем в основном со звуком, и там постгрес нам не поможет.

Спасибо за хороший совет для обхода проблем с памятью)

Меня больше пугает то, что если бы мы разбирали каждую версию ФИАС в какую-то нормализованную и упрощенную версию и начали бы вести version control допустим через тот же постгрес (вроде в ФИАС есть uuid для каждого объекта?), то наверное нас ждало бы еще больше открытий.


Не знаю готовы ли мы морально к такому =)

Sign up to leave a comment.

Articles