21 2 月

政府實價登錄資料購買心得

是的, 前陣子因為在做 houz (好室聯搜網)行情系統, 所以開始接政府的實價登錄資料。當然一開始曉得有 Open Data 可以下載, 而最原始我寫的 import 程式也是接 Open Data 的 XML, 但是後來間接得知同一批資料可以用購買的, 而購買的資料多了每一個物件的座標。這可是精準多了, 我原本用的爛招很不可靠, Open Data 上的地址都是模糊過的區間, 例如指南路一段 1~50 號這種, 所以得到他座標的方式是使用 geocode 查詢指南路一段 25 號這種很不可靠的方式去做查詢, 非但座標一定不怎麼準確, 連帶著 geocode 也很有可能因為使用量太頻繁或量大而爆掉。想當然的, 我們就多了一些成本但提供較準確的資料。

但我覺得這一切, 內政部的系統都沒有做得很好。

系統安全

首先, 先來看一下登入畫面:

lvr-login

眼尖的人應該看得出問題在哪兒, 我第一次碰到這個畫面時我人在咖啡廳只用 public wireless, 所以我當下心裡只想著, 看來我非得要到我比較信任的網路才能使用這個網站的登入。要不然, 就是我只能用一個我很不常用的密碼, 否則到底誰聽了我的資料也都不曉得。雖然我不是非常專業的安全專家, 不過這個真的是, 連最基本的防護都沒有做。

收費方式

註冊成功後準備要申請資料時, 就會看到下列畫面, 包含著收費方式。

內政部及所屬機關提供政府資訊收費標準 條款內容
一、本標準依政府資訊公開法(以下簡稱本法)第二十二條第二項規定訂定之。
二、閱覽、抄錄或攝影政府資訊,每二小時收取費用新臺幣二十元;不足二小時,以二小時計算。
三、重製或複製政府資訊,依政府資訊重製或複製收費標準表(如附表),收取費用。前項收費標準表未明定之項目,按重製或複製工本費,收取費用。重製或複製政府資訊,如另需提供郵寄服務者,其郵遞費用以實支數額計算。
四、申請政府資訊供學術研究或公益用途者,於申請時應檢附相關證明文件,經核准後,除郵遞費用仍以實支數額計算外,其餘費用,減半徵收。
五、申請之政府資訊屬規費法第十二條第一款所定辦理業務或教育宣導資料者,得免費提供。
六、本標準所定之費用,其收取應依預算程序辦理。
七、內政部所屬機關業務性質特殊者,得另定提供政府資訊收費標準。
八、收費標準:資料量小於等於100mb 收費新台幣2000元整,資料量大於100mb 不足500mb 收費新台幣4000元整,資料量500mb以上 收費新台幣6000元整。

其實依照這種情況, 大概就可以猜得出來, 一開始他們預設的使用者應該是屬於做學術研究之類的人, 一次查詢某個區間的資料並且以量計價。但我們剛好不是, 我們是想要在最新一批資料揭露的時候, 就趕緊批次購買。很顯然上述這種收費方式對我們非常的不利。

資料期間 (申報期間) vs. 交易期間

但其實對我們造成最大困擾的, 是網站上的用字不清導致的。

lvr-apply

在申請 (購買) 時出現的畫面如上圖, 第一個出現的欄位為「資料期間」, 第一個印象想到的就是交易日期的區間, 也就是我們要 query 的交易日期區間。

然而, 當我們把資料購買下來後, 發現了交易日期很明顯有超出這個期間的範圍, 於是在聯絡了相關單位後, 才了解此「資料期間」是業者申報的時間, 而非交易的日期。業者很有可能在交易後一兩個月才申報, 因此會有時間差。

儘管相關單位如此解釋, 但網站上的頁面很清楚的是不一致的, 因為當我在查詢我所申請過的資料時, 該頁面卻長這樣:

lvr-query

字面上的混淆讓人完全摸不著頭緒。不論如何, 這個頁面上的「交易期間」一定是字面上的錯誤了。

資料重複與比對

購買下來的資料, 基本上是沒有 unique id 的, 因此當我們過了一個月, 準備要銜接下一個月的資料時, 發現有大量的資料重複 (肉眼觀察)。最基本的問題就是在於上一個段落寫的申報期間與交易期間的落差, 因為字面上的誤解導致我們第二次購買的資料有大批的重複現象。然而當我想要手動濾掉重複的資料時, 卻無法在我們這一端做, 原因有二:

  1. 資料並沒有附上任何的 unique id。而兩筆所有欄位都一模一樣的資料, 有可能是重複的, 也有可能是不重複的, 因此完全無法辨識。
  2. 申請購買資料時, 所用的是申報期間, 但購買下來的資料卻沒有這個欄位, 因此根本無法比對。

無法與 Open Data 同步

就因為上述資料重複無法比對, 且 Open Data 每兩週釋出的基準為「交易日期」兩個月前的資料, 但購買時使用的基準是「申報日期」, 因此根本無從與 Open Data 同步取得最新的資料。

另一個問題是購買時所使用的最小單位是月, 例如 102 年 12 月, 但是實價登錄每兩週就揭露一批新的資料, 因此根本無法每次只購買新揭露的資料。

若是有個方式可以比對重複的資料, 則每次範圍有些重疊, 再濾掉匯入過的資料即可得到正確的資料。但無論如何, 問題的最根源還是在於政府實價登錄釋出的基準與購買資料時完全沒有搭配在一起。

資料格式

Open Data 提供的格式為 TXT, CSV 與 XML。然而購買的資料卻是 XLS orz。這是一件很令人吐血的事情。不負責任的猜測, 原始資料是放在 Microsoft SQL Server, 而這些資料從 SQL server 選擇好欄位後直接 dump 到 Excel 檔。雖然吐血但還是勉強可以接受, 有總比沒有好。不知道哪一天可以像資訊大廠一樣, 直接提供 API 然後吐 json 出來, 這樣大家應該都很 happy。

其實我認為當前所有的 Open Data 應該都要提供這種串接方式。

結論

簡扼的做一個小結, 這個網站在使用時請不要在免費的無線網路使用, 以免帳號密碼或身份證字號被駭客取走。申請資料時的資料區間為申報日期的時間, 並非交易日期。而由於購買來的資料沒有 unique id 以及所謂的資料區間, 若是購買到重複的資料將無法辨別哪些是重複的。網站上的許多標示不清, 資料也無法預覽是目前這個系統很大的問題。無法預覽我根本無法知道最新的資料是到哪一個區間, 而購買就是 2000 起跳。

以上就是為什麼 houz 的行情拖了快要二十天才把 12 月份的資料發佈。這個農曆年一過完後, 我立即購買了去年 12 月的資料 (兩個月前, 也就是最新的一批), 就發現上述一大堆問題。最後為了避免重複, 等到 2/16 才把 12 月份整個月份的資料弄出來。

我其實大概可以理解為什麼購買的流程會無法搭配在一起, 我猜測是因為原本在規劃時, 就沒有想到會有這種 user scenario。然而我們之所以會用這種方式, 純粹就是為了要有座標。但無論如何, 都還是需要改進。比方說, 假設 Open Data 資料的欄位就已經可以滿足我們, 但還是需要使用到購買的這個流程, 原因是 Open Data 開放下載的只有當前的兩週, 如果我需要歷史資料外加之後所有的 update, 我勢必還是需要購買之前的資料, 然後他需要與 Open Data 的資料切齊, 才能避免重複。當然除非 Open Data 之後開放所有歷史資料就沒有這種問題了。

其實在這一次事情發生之前, 我就已經跟相關單位接洽過, 而取得最新資料的方式也還在跟洽詢, 希望政府的相關單位在這一塊可以做得越來越好。經過幾次聯繫得到的回應比我原本預期想像的好很多, 就繼續看後續的發展吧!