2017年度 OSS 秋セミナー 【Open 技術分科会 】活動報告 · 2017-10-23 ·...
Transcript of 2017年度 OSS 秋セミナー 【Open 技術分科会 】活動報告 · 2017-10-23 ·...
分科会活動方針
IBM i OSを活用できる技術について
検証及び稼動確認を行うことで、技術習得を行う。
・技術習得
・他社との交流
・分科会発表
・OSS勉強会
活動日時毎月 第三金曜日 18時~20時 で活動※場所は東京近郊skypeでの参加も現在実施中
メンバー
SLY 川島(リーダー)
JBCC 富田(副リーダー)
JBCC 植村
オム二サイエンス 田中
NDIソリューションズ 平野
ティアンドトラスト 北原
ベルコム 梶野
KIS 藤野
SOLPAC 後藤
アイビス 濱田
※敬称略
JBAT 土井
JBAT 杉本
JBAT 田口
JBAT 冨永
SLY 高柳
SLY 中村
SLY 金子
三和コムテック 渋谷
<オブザーバー>
IBM 菅田様登録:12社 19名 平均8名程度の参加
2017年分科会 活動体制
OSS幹事会
Open技術分科会
新技術Python
活用事例php
AS活用(Watson
Analytics)
オムニサイエンス 田中JBAT 土井NDIS 平野
SLY 高柳 SLY 川島JBCC 富田
分科会 リーダー:SLY 川島副リーダー:JBCC 富田
2017年活動実績
2017年6月16日(金) 18時~20時 JBAT様川崎ソリッドスクェア2017年7月28日(金) 18時~20時 オムニサイエンス様茅場町2017年9月14日(木) 14時~17時45分 OSS秋セミナー発表
<今後予定>2017年10月19日(木) 18時~20時 オムニサイエンス様茅場町
2017年活動報告
チーム1 オムニサイエンス田中JBAT 土井NDIS 平野
Pythonによる機械学習構築事例
Pythonは、Windows、Linux/Unix、Mac OS Xなどの主要なオペレーティングシステムはもちろん、Javaや.NETなどの仮想環境でも動作するプログラミング言語です。
IBMi上でPythonを利用した機械学習アプリケーション活用
HTML
HTML
将来像
今年度の取り組み
BlueMix
IBMi
WebServer(Python)
MachineLearningプログラム
Node-Red
REST API
【テーマ】
toDO
今年度の活動としてIBMi上で以下の検証・実装を進める
Python稼働環境構築
Python用Webサーバーの構築
機械学習環境の構築
Python ⇔ DB2・RPGとの連携確認
機械学習アプリケーションの作成
➡済
➡済
➡未
➡苦戦中
➡何を作るか要検討
成果報告
Python稼働環境構築
導入
以下ライセンスプログラムの追加導入- 5733OPS Option 2(Python 3.4)- 5733OPS Option 3(GCC scripts)
以下Python用追加パッケージPTFの導入- DB2 connector (SI58191)- Toolkit for IBM i (SI58195)- FastCGI gateway support (SI58192)- lightweight web framework (SI58193)
Python用Webサーバーの構築
flipflop(FastCGIモジュール)インストール- pip3 install /QOpenSys/QIBM/ProdData/OPS
/Python-pkgs/flipflop/flipflop-*-py34-*.whl
Bottle(アプリケーションフレームワーク)インストール- pip3 install /QOpenSys/QIBM/ProdData/OPS
/Python-pkgs/bottle/bottle-*-py34-*.whl
追加モジュールのインストール
Python用Webサーバーの構築
Sample.py
ブラウザから“Hello World”を表示
from bottle import route, run, template
@route('/sample')def index():
return 'Hello World!!'
run(host='192.168.2.112', port=8083)
Python用Webサーバーの構築
サーバー起動
ブラウザからアクセス
bash-4.3$ python3 /home/oss/sample.pyBottle v0.12.8 server starting up (using WSGIRefServer())...Listening on http://192.168.2.112:8083/Hit Ctrl-C to quit.
機械学習環境の構築
scikit-learnとは
Pythonのオープンソースの機械学習ライブラリの一つ
分類や回帰、クラスタリングなどの機能が実装されている
入門用として扱いやすい…らしい
『scikit-learn』 の導入
機械学習環境の構築
CRTUSRPRF USRPRF(OSS) PASSWORD() USRCLS(*SECOFR) TEXT('oss') CHGUSRPRF USRPRF(OSS) LOCALE(*NONE) HOMEDIR('/QOpenSys/oss/./home/oss’)
mkdir -p /QOpenSys/oss/home/ossmkdir -p /QOpenSys/QIBM/ProdData/OPS/GCCcd /QOpenSys/QIBM/ProdData/OPS/GCC./chroot_setup.sh chroot_minimal.lst /QOpenSys/oss./chroot_setup.sh chroot_OPS_GCC.lst /QOpenSys/oss./chroot_setup.sh chroot_OPS_SC1.lst /QOpenSys/oss./chroot_setup.sh chroot_includes.lst /QOpenSys/oss./chroot_setup.sh chroot_OPS_PYTHON.lst /QOpenSys/oss./chroot_chown.sh oss
➡ここからssh接続
export PATH=/opt/freeware/bin:/usr/binexport LIBPATH=/opt/freeware/lib:/usr/libcd /QOpenSys/QIBM/ProdData/OPS/GCC./pkg_setup.sh pkg_perzl_bash-4.3.lstbash./pkg_setup.sh pkg_perzl_gcc-4.8.3.lstgcc –version
➡gccが使えるように
機械学習環境の構築
export 'CC=gcc'export LDSHARED="/QOpenSys/QIBM/ProdData/OPS/Python3.4/lib
/python3.4/config/ld_so_aix gcc -shared -bI:/QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/python3.4/config/python.exp“
pip3 install numpy (成功!)
pip3 install scikit-learn
Scipyがない…
pip3 install scipy
blasとlapackがない…
➡wgetしてもmakeできない!
機械学習環境の構築
➡http://www.oss4aix.org/download/RPMSから新しいmake(4.2)とgfortranを入手blasとlapackのmake成功
pip3 install scipy
cannot import name 'HTTPSHandler’
➡libssl.so.1、libcrypto.so.1がchroot環境のlibssl.a、libcrypto.aに含まれていないので、/QOpenSys/usr/libからコピー
機械学習環境の構築
pip3 install scipy
0706-012 flag is not recognized. ☜イマココ
【構築にトライして分かったこと】IBMi PASE環境用に用意されていないものを導入するのは非常に困難。PTFとして提供される可能性??
チーム2( PHP活用事例)のスタンス
いきなり余談ですが
2017年度版プログラミング言語トップ100
出展:FOSSBYTES
https://fossbytes.com/100-most-popular-programming-languages/
順位 言語 順位 言語
1 Java 8 JavaScript
2 C 9 Delphi/Object Pascal
3 C++ 10 Swift
4 C# 11 Perl
5 Python 12 Ruby
6 VB.net ・・・ ・・・
7 PHP 39 RPG(OS/400)
チーム2( PHP活用事例)のスタンス
テーマ 「今さらなんて言わずにPHP開発 on IBM i」
PHPの歴史を60秒で振り返る
参考サイト:e-BELLNET.com
2013.4.15 「PHP on i を始めましょう」
What’s new
1995年 PHP 1.0 リリース
2004年 IBM i でPHPが動作(非公式バイナリ:i5 PHP)
2006年 Zend Core for i5/OS リリースにより公式サポート
2016年 PHP7.1(2017年9月時点の最新版)リリース
チーム2 今後の予定
開発環境セットアップZendServer 9 済PHP 7 済MariaDB(ZendDBi)php.ini / httpd.conf 等の設定何らかのフレームワーク
開発メンバーアサインSLYからは超若手メンバーを投入予定PHPを書いてみたい方は声を掛けてください!
活用にあたってのナレッジまとめ
2017年活動報告
問題定義
IBM iに蓄積されたデータを有効活用できないか?
活用方法
1.過去データ参照が難しい バックアップは取得しているが・・・→テンポラルDBを活用で過去データ参照がスムーズに!
2.何を分析してよいか分からないWatson Analyticsを活用して分析方法を検討→WebQUERYで分析結果を表示
2017年活動報告
・テンポラルテーブルとは?・使い方・実際の事例
・WebQUERY・使い方・実際の事例
・WatosonAnalyticsとは?・使い方・実際の事例
・BlueMIXとは?・使い方・実際の事例
・AS400との連携・使い方・実際の事例
IBM i Blue Mix Watoson Analytics
連携
2017年活動報告
IBM i WatosonAnalytics連携 構成
IBM iBLUE MIX Watson Analytics
DB
WebQueryデータ分析照会
テンポラルテーブル
5250画面
PHP
分析結果より
DB
サービス
DB
2017年活動報告
タイムトラベル機能 今回作成したテーブル
CREATE TABLE policy_info( policy_id CHAR(4) NOT NULL,
coverage INT NOT NULL,
sys_start TIMESTAMP(12) NOT NULL GENERATED ALWAYS AS ROW BEGIN,
sys_end TIMESTAMP(12) NOT NULL GENERATED ALWAYS AS ROW END,
ts_id TIMESTAMP(12) NOT NULL GENERATED ALWAYS AS TRANSACTION START ID,PERIOD SYSTEM_TIME (sys_start, sys_end) );
管理情報
トランザクション
CREATE TABLE hist_policy_info LIKE policy_infoALTER TABLE policy_info ADD VERSIONING USE HISTORY TABLE hist_policy_info
STEP1:トランザクションテーブル作成
STEP2:履歴履歴テーブル作成
2017年活動報告
タイムトラベル機能 今回作成したテーブル
INSERT INTO policy_info (policy_id, coverage)VALUES('A123',12000);INSERT INTO policy_info (policy_id, coverage)VALUES('B345',18000);INSERT INTO policy_info (policy_id, coverage)VALUES('C567',20000);
STEP2:トランザクションテーブルデータ登録
policy_info
hist_policy_info
2017年活動報告
タイムトラベル機能 今回作成したテーブル
UPDATE policy_info SET coverage = 25000 WHERE policy_id = 'C567'
STEP3:トランザクションテーブルデータ更新
policy_info
hist_policy_info
2017年活動報告
タイムトラベル機能 今回作成したテーブル
DELETE FROM policy_info WHERE policy_id = 'B345';
STEP4:トランザクションテーブルデータ削除
policy_info
hist_policy_info
2017年活動報告
タイムトラベル機能 今回作成したテーブル
SELECT policy_id, coverage, sys_start, sys_endFROM TEMP001.policy_info FOR SYSTEM_TIME AS OF '2017-06-15-18.24.40.361537000244'
STEP5:トランザクションテーブルデータ過去データを参照
policy_info
初期登録時点を指定
2017年活動報告
タイムトラベル機能 今回作成したテーブル
SELECT policy_id, coverage, sys_start, sys_endFROM TEMP001.policy_info FOR SYSTEM_TIME AS OF '2017-06-15-18.24.40.361537000244'
STEP6:トランザクションテーブルデータ過去データを参照
policy_info
初期登録時点を指定
2017年活動報告
タイムトラベル機能 現時点での成果/考察
考察1マスターデータ系のデータについて過去データが残っていると更新履歴が見れて分かりやすい。例)消費税マスタ等過去の処理を実施したいときは売上日付に合わせたデータを見るようにすれば、売上日時点の消費税テーブルを参照する事が可能
考察2重要なトランザクションについて外部公開(外部接続)するようなテーブルに関して誰が、いつ更新、削除したのか履歴されるので原因究明がしやすくなる
考察3過去データを分析、比較したい場合バックアップからのデータ復元が不要でSQLによって過去比較結果が表示可能※在庫トランザクションがどう推移したのか追跡が可能
2017年活動報告
今後の予定
基幹システムデータだけで WatosonAnalytics事例を検討
SNS等のデータと基幹システムデータを連携した時のWatosonAnalytics事例を検討
Web Query による分析画面の作成