Open Data 上架檢核流程

最後編輯:2016-11-10 建立:2016-10-26 歷史紀錄
    Leo Cheng官方名稱叫做「政府資料品質提升機制」
    Leo Cheng目前規劃上為於資料集上架時即進行檢查,以降低產製報告時的系統負擔並提升效率。

 

 

RONNY W以下內容是供國發會 data.gov.tw 參考由各部會資料承辦人上架資料時,能夠怎麼樣檢核資料是否乾淨[

 

  • [A] 承辦人上傳資料
    • Leo Cheng這裡會需要強調 data.gov.tw目前沒有保留資料的空間,因此會是對資料資源連結進行下載驗證
    • 如果是 zip rar 7z 檔,到 [B]
    • 如果是 json 檔,到 [C]
    • 如果是 xml 檔,到 [D]
    • 如果是 csv 檔,到 [E]
    • 如果是 xls, xlsx, ods 檔,到 [F]
    • 如果是 pdf, doc, docx 檔,到 [Z]
    • LEO C※如果是 API, WebService
    • ※如果是 kml, kmz, shp 檔
    • ※如果是 txt檔
    • ※如果是 其他檔,直接到 [Z] ?
  • RONNY W[B] 遇到壓縮檔 (zip, rar, 7z...)
    • 解壓縮開來,如果裡面只有一個檔案,以這個檔案回到 [A]
    • 如果解壓縮有多個檔案,進到 [Z]
      • PS: 這邊可以列入一些檔名忽略清單,例如 README.txt schema.csv ... 之類的,去掉這些檔案後還有多個檔案才需要進入 [Z]
        Leo Cheng若是像 http://data.gov.tw/node/6380 這種的,也是直接歸類為[Z]嗎?
  • [C] 遇到 JSON
    • 進行 JSON syntax 檢查,如果檢查失敗直接進到 [Z]
    Leo ChengJSON跟XML是不是也會遇到編碼問題?
    Ronny Wang不會有編碼問題,因為 JSON 和 XML 的標準就是 UTF-8 ,如果沒照標準改用其他編碼,就直接視為不合法JSON 或是 XML
    Leo Cheng恩恩,這部分有多少不合格可能要先評估看看
    • 如果 syntax 檢查沒問題,進到 [C1]
  • [C1] 乾淨 JSON
    • 內容檢查,如果是 table 格式的 JSON ,將之轉成 csv ,並且把欄位取出進到 [Y]
    • 不認得的 JSON 格式,就進到 [X]
  • [D] 遇到 XML
    • 檢查如果是 xlsx 或是 ods 的 XML 檔,進到 [F]
    • 進行 XML 文法檢查,如果檢查失敗直接進到 [Z]
    • 如果 syntax 檢查沒問題,進到 [D1]
  • [D1] 乾淨 XML
    • 內容檢查,如果是 table 格式的 XML ,將之轉成 csv ,並且把欄位取出進到 [Y]
    • 不認得的 XML 格式,就進到 [X]
      • Ronny Wang這邊或許可以檢查是否是特定格式的 XML ,就我所知預決算好像有標準 XML 格式,他不會是 table 格式,但是也可以額外標記出來,供預決算研究人員用
        Leo Cheng這的確是個問題,如果是非table格式的XML到底算不算標準? 又主要欄位應如何判別?
  • [E] 遇到 CSV
    • 強制作一遍 utf-8 轉 big5 再轉回來,如果內容不變表示確定是 utf-8 CSV ,進到 [E1]
    • 如果確定是 big5 csv ,把他轉成 utf-8 csv ,再進到 [E1]
  • [E1] 處理 UTF-8 CSV
    • 把第一行欄位抓出來檢查,如果有欄位是純數字內容(Ex: 「台北市,123,456」或是有重覆 「縣市,金額,鄉鎮,金額」 就視為有錯誤,到 [Z]
    • 第二行之後每一行檢查,如果有哪一行欄數大於第一行,就視為有錯誤,到 [Z]
    • 從第二行開始對每一列各自檢查,如果有哪一列有 95% 都是純數字,但是少數幾行卻有非純數字情況,有可能是把「總計」這種資訊也列入了,可能是不乾淨的 CSV ,到 [Z]
      • PS: 這一步驟其實有可能誤判,最好再加上人工檢查
    • 沒發現錯誤,到 [Y]
  • [F] 遇到 xls, ods
    • 檢查是否有用到合併儲存格、繪製框線或是儲存格背景色,或使用公式,有以上情況,就進到 [Z]
    • 如果有使用多分頁的話,就進到 [Z]
    • 如果沒有以上情況,表示是個轉成 csv 也不會流失資訊的 xls 或 ods,就把他轉成 csv 之後進到 [E]

 

 

完結動作

  • [X] 將這個檔案上架,不視為不乾淨資料,但是標記為非 sheet 格式資料,不做額外處理
    • 使用者仍可下載承辦上傳的資料
  • [Y] 將這個檔案上架,標記為乾淨表格,並把資料轉成 CSV 存在資料庫中
    Leo Cheng也就是說,這裡的CSV都只會是UTF-8囉?
    Ronny WangYes ,因為在 [E1] 時已經都轉成 UTF-8 了,如果使用者是 Excel 需求的話,可以下載轉出來的 ods
    • 使用者可下載承辦上傳的原始資料
    Leo Cheng這裡會區分為原始資料跟轉換後資料? 那轉換後的資料資源是就放在我們平台囉?
    Ronny Wang加這個是避免平台處理過程誤判將原始資料的一些資訊流失掉,轉換後的資料就是存在平台上面了
    Leo Cheng那平臺會需要規劃容量放東西了... 以一個資料資源10MB來估,先前看有到30,000筆資料資源,這樣應該要估到300GB的容量,依照這個發展速度,上限應該抓在600GB?
    Leo Cheng20161026更新:會內仍堅持不保有資料資源以迴避資料同步問題。
    • 使用者可下載轉成 CSV 的乾淨資料
    • 平台提供自動轉成 xls, ods, json, xml 等功能,另外可以自動取出欄位列表帶入平台的欄位說明中
      Leo Cheng這裡還是要表達會內想遏殺xls的立場XDrz
      Leo Chengbtw, 如果都以CSV為基礎的話真的是很好處理,這樣轉換JSON, XML都不會是問題。但轉ods我沒找過工具就是
      Leo Cheng還有一個問題,產製後是一樣要放在平臺? 還是即時轉換呢? 這會大幅影響到平臺規劃。

 

  • [Z] 將這個檔案上架,但是標記為平台無法解析,不做其他處理,並在各部會檢核時被列入不乾淨資料的統計中,並記錄是從哪個流程進到這步,供資料承辦參考改進
    • 使用者仍可下載承辦上傳的原始檔案