要旨 : 医薬品開発における SAS プログラム開発において プログラムだけでなく その実行ログやデータセット 結果等の関連ファイルのバージョン管理を安全に行い 社内で共有する方法として git 及び SPITS を評価 検討した キーワード : SAS プログラム, バージョン管理, 共有, gi

Similar documents
TortoiseGit の基礎勉強 〜TortoiseGit によるバージョン管理を使う〜

はじめの一歩!ソースコード管理に必要なバージョン管理とは

Office365 AL-Mail

Maser - User Operation Manual

目次 専用アプリケーションをインストールする 1 アカウントを設定する 5 Windows クライアントから利用できる機能の紹介 7 1ファイル フォルダのアップロードとダウンロード 8 2ファイル更新履歴の管理 10 3 操作履歴の確認 12 4アクセスチケットの生成 ( フォルダ / ファイルの

スライド 1

改版履歴 版数 改版日付 改版内容 /03/14 新規作成 2013/03まで製品サイトで公開していた WebSAM DeploymentManager Ver6.1 SQL Server 2012 製品版のデータベース構築手順書 ( 第 1 版 ) を本 書に統合しました 2

PrintBarrierV3L50(V ) アップデート手順書 第 1.01 版 株式会社富士通アドバンストエンジニアリング 平成 25 年 3 月 7 日 1

ULTRA DRIVE とは インターネット上 ( クラウド ) に大切なデータを保存することができる便利なアプリケ ーション ( オンラインストレージ ) です 本資料について ULTRA DRIVE サービスは マイナーバージョンアップ等もあるため 実際のクライア ントと本資料に差分が発生する場

はじめに - マニュアルエディター機能の概要 - Dojoの種類とマニュアルエディター機能解除について マニュアルレイアウトの生成 - マニュアルレイアウトの生成 基本編集 4 - 表紙の挿入 4 - 目次の挿入 5 - 一括変換 6 4 マニュアルビルド 9 4- MS Word 9

[Unifinity]運用マニュアル

Cuoreテンプレート

CubePDF ユーザーズマニュアル

Proselfの利用方法

Shareresearchオンラインマニュアル

Git の基礎勉強 〜Git によるバージョン管理を使う〜

目次 Web インターフェースでのログイン方法 1 Web インターフェースから利用できる機能の紹介 3 1ファイルのアップロードとダウンロード 4 2 転送確認 ( ファイルのアップロード状況 ) 9 3ファイル更新履歴の管理 10 4 操作履歴の確認 12 5アクセスチケットの生成 ( フォルダ

(2) [ バックアップツール ] が表示されます [1] [2] [3] [4] [5] [6] Windows Storage Server 2012 バックアップ手順 (V_01) < 画面の説明 > [1] バックアップ項目リスト登録されているバックアップセットの一覧です [2] 新規 ボタ

TortoiseSVN の基礎勉強 〜TortoiseSVN によるバージョン管理を使う〜

Team Foundation Server 2018 を使用したバージョン管理 補足資料

<4D F736F F D208D C8FEE95F18DEC90AC A B D836A B2E646F63>

1. POP3S および SMTP 認証 1 メールアイコン ( ) をクリックしてメールを起動します 2 一度もメールアカウントを作成したことがない場合は 3 へ進んでください メールアカウントの追加を行う場合は メール メニューから アカウントを追 加 をクリックします 3 メールアカウントのプ

スライド 1

コンテンツアーカイブシステム SGI U-BOX 一般ユーザマニュアル 2013 年 6 月 25 日 メディア基盤センター & 日本 SGI 株式会社

ICLT 操作マニュアル (2011 年 05 月版 ) Copyright 2011NE 東京株式会社 All Rights Reserved

Windowsクライアントユーザーマニュアル_version+1_0_1_

WagbySpec7

BizDataBank とはインターネット上のクラウドサーバーを 自分のパソコンのハードディスクのようにご利用いただけるサービスです クラウドに格納したデータはパソコンだけでなく スマートフォンやタブレットでも自在にアクセス可能 さらに 大容量データの送信やメンバー限定のファイル共有など ビジネスや

インストール手順 2 セットアップの種類 [ 標準インストール (S)] [Thunderbird を既定のメールプログラムとして使用する (U)] にチェックを入れ [ 次へ (N)] をクリックします インストール手順 3 セットアップ設定の確認 [ インストール (I)] をクリックします 2

目次 1. はじめに WEB インタフェース... 4 アクセス方法... 4 操作方法 FTP クライアント FFFTP(WINDOWS) インストール方法 アクセス方法 操作方法 CYBERD

カルテダウンロード 操作マニュアル

Microsoft Word - XOOPS インストールマニュアルv12.doc

管理者向けのドライブ設定 このガイドの内容 1. ドライブの設定を調整する 2. パソコンにドライブをインストールする 必要なもの G Suite 管理者アカウント 30 分

Microsoft Word - RefWorksコース doc

差分比較とマージ 機能ガイド

< 目次 > Ⅰ. プラグインの設定 ( 管理者権限 ) P 1 Ⅱ. 帳票の設定 ( 管理者権限 ) 1. 帳票の追加 / 削除 (1) 帳票の追加 P 3 (2) 設定済帳票の削除 P 4 2. 帳票への表示 / 削除 (1)kintone フィールドの表示 1フィールドの表示 P 5 2サブテ

2. FileZilla のインストール 2.1. ダウンロード 次の URL に接続し 最新版の FileZilla をダウンロードします URL: なお バージョンが異なるとファイル名が

目次 1. はじめに 更新履歴 ログイン ログアウト ログイン時の URL とユーザー名 ログイン ログアウト トップ画面 活動一覧画面 活動情報の

OneDrive for Businessのご紹介

管理機能編目次 目次 1 管理機能 1) 物件データ登録依頼 2 2) 物件情報検索 8 3) ユーザー情報照会 10 4)WEB 依頼検索 15 管理機能編 1

作成するアプリ 本書は 楽々 Web データベースで 一覧アプリ を作成する方法を説明します 以下のような Excel ファイルの一覧表を題材に 楽々 Web データベースに Excel ファイルを読み込ん でアプリを作成し 使用するまで を説明します 課題管理表.xlsx タイトル詳細 内容対応優

<4D F736F F D208AC888D B836A F C91808DEC837D836A B81698AC7979D8ED A E646F6

Doxygenを用いた効率的な プログラム仕様書の作成

Microsoft Word - winscp-LINUX-SCPを使用したファイル転送方法について

カルテダウンロード 操作マニュアル

PowerPoint プレゼンテーション

WES7シンクライアントIE11アップデート手順書

目次 1. Azure Storage をインストールする Azure Storage のインストール Azure Storage のアンインストール Azure Storage を使う ストレージアカウントの登録... 7

Microsoft Office Visioによる 施設管理について

在庫のすぱいす説明資料

利用者

目次 1 Agatha 管理者向けマニュアルの概要 Agatha 利用前のご確認 管理者ページ 管理者ページでできること 管理者ページへのアクセス Agatha 管理者ページ画面 ユーザー登録の流れ...

2

ことばを覚える

電子納品チェックシステム利用マニュアル

スライド 1

FTP 共有を有効にする あらかじめ作成済みの共有フォルダーを FTP 共有可能にする設定を説明します 共有フォルダーの作成方法は 画面で見るマニュアル をご覧ください ファイル数の多い共有フォルダーを変更すると 変更が完了するまでに時間がかかる場合があります また 変更が完了するまで共有フォルダー

OneDrive for Businessのご紹介

部品ライブラリシステム

Microsoft Word - BJ-Trans_JW_SXFInstallguide.doc

V-CUBE One

大阪ガス株式会社 情報通信部 御中

PowerPoint プレゼンテーション

SELECT Server XM (ver

目 次 1. ログイン システムの操作 データ検索 検索 CSV 出力 台帳表示 位置確認 詳細表示 データ編集

クイックスタート [USB メモリのセキュリティ無料版用 ] 2 / 18 パソコンへのインストール セットアップファイルの名前は次のファイル名です 環境によっては ".exe" の部分は表示されていない場合もあります このファイルを実行 ( ダブルクリック ) して インストールを開始します エデ

intra-mart ワークフローデザイナ

1. WebShare 編 1.1. ログイン / ログアウト ログイン 1 WebShare の URL にアクセスします xxxxx 部分は会社様によって異なります xxxxx. 2 ログイン名 パスワードを入力し

不具合情報受付管理 DB 不具合情報対応情報要因 履歴登録 設備情報 不具合情報 対応情報 不具合 ( 履歴 ) 情報 機器仕様 納入情報 機器部品情報 関連資料 機器情報 交換部品情報 交換履歴 交換部品情報 保有部材管理 DB 保有部材管理 不具合情報 不具合先情報 不具合復旧情報 受付情報 対

Microsoft PowerPoint - 【Webnner】はじめてのHULFT-WebFT.pptx

Subversion の基礎勉強 〜Subversion によるバージョン管理を使う〜

Moodleアンケートの質問一括変換ツール

ホームページにパスワード認証を設定します 会員限定のページなどに利用できます 設定の手順 を設定するには 以下の手順で行います ユーザ登録 を設定したページにアクセスするためのユーザを登録します の設定 を設定するページ アクセスを許可するユーザを選択し 設定します 設定完了 を設定したページにアク

Microsoft Word - RefWorksコース( _.doc

0 新規工事を作成する デキスパート基本部を起動し 新規工事を作成します 0 デキスパート基本部を起動します カチッ! ダブルクリック カチッ! 0 新規工事を作成し 工事情報を入力します [ 新規工事 ] をクリックします 工事情報を入力します 入力

imageWARE Desktop Therefore連携ガイド

“nice to meet you”

Microsoft Edge の場合 (1) Mizdori 無料体験版ダウンロード画面の [ 体験版ダウンロード ] ボタンをクリックします (2) Edge の下部に mizdori_taiken_setup.zip について行う操作を選んでください と表示され ますので [ 開く ] をクリッ

PowerPoint プレゼンテーション

メール設定

intra-mart EX申請システム version.7.2 事前チェック

Transcription:

医薬品開発における SAS プログラム及び関連ファイルのバージョン管理と共有 川上貴弘 ( 電助システムズ株式会社 ) Version control and sharing of SAS programs and related files in drug development Takahiro Kawakami Densuke Systems Co., LTD.

要旨 : 医薬品開発における SAS プログラム開発において プログラムだけでなく その実行ログやデータセット 結果等の関連ファイルのバージョン管理を安全に行い 社内で共有する方法として git 及び SPITS を評価 検討した キーワード : SAS プログラム, バージョン管理, 共有, git, GitHub, 履歴管理, Version Control, share, SPITS 2

本スライドで使用する用語 (SAS 用語以外 ) VCS :Version Control System( バージョン管理システム ) git :VCSの1つ GitHub :VCSを使用するためのコードホスティングサービス SourceTree :GUI 版 VCS SPITS :SASプログラム情報管理ツール GitHub gif は ジフ だが git は ギット git git git 3

本スライドで使用する用語 リポジトリ : ソースコードの履歴情報を保存する場所 コミット : ファイルをリポジトリに登録する操作 クローン : リポジトリを複製すること プッシュ : 自分のリポジトリの変更内容を他のリポジトリに 登録する操作 プル : 他のリポジトリから自分のリポジトリに変更内容を 取り込む操作 ブランチ : マスターファイルを編集するために作成する作業 用コピー フォークと表現することもある チェックアウト : ブランチを切り替える操作 マージ : ブランチの情報をマスターに反映する操作 diff : ソースコード間の変更内容 (difference) リモートリポジトリ プッシュ プル ローカルリポジトリ マスター マージ ブランチ コミット チェックアウト 4

前提 基本的には社内サーバの共有フォルダにプログラムが置いてある git/github を使用した経験はない まずは導入して SAS プログラム開発との親和性を評価したい 新しいシステムを導入することによる学習コストやクラウドならではの問題が想定される SPITS は業務によっては使用している 社内で広く使うために 共通のファイルを管理 共有できる仕組みの工夫を検討した 5

SAS プログラム開発における背景 SAS プログラムは プログラムだけ管理できれば解決 ではない include するプログラムやその実行順序 マクロカタログ ( マクロ, フォーマット ) 実行ログ 実行結果 ( リスト, html) 結果を出力するテンプレート (Excel) 出力 (Excel, RTF, PDF, Graph ) 6

よくみかける光景 フォルダとファイル名で分ける バックアップは日付を付けて 変更点はコメントで残す 例 ) main.sas:sub01, sub02, sub03.sas を include しているメイン実行プログラム template template.xlsx: データ出力時テンプレート output result.xlsx: 出力結果 7

いつのまにかこんなことに 誰がいつ何の目的で作成したものか分からない! ああああ日付の形式が異なっている!! sub02.sas がない!!! 日付が間違っている!!!! たとえ適切に管理されていたとしても 過去のファイルが増えて見づらくなる 8

これを防ぐためには Windows のエクスプローラを使用した管理には限界がある そこで オープンソースの VCS である git と電助システムズ社製 VCS である SPITS の導入検討を行った 9

VCS を導入 利用してみる VCS には集中型と分散型がある 集中型 分散型 リポジトリ サーバにのみ存在する サーバ+ユーザ毎にコ ピーが作成される オフラインでの使用 データ量 サーバに接続できない環境では使用できない 自身が持つデータは変更してコミットする前のもののみ 今回使用する例 Subversion, SPITS git SPITS の場合はやや異なる オフラインでも使用できる リポジトリのコピーを持つため データ量が増える 10

git の導入 インストール git-scm.com からインストーラをダウンロードし 実行 git インストールが完了すると コマンド入力管理ツール git bash が使用できる リポジトリを 自分の PC 上 に作成できる リモートリポジトリ ( まだない ) と連携できる GitHub の準備をする 11

git GitHub を使用すると クラウド上にリポジトリを作成できる ( リモートリポジトリと言う ) 無料版の場合 リポジトリは全て公開される 有料版の場合 非公開リポジトリを作成できるが あくまでも リポジトリに制限をかけるだけなので 誤って公開リポジトリに設定してしまうなどの危険は残る 有料版として 任意のサーバで構築可能な github enterprise もある 12

git GitHub の準備 まずサービスを登録 git から GitHub と連携できるよう設定する SSH key の設定やプロジェクトの作成 SSH: セキュアシェル 暗号や認証により安全にリ モートコンピュータと通信するためのプロトコル 13

git GitHub 使用開始 ブラウザ上でソースコードをアップロードしてみたものの ここからどのように管理するのか? ドラッグアンドドロップで追加 ここからは git の出番 14

git ソースコード管理の開始 まずリモートリポジトリのクローンをローカルに作成する 作成したローカルリポジトリにブランチを作成し ブランチ上のファイルを編集する ローカルリポジトリにファイルができているので 直接 SAS で編集しても OK 15

git ソースコード管理の開始 編集が終わったら コミットして master にマージする ( ここまで プログラムの編集以外は全てコマンドで行う ) 16

git git でよく使われると言われているコマンド Google 検索結果の上位 6 件を Qiita の類似エントリが占める状況 オプションもあるため 膨大な数に コマンド git checkout git diff git commit git merge git rm git status git push git clone 説明 ブランチの切替修正したファイルの確認コミットマージファイルの削除変更したファイルの一覧プッシュクローンを作成 17

git コマンドに抵抗がある場合 しかし ファイル管理のために多くのコマンドを覚えなければならないのか ( それなら 1 つでも多く SAS のプロシージャ覚えたい ) コマンドを使用せず操作できる GUI ツールをインストールしてみる 18

SourceTree のインストール git 今の作業状況やプログラムの状況がグラフィカルに表示されるため プログラムの編集以外に何をすべきかが分かりやすい 19

SourceTree の操作 git 編集すると 赤いアイコンになると共に GUI のファイルステータスでは変更行毎に変更内容が表示される コミットしたらプッシュに数値アイコン 20

git git(+ GitHub + SourceTree) のいいところ 1 マスターを汚さずにブランチ ( 作業領域 ) を自分で作成してコーディングができる 編集をすべて取り消したい時は master に戻せば OK 社内にノウハウはないが web 上には非常に情報が多い 21

git git(+ GitHub + SourceTree) のいいところ 2 22

git 課題 1 プログラムのファイル本体が必要となるため 実行時に一式が必要となる さらにこれらは基本的にユーザ毎の作業領域に配置される そのため プログラム中のフォルダパス等を環境によって変更する必要がある %let rootdir=x: SUGI 2017 SPITS code; filename tmplt "&rootdir. root1 template template.xlsx" recfm=n; %let rootdir=c: Users kawakami Documents SouceTree Study0101; filename tmplt "&rootdir. template template.xlsx" recfm=n; 23

git 課題 2 git では基本的にすべてコマンドで実行しなければならない 数多くのコマンドを覚えるのは大変 (clone branch checkout commit push ) スムーズな操作のためには GUI の導入は必須 24

git 課題 3 git におけるデフォルトのファイル形式は UTF8 であるが 一般的に用いられている SAS( 日本語版 ) では Shift-JIS が使用されており 既存プログラムを管理する場合はファイル形式の変換か文字化けを覚悟 25

git 課題 4 GitHub は無料で提供されているが 履歴情報を保持するリポジトリがクラウド上に存在することになるため 解析結果などの機密情報を管理するには適さない この点は社内のサーバや AWS, Azure 等のクラウドサービスを用いて 専用のリポジトリをインストール 構築することで解消できる 26

git 課題 5 VCS はあくまでもプログラムのバージョン管理であり SAS プログラムを実行して結果を得ることはできない 特に 実行結果と実行ログは バッチ実行で生成されるものは管理対象として認識することができるが SAS の DMS 上のものは基本的に認識できない ( プログラム中で明示的に保存先を指定すれば可能 ) 27

git 課題 バッチ実行で出力されるログは保存対象として認識されるが SAS で実行した時のログは git は認識できない 28

SPITS SPITS のメリット ファイルは全て SPITS のデータベース上に保存されているので オリジナルのファイルがどこにあるかは関係ない ( 削除してしまっても OK) 関連するファイルを一括して自動保存できる 使い慣れた SAS 日本語環境で学習コストがかからない 29

SPITS SPITS の準備 共有フォルダを指定するだけ 30

SPITS SPITS のプログラム管理画面 プログラム単位で管理される テンプレート等のファイルについてはここには表示されることはない 31

SPITS プログラム登録 まずはプログラムを登録する 新規登録ボタンをクリックすると 登録方法が選択できる 32

SPITS 登録したプログラムを実行する 33

SPITS プログラムの実行後 プログラムを実行すると ログ リストに加え プログラム中で指定した外部ファイルを自動的に保存してくれる SPITS 結果 ログ 出力 テンプレート 34

SPITS プログラムの一括実行 include せずに SPITS に登録したプログラムを一括実行することも可能 35

SPITS SPITS でプログラムを修正 使い慣れた様々な方法でプログラムの修正 / 再登録が可能 SAS での編集中は修正ウィンドウが表示され ここで保存する 36

SPITS SPITS のファイル管理機能 プログラム ログ 実行結果に加え 付随するファイルをなんでも一緒に保存できる 保存された全てのファイルがいつでも再現可能 保存されたファイル 37

SPITS SPITS で関連ファイルも管理する ここまでは普通の SAS プログラム ( どの SAS でも動く ) 一歩踏み込んで以下のプログラムを登録して実行する (SAS としては何も処理しないコメント行だが SPITS が指定ファイルを保存する ) /* テンプレートを保存するだけのプログラム */ /* SPITS_ADD : [X: SUGI 2017 SPITS code root1 template template.xlsx] */ /* SPITS_DES : テンプレート */ 38

SPITS 保存された関連ファイル テンプレートはプログラム No0005 の 3 つ目のファイルとして保存されている 1 2 3 39

SPITS SPITS 専用マクロを利用する プログラムを実行するときの全てのファイルが SPITS ベースになるので 共有フォルダにファイルを残す必要がなくなる 最新は常に SPITS という考えの元 運用できる 40

SPITS SPITS 専用マクロへの変更 1 メインのプログラムを修正する > 先程 SPITS に保存したテンプレートを再現して使用する filename tmplt "&rootdir. root template template.xlsx" recfm=n; /* テンプレートファイルを再現 */ %REAPPFILE(0101,0005,001,3,C: Temp); /* 再現したファイルを使用する */ filename tmplt "C: Temp template.xlsx" recfm=n; 再現先 41

SPITS SPITS 専用マクロへの変更 2 Include していたプログラムも SPITS に保存されたプログラムを呼ぶ形に変更する %include "&rootdir. root sub01.sas"; /* 共有フォルダ中ではなく SPITS に保存されたプログラムを使用する */ %SPITSINCLUDE(0002); 42

SPITS 課題 1 プログラムの差分比較 検出ができない git と異なり 大規模な開発体制は想定していないので レビュー / 承認などの機能はない これらは git を使うことで浮き彫りになった 43

SPITS 課題 2 すべてのファイルをバイナリとして保存するため リポジトリの容量は大きくなる ( 大きなファイルの場合で およそ元ファイルサイズの 3 倍程度 ) ( 現状では compress=binary システムオプションを明示することで 2 倍程度に抑えることが可能 ) 44

SPITS まとめ :git 導入における課題と解法 新しいシステムを導入することによる学習コストやクラウドならではの問題が想定された 学習コストは予想通りだったが GUI ツールを使用することである程度は低減できる クラウドならではの問題は サービスの選択によっては回避できる エンコード 実行フォルダ ログ保存等の都合で環境ごとにプログラムを書き換える必要が出てくることは運用管理上の影響として小さくない 45

まとめ :SPITS をより効果的に使うために 専用マクロを使用する場合はプログラムの書き換えが必要 プログラムの本数が多い場合 ミスなく専用マクロに書き換える方法の検討が必要 成果物 ( プログラムの実行結果 ) も含め 常に SPITS の使用を前提とする ルールの再徹底が必要 SPITS 46

最後に :git と SPITS 比較 オープンソースで次々に新しい機能が取り入れられる git には機能面で劣る部分もあるが SPITS の利点は SAS に特化しているところであり SAS プログラムおよび関連ファイルを管理するには一日の長があると感じた 47