不動産システムあるある、他社との物件データ連動する方法

よく賃貸や売買の不動産システムを構築していく上で、物件の基本情報を他社から連動する依頼をよく受けるのでそのポイントをまとめてみました。

そもそも物件データ連動って何?

ここで言う物件データ連動とは、不動産会社が新しくサイトを構築する際に、既に利用している物件管理システムから物件の基本情報のみを新サイトへと流しこむ作業を意味します。物件基本情報のデータ入力の二度手間を省けるほか、データを一元管理できるので、不動産のWebサイト(ホームページ)の製作の際にはスタンダードな処理になってきます。ここで言う既存の物件管理システムとは、「レンターズ」や「いい生活」「RIMS」さん等を指します。

物件データ連動の難しい所

難しいのは、データの整合性です。新サイトではお金を使いたくないので、「国土地理協会」の住所データを使わないようにデータ調整したり、新サイトでは「駅データ.jp」を使いたいなどの要望に応えるために、幾つものハードルを超える必要があります。

物件データ連動の主な流れ

流れとしては、正直な所いろんなパターンがあり一概には言い難いのですが、ここでは一般的に使われているFTPでのデータ連動についてまとめてみたいと思います。
・物件データ取得先のデータ仕様を理解する
・データ連動時のルールを確認
・物件の件数(データ量)を確認
・画像の取り扱いを確認
・エラー時や正常終了時の対応確認
・プログラミング処理の実装&テスト

物件データ取得先のデータ仕様を理解する

ここが一番難しいです、住所情報や駅情報はもちろん、「インターネット無料」「コンビニ近い」とかの独自の条件が出てきたりします。それらをどう取り込むかや、組み合わせて条件を一致させたり、新しい文章を作ったりもします。
時には、駅からの距離を計算して徒歩○分を出したりと。。。まぁ大変っす。

データ連動時のルールを確認

まずは、物件データを取得しにいくのか、送ってきてくれるのかを決める必要があります。その他細かいルールを確認していきます。
・「zip」「tar」などのデータの圧縮形式
・「csv」「tsv」「json」などのデータフォーマット形式
・データやりとりの際の合図
特に「データやりとりの際の合図」に関しては、きちんと確認しておきまししょう。
合図によく用いられる方法として、フラグファイル方式がよく用いられます。
フラグファイル方式とは、例えば、「finish.txt」というファイルが存在する場合は、zipファイルを取得していいですよ、またはzipファイルの転送が完了しましたよという合図にするとか。「loading.txt」というファイルが存在する場合は、処理中なのでファイルの取り込みや転送はやめてね、と言った感じで、ファイルが有る無しで、状況を判断し的確な処理を行うというものです。
このルールを細かく決めておくと、時間による束縛がなくなり、好きなタイミングでデータ連動ができるので、後々の運用が楽になってきます。

物件の件数(データ量)を確認

処理時間にも関わってるくので、賃貸の情報だと特に物件データ量を気にする必要があります、中には、50万件や100万件といった大量のデータをやり取りする可能性も出てくるので注意が必要です。あまりにも多い場合は、処理を工夫したり、分散処理したりなどちょっと工夫が必要です。
戸建てやマンションなどは、僕の見る感じせいぜい10万件行かない程度なので、あまり神経質にならなくてもいいかなという印象です。

画像の取り扱いを確認

僕的には、画像は一元管理しててもらい、画像のURLやURLを生成可能な番号をやり取りするのが一番ベストだと考えますが。そうも行かない場合があるので、画像データを直接処理する要件の場合は、サーバのデータ量料に余力をもって設計しましょう。

エラー時や正常終了時の対応確認

処理完了時に何件取り込めて何件失敗したか、そしてなぜ失敗したかなど、ログ細かく出すようにしましょう。また、場合によっては、処理完了時にメールで知らせるような仕組みにしておくのもいいかもしれません。
また、データのバックアップをどのくらいの期間保持するかも、ここらへんで決めておいてもいいと思います。

プログラミング処理の実装&テスト

上記がしっかり決まれば、あとは、プログラムをゴリゴリ書いていくのみです。
その際のコツとしては、メモリを大切に使う事です。何万件というデータをループ処理していくので、都度メモリを開放したり、ガーベッジコレクションを上手く使うような処理を書いていくといいでしょう。PHPの場合は、メソッドを細かく切っていくことでこまめにメモリを開放できるので、意識してコーディングしていくのがコツです。
最後には必ず、相互に結合テストしましょう。理想としては、テスト仕様書を相互に設けて、必ずクリアしてくるようにするのがベストです。テストがしっかり出来ていないと、データが取得できないや送信できないならともかく、処理中に新たなデータを送りつけてくるなど、大惨事に繋がりますので注意が必要です。

最後にクーロンの設定

クーロンとは、設定したスケジュールで処理を実行してくれる機能です。
僕の場合は基本的に、データが存在するかどうかを確認する処理を1分毎に設定します。
「データやりとりの際の合図」で取り決めた「finish.txt」が存在する場合に、取り込み処理を実行します。

これで一通りが完了します。
後は、実際のデータを見たり、エラーログを気にしたりして、1周間程気にかけてあげて問題なければOKです。

おいくら?相場感

最後に、「不動産データのコンバート処理の相場」ですが、ざっくりと概算で30万円〜50万円が相場感だと思います。
データ取り込み元のカラム数(データの種類)やデータ件数、また取り込み先のWebサイトがどのようなデータ構成になっているかによって大きく変わってくるのでまずは相談してみましょう。