SAS Loves Big Data via Hadoop ~Big Data Driven Innovation~ 惟高裕一, 北西由武, 都地昭夫 塩野義製薬株式会社 SAS Loves Big Data via Hadoop ~Big Data Driven Innovation~ Yuichi Koretaka, Yoshitake Kitanishi, Akio Tsuji SHIONOGI & CO., LTD. 1
要旨 : シオノギで構築した Hadoop 環境の紹介,Hadoop と SAS を連携させる方法, およびその留意点, さらにはそれらを利用したデータ解析事例について報告する. キーワード :Big Data,Hadoop,hive,HDFS,Open Data, SAS/ACCESS Interface to Hadoop 2
内容 背景 Hadoop 環境の紹介 Hadoopとは シオノギのHadoop 環境 SAS と Hadoop の連携 SAS/ACCESS Interface to Hadoopに触れてみて 解析事例 3
Big Data の近況 ( 特に医薬関連 ) 世界では, 各製薬会社がデータを提供し相互利用化が進み始めている (Data Sphere) EU では透明性を主目的にした臨床試験データ公開の動きがある 医薬品産業会でのビッグデータ活用に向けて新たな学会が作られてきている (Big DIP など )
医薬関連の Big Data (1/2) 製薬業界における Big Data 解析ニーズの高まり 社内データ PGx Safety Surveillance オープンデータ 添付文書データベース 医薬品副作用データベース (JADER/AERS) Real World Data (Claim data, EHR) Open FDA その他多数 * EHR: Electronic Health Record 5
医薬関連の Big Data (2/2) 複数のデータベースを融合させることで, 新しい知見が得られるかもしれない 医薬品副作用 DB シグナル検出 添付文書 DB Claim data 市場調査 EHR アイデア次第で DB の組み合わせは多数考えられ, 組み合わせ数に応じてデータは大きくなってくる 6
ひとつの選択肢として データ量と処理リソースの膨張し, 処理速度やデータ容量がネックとなってくる Hadoop 環境での解析 高度な Java プログラミングの知識が必要 製薬会社のプログラマにとっては敷居が高い SAS/ACCESS Interface to Hadoop の利用を考えた 7
内容 背景 Hadoop 環境の紹介 Hadoopとは シオノギのHadoop 環境 SAS と Hadoop の連携 SAS/ACCESS Interface to Hadoopに触れてみて 解析事例 8
Hadoop とは Google の基盤技術に基づき,OSS * として実装された大規模分散処理フレームワーク Hadoop 環境 スレーブ スレーブ 拡張可能 拡張可能 マスター + 統計処理用 スレーブ スレーブ 拡張可能 * OSS: Open Source Software
Hadoop とは HDFS * という分散ファイルシステム,MapReduce という分散処理システムを基本機能とする MapReduce HDFS Hadoop 環境 * HDFS: Hadoop Distributed File System
HDFS 分散ファイルシステム 1 つのファイルを分散して保持する 1 台の PC では扱えないようなサイズのデータを扱える 2TB 実際は分割したデータのコピーも保存されており, どこかの PC が壊れても問題ない 8TB 2TB 2TB 2TB
MapReduce 分散処理システム 処理を分散させて行う Mapper 分解 抽出 Map Reducer 集約 計算 Reduce Map input Map Reduce Output Reduce Map 12
Hadoop (HDFS+MapReduce) 基本の Hadoop 環境だけで出来る処理は限られる MapReduce 処理のためには,Java のプログラミングスキルが必要であり, 敷居が高い Hadoop エコシステムが提供されている 13
Hadoop エコシステム HDFS,MapReduce といった基本機能を支えるツール群の総称 Hadoop の使いにくい面を補うものとして, 様々なエコシステムが提供されている Hive Mahout Pig MapReduce HDFS Hadoop 環境 Pig 14
Hive HiveQL という SQL ライクな言語で HDFS 上に存在するデータを操作できる Pig PigLatin という言語を使って,HDFS 上のデータを操作できる Mahout ビッグデータを用いた機械学習 ( レコメンド, クラスタリング, 分類 ) を可能にするライブラリ 15
塩野義製薬解析センターの分散処理システム スレーブ スレーブ 拡張可能 拡張可能 SAS/ACCESS Interface to Hadoop マスター + 統計処理用 分散処理 拡張可能 Windows PC (PC-SAS) スレーブ スレーブ 拡張可能 拡張可能 16
内容 背景 Hadoop 環境の紹介 Hadoopとは シオノギのHadoop 環境 SAS と Hadoop の連携 SAS/ACCESS Interface to Hadoopに触れてみて 解析事例 17
SAS/ACCESS Interface to Hadoop SAS と Hadoop を Hive 経由で接続できる 連携のための環境設定がやや複雑 連携させられれば使い方はシンプル SQL Hadoop FREQ RANK *PROC RANK in-database processing is not supported by Hadoop. REPORT SORT **The NODUPKEY option is not supported on Hadoop with in-database processing. SUMMARY/MEANS TABULATE etc. *proc hadoop から pig での操作も可能 (SAS 9.4 help より ) 18
Hadoop に接続して解析を行う (1/2) Hadoop 側で準備しておく 下記コマンドを実行 /usr/lib/hive/bin/hive --service hiveserver Point: -hiveconf で Hive 側の設定を指定可能 ex.) Reducer の数を指定する場合 /usr/lib/hive/bin/hive --service hiveserver -hiveconf mapred.reduce.tasks=25 19
Hadoop に接続して解析を行う (2/2) SAS 側で通常と同様に計算を命令 HDFS 上のライブラリを指定 計算処理 option set=sas_hadoop_jar_path= D: hadoopjar"; libname hd hadoop server = [XXXXXXXXXX]" user = [aaaa] password = [xxxxx] SUBPROTOCOL=hive; proc means data=hd.simdata mean ; run; 処理 結果を受け取る Hive MapReduce HDFS 命令を投げる
解析事例 (OSIM2) OMOP * が公開している,MarketScan Research Databases などの商用データベースをもとにシミュレーションから作成されたデータベース Real World Data の解析手法研究などを目的としている 単純な頻度集計を行って処理速度を比較してみる 使用するデータ OSIM2に含まれる薬剤情報のデータ 必要な変数だけに絞って約 30GB 程度にした 118,541,933オブザベーション * OMOP: Observational Medical Outcomes Partnership 2009-2012 Observational Medical Outcomes Partnership 21
proc freq data=hd.kore_temp2 order=freq; table CONCEPT_NAME; run; 結果抜粋 Hadoopを使用 :48 秒 通常のSAS :4 分 31 秒 本事例では,Hadoop を使うことで一定のメリットが得られた 2009-2012 Observational Medical Outcomes Partnership 22
まとめ 世間の流れと同様, 医薬関連データの量も増加の一途を辿っており, 並列演算処理できる環境が必要となってきている Java プログラマに頼らず,SAS/ACCESS Interface to Hadoop を使って SAS プログラマフレンドリーな環境を整えることは選択肢の一つである 23
今後 将来的には,SAS プログラマが Hadoop 環境を意識せずに解析を行えることが理想である Hadoop の得意な処理を把握し,SAS の処理と使い分けることが重要である 24
参考文献,Website はじめての Hadoop ~ 分散データ処理の基本から実践まで, 田澤孝之, 横井浩, 松井一比良, 技術評論社 (2012). Observational Medical Outcomes Partnership, http://omop.org/. 25