第四章 系統開發與實作
第一節 資料儲存之環境
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
38
第四章 系統開發與實作
為了要分析大量的健保申報資料,必須要實作出一個分散式的儲存及分析之 環境,本研究將採用Aapche Hadoop 及其相關專案 HBase、Hive 等,來達成預期 之目標。
第一節 資料儲存之環境
本節將介紹如何建構出一個分散式儲存之環境 一、 健保原始資料之描述
我國目前全民健保納保率達到99%以上,使得健保資料成為醫藥衛生相關領 域研究中具有代表性的實證資料,其研究成果可作為醫藥衛生政策的參考,為重 要的研究資源。自民國 87 年起,中央健康保險局(現改制為健保署)即委託國衛 院推動「全民健康保險研究資料庫」之建置,經過兩年籌備,本院自民國89 年 起提供學界健保資料庫加值服務,以利相關研究。(全民健康保險研究資料庫,
2014) 。
全民健保資料庫之內容包含基本資料檔以及原始資料檔,其資料來源為前一 年的健保資料中,選取可供研究使用的資料,並將個人隱私相關之欄位加密後,
交由國衛院製作成全民健康保險研究資料庫及各加值資料檔案。各檔案間的關聯 如圖 4-1 全民健保資料檔案間串檔變項說明圖所示,每個檔案的資料欄位名稱 和資料描述,在譯碼簿中有詳細的說明。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
39
圖 4-1 全民健保資料檔案間串檔變項說明圖
因健保資料資料庫之內容過於龐大,故向國家衛生研究院申請資料時必須註 明申請範圍,其詳細流程可參考全民健康保險研究資料庫網站之說明。申請得到 的資料皆是由國衛院從健保資料庫中抽樣出來的樣本,其中住院醫療費用清單及 醫令檔(佔母體 5%,每 20 筆取 1 筆);門診處方及治療明細檔及醫令檔(佔母體 0.2%,每 500 筆取一筆)。而本研究會使用到健保資料檔如表 4-1 本研究所採用 之全民健保申報資料所示:
表4-1 本研究所採用之全民健保申報資料
基本資料檔 原始資料檔
醫事機構基本資料檔(HOSB)
醫事機構基本資料檔(HOSB)
門診費用申請總表主檔(CT)
住院費用申請總表主檔(DT)
住院醫療費用清單明細檔(DD)
門診處方及治療明細檔(CD)
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
40
二、 HBase table 之設計
本研究依照全民健保資料檔案關聯圖來設計 HBase 中的資料表,並擷取研 究中所須用到的資料欄位存入HBase 之中,HBase 之中主要共有三個表 hospital 、 hospital_DD、hospital_CD,茲說明如下:
hospital:儲存醫事機構的基本資料。
hospital_DD:儲存了住院醫療費用申報相關的明細檔。
hospital_CD:儲存了門診醫療費用申報相關的明細檔。
因為row key 是 HBase 中存取資料的關鍵,每筆資料都會有其獨一無二的 row key,所以在各個 table 中,row key 的定義方式皆不太相同,其詳細的 row key 以及資料欄位定義如表4-2 HBase table 所示:
表4-2 HBase table
Table name : hospital
Row key Column family : information
醫事機構代號
AREA_NO_H :縣市區碼
HOSP_CONT_TYPE :特約類別 HOSP_GRAD_ID :醫院評鑑等級 HOSP_TYPE_ID :型態別
REVIEW_CODE :特約狀況碼(是否為違約醫院)
Table name : hospital_DD
Row key Column family : detail
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
41
醫事機構代號 +費用年月 +案件分類 +案件流水號
FEE_YM : 費用年月 HOSP_ID : 醫事機構代號 APPL_AMT :申請金額
Table name : hospital_CD
Row key Column family : detail 醫事機構代號
+費用年月 +案件分類 +案件流水號
FEE_YM : 費用年月 HOSP_ID : 醫事機構代號 T_APPL_AMT :申請金額
直接從HBase 取得資料一共有兩種方法 scan 與 get,scan 會對整個 table 做掃描,
並列出資料表的所有資料,而get 則是取得某一筆 row key 的紀錄。實際在 HBase shell 中取得資料的例子如圖 4-2 HBase Shell 的資料取得方式所示:
圖 4-2 HBase Shell 的資料取得方式
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
42
三、 Hive 之建構
因為HBase 著重於資料的存取效能,只有支援 scan 和 get,所以當需要 進行條件查詢時就必須自行撰寫程式以符合需求。Hive 提供了類似 SQL 的 語法稱為HQL,hive 剛好可以解決這類型的問題,這也讓使用者能更容易 取得想要的資料。
本研究針對醫事機構的基本資料表,建立了一個hive table 可供使用者 利用HQL 語法來查詢所需要的資料,例如:列出臺北市文山區所有醫事機 構的基本資料,就可利用一個簡單的HQL 語句來取得所需的資料如圖 4-3 Hive Shell 實際操作圖所示:
圖 4-3 Hive Shell 實際操作圖