アスタリスク付きのタスクFIASをKLADRにトランスコヌドした方法





1月1日から、連邊皎務局はKLADRアドレスディレクトリの曎新を停止したす。 正匏には廃止され、FIASのみが残りたす。 しかし、倚くの産業甚システムはただCLADRで動䜜したす。 サプラむダヌはそれらを曎新する぀もりはなく、自分の手でビゞネスをやり盎すのは長くお費甚がかかりたす。



お客様の声に耳を傟け、解決策を思い付きたした。すべおの生き物よりも生き生きずしたFIASを䜿甚し、KLADRでトランスコヌダヌを䜜成したす。



倖郚からは、タスクは簡単に思えたす。 圌らは私たちにこう蚀った「あなたはただFIASを取り、KLADRでそれを䜜り盎したすか」 実際、「ただ」はありたせん。 ディレクトリは完党に異なる構造を持ち、ポンプアップされたFIASから気取らないKLADRにデヌタを分散する方法は䞍明です。 同時に、リファレンスブック甚の䞀般的なドキュメントはありたせん。



私たちが今寛倧に共有しおいるのは楜しかったです。



マッピングされた参照構造



FIASの重量は玄28 GBで、テヌブルは玄450個ありたす。 KLADRは玄500 MBおよび6タグです。 KLADRのデヌタは、3぀のFIASテヌブルのみにありたす。 残りはトランスコヌディングに必芁ではなく、KLADRはそれらを提䟛したせん。







図の括匧内に「<i>」が含たれおいる堎合、各領域には同様の名前の独自のラベルがありたす



レコヌドごずのレコヌドの転送は倱敗したす。テヌブル間の接続、テヌブル内のロゞック、たたは䜕かが壊れたす。



たずえば、FIASでは、1぀の家はテヌブル内の1぀のレコヌドです。 喜んで家を次々ずKLADRに移したしたが、ディレクトリは臎呜的に腫れ䞊がりたした。通垞の500 MBに察しお3.5 GBです。



KLADR-控えめな、圌は家ごずに別々の゚ントリを買う䜙裕はありたせん。 したがっお、ディレクトリ内の同様の家は1行にグルヌプ化されたす。 同時に、青い目の数字は、カンマで区切られおNAMEフィヌルドに保存されたす。







家が同じ通りにあり、数だけが異なる堎合、それらは1行に蚘録されたす



次に、FIASの道路から道路のロヌドを開始し、蚘録に埓っお家をグルヌプ化したした。 カりントダりンするず、NAMEのカンマに倚くの数字が収たり、KLADRでこれらの家の䞀般的なレコヌドを䜜成したす。 ちなみに、NAMEは40文字です。物事はなくなっおいたす。







パスを繰り返すこずにした人向けこれは、FIASずKLADRの䟝存関係図がどのように芋えるかです



䞀般的な再コヌディングの問題同様のテヌブル間でフィヌルドを転送する方法は明確ではありたせんが、ドキュメントは圹に立ちたせん。 文曞は、ある参考曞を別の参考曞にのぞくためではなく、明確に曞かれおいるため、驚くこずはありたせん。



たずえば、FIASには次のフィヌルドがありたす。





これらの同じ目的のKLADRでは、2぀のフィヌルドのみ





どのコヌドに移怍するかは明確ではありたせん。



別の䟋。 これは、FIASのフィヌルドの説明です。





読むのも難しいですが、遞択の䜙地がないず仮定したす。 倱敗は、説明が䜕も明確にしないこずです。 「正匏名」ずは䜕ですか 圢匏化の効果は䜕ですか 䞻なものは、CLADRに転送するフィヌルドです。



その結果、連邊皎務局からKLADRずFIASを取埗し、フィヌルドの倀がディレクトリ間でどのように流れるかを監芖したした。 普遍的なレシピはないため、異質な転送ルヌルの暗闇が刀明したした。



CLADRコヌドの入手先を芋぀けたした



KLADR-code-KLADRディレクトリのメむン識別子。 その䞊でのみ、アドレスオブゞェクトを䞀意に決定するこずができたす。



FIASはCLADRコヌドも保存したす。 さらに、ディレクトリ内の最適化により、ADDROBテヌブルだけから、次の3぀の方法でコヌドを取埗できたす。





最初は、圌らはPLAINCODEで立ち埀生しおいたした。 チェックされおおり、元のKLADRにあるコヌドず䞀臎しない堎合がありたす。



倧䞈倫、コヌドがありたす 繰り返したすが、驚きです時間がた぀ず䞍思議に思うこずがなくなるほど頻繁に空になりたす。 空でない堎合、リラックスするには時期尚早です。その䞭のコヌドはPLAINCODEず䞀臎しない堎合がありたす。



最埌の砊にたどり着きたした。CLADERコヌドを自分で接着し始めたした。 そしお、あなたはどう思いたすか はい、コンパむルされたコヌドはしばしばPLAINCODEたたはCODEずは異なりたす。



FIASの厳しい珟実CODE= PLAINCODE=接着コヌド。 正しい識別子を取埗する堎所は明確ではありたせん。 リファレンスガむドの照合を開始し、50杯のコヌヒヌを飲んだ埌、パタヌンを芋぀けたした。





そしお、KLADRコヌドは公匏ディレクトリのコヌドず䞀臎したす。



蚈画構造ず远加のテリトリヌを転送する方法を理解した



開発者は、KLADRよりも倚くのレベルのアドレスオブゞェクトをFIASに提䟛したしたそれぞれ13および6。



さらに、KLADRには、「䜙分な」レベルのオブゞェクトがありたす。それは、蚈画構造ずドプテリトリヌです。 これらは園芞協䌚、囜の協同組合などです。それらは倧きな束葉杖でFIASから転送されたす。 圌らはこれを行いたす圌らは条件付きの庭のパヌトナヌシップを通りに倉え、それに埓属する通りの名前にパヌトナヌシップの名前を远加したす。



理論的には難しいですが、䟋を挙げお説明したす。 ガヌデンパヌトナヌシップ「Massive N2 ST Cherry」にLugovayaストリヌトがあるずしたす。 これらのオブゞェクトがFIASからKLADRに転送されるず、次のようになりたす。





ヒュヌマンロゞックの芳点からはひどいように芋えたすが、必芁なデヌタはKLADRに衚瀺されたす。 私たちは誰ず察戊したすか もちろん、同じこずをしたす。



名前の倉曎ず再送信の凊理



ロシアでは、郜垂、地域、通りの名前が垞に倉曎され、再割り圓おされおいたす。 たずえば、モスクワ地方のZheleznodorozhnyは40幎間郜垂でしたが、その埌突然バラシハの地区になりたした。



アドレスディレクトリには、䞋䜍互換性のために廃止された゚ンティティが栌玍されたす。 結果は、䞀連のバヌゞョンです。







郜垂V1がありたした。 名前が倉曎されたした-バヌゞョンV2がディレクトリに衚瀺されたした。 再割り圓お-V3。 V <k>たで続く



埓属の連鎖は、CLADRにないレベルを考慮しお転送されたす。 たずえば、チェヌン「ストリヌト→郜垂地区→シティ」は、FIASからKLADRに「ストリヌト→郜垂」ずいう圢匏で送信されたす。



FIASでは、CLADRにたったく存圚しないフィヌルドのみがオブゞェクトのあるバヌゞョンず別のバヌゞョンで異なる堎合がありたす。 たずえば、2017幎5月20日にMaykop垂はOKTMOを倉曎したした。79701000でしたが、79701000001になりたした。他に倉曎はありたせんが、FIASはオブゞェクトの新しいバヌゞョンを取埗したした。 倉曎されたデヌタがCLADERで提䟛されない堎合、オブゞェクトの新しいバヌゞョンのみを転送するのが正しいです。 私たちは過去がそうではなかったようにふりをしたす。



たた、堎合によっおは、再埓属により、オブゞェクトはCLADERにないレベルに移動したす。 兞型的な歎史オビラロフカ村→ゞェレズノドロゞュニ垂→バラシハ垂のゞェレズノドロゞュニ地区。 郜垂郚のレベルはKLADRではなく、Zheleznodorozhnyは第4レベルから第99レベルに移転したした。 増加しおいるように芋えたすが、いいえ99レベルでは、欠萜しおいるアドレスオブゞェクトが保存されたす。 郜垂があり、それは機密解陀された芁玠になりたした。 さらに、圌らはたた、cな方法で通りを再割り圓おしたした。圌らは、KLADRにいく぀かの集萜を䜜成し、それらにZheleznodorozhnyの集萜ず、Balashikhaの集萜を枡したした。



解決された略語の競合



FIASは、アドレス可胜なオブゞェクトのタむプの公匏の略語をすべお保存したす。

レベル SOCRNAME SCNAME KOD_T_ST
3 自治管区 AO 305
3 テリトリヌ テル 303
3 地区 地区 301
3 りルス で 302
3 垂区町村 m rn 309
KLADRには略語衚もありたすが、゚ントリは少なくなっおいたす。 FIASからKLADRに略語を単玔に転送するこずは䞍可胜です。レベルが䞀臎したせん。 いく぀かはそうではなく、他は異なる番号を持っおいたす。



長い間ディレクトリを比范したしたが、それでも連邊皎務局にきれいな氎を届けたした。 これが収瞮のレベルをどのようにシフトするかです。

FIAS クラッダヌ
0 X
1 1
2 1
3 2
4 3
5 X
6 4
7 5
8 6
9 X
35 X
65 5
75 X
90 X
91 X
「X」は、レベルが単玔に閉じおいるこずを意味したす。 このレベルでFIASにあったすべおの削枛は、CLADRに該圓したせん。 たずえば、ディレクトリには、郜垂内の領域、建物内の敷地、土地区画などはありたせん。



レベルシフトは、略語の䞀意の識別子であるKOD_T_STで問題を匕き起こしたす。 KOD_T_STは、削枛レベルず削枛ID自䜓の2぀の郚分で構成されおいたす。 FIASからKLADRに切り替えるず、レベルがシフトし、競合が発生したす。



たずえば、FIASの堎合





レベルシフト埌のCLADRでは





そしお今、私たちは堀防に行くべきか、それずも地区に行くべきかわかりたせん。



公匏のKLADRでは、問題は有名に解決されおいたす。矛盟する略語の1぀のコヌドでは、レベルの代わりに9が䜿甚されおいたす。 できるから。 このため、参照KLADRでは、地区の省略コヌドは511ではなく911であり、LEVELフィヌルドには5぀が残っおいたす。



もちろん、これに関するドキュメントには䜕も曞かれおいたせん。



フィヌルドでテスト枈み



連邊皎務局が提䟛するのず同じFLAからCLADRを䜜成したした。 3぀のパラメヌタヌで確認



  1. 構造。

  2. テヌブルのボリュヌム。

  3. 特別な゜フトりェアを䜿甚したす。



3番目の項目は、 ASVCheckナヌティリティによっおテストされたした。 圌女は、䜏所曞匏ずロシア銀行の指瀺ずの察応を確認したす。 ASVCheckで、CLADERをロヌドしおから、アドレスのリストをロヌドしたす。 ナヌティリティはディレクトリ内のアドレスをチェックし、゚ラヌを蚘録したす。



ASVCheckを介しお、ラむブバンキングレゞストリからアドレスを確認したした。 最初に、圌らは公匏のKLADRで運転し、それから圌ら自身の方法で運転したした。 それから、もちろん、違いを芋たした。



ASVCheckは謎の男だず蚀わなければなりたせん。 圌は䜏所を間違っおいるずマヌクした理由を述べおいたせん。 ランダムにデバッグされたす。 通垞、いく぀かの゚ラヌはナヌティリティのバグのように芋えたした。CLADRコヌドでディレクトリ内の゚ントリを䞊べ替えたずきに、アドレスの䞀郚を拒吊しなくなりたした。



しかし、すべおが正垞に終了したした。ASVCheckは、KLADRずFTSディレクトリで同じ結果を提䟛したす。



蚭定ず曎新でKLADRを取埗したした



今、私たちは䜕䞖玀も生き続けるKLADRを持っおいたす。 クラむアントはFIAS甚の゜フトりェアを急いでやり盎す必芁はありたせん。新しいディレクトリに接続するず、すべおが以前のように機胜したす。



CLADER HFLabs





12月の完党版を無料で提䟛しおいたす。ラむブシステムに展開しおテストできたす。



興味がある堎合は、 elenar @ hflabs.ru Elena Rastorguevaにメヌルしおください。 ゚レナは明確な質問をし、1日埌に新しいKLADRを送信したす。



All Articles