Weitere ähnliche Inhalte
Ähnlich wie [INSIGHT OUT 2011] C23 「RDBMS」はコモディティーかする?クラウド環境に対応する実装とは(Goto)
Ähnlich wie [INSIGHT OUT 2011] C23 「RDBMS」はコモディティーかする?クラウド環境に対応する実装とは(Goto) (20)
Mehr von Insight Technology, Inc.
Mehr von Insight Technology, Inc. (20)
Kürzlich hochgeladen (10)
[INSIGHT OUT 2011] C23 「RDBMS」はコモディティーかする?クラウド環境に対応する実装とは(Goto)
- 2. 本日のアジェンダ
1. なぜクラウド?
2. 標準化してみよう
3. 同じコストで稼働率が高けれ
ば….
2 ©2011 Hewlett-Packard Japan, Ltd.
- 3. なぜクラウド?
3 ©2011 Hewlett-Packard Japan, Ltd.
- 4. クラウドコンピューティング
公共
カーナビ
災害時でもデータが保全 交通
人事・経理 され、サービスも継続提
供できる 利用者数や扱うデータ量
に応じてITコストを変動
費化
標準化したシステムを海
外展開やグループ企業に
いち早く展開
デ タ
データ
設計・開発 音楽・映像
Data Oriented Aproach
最新の技術・機能をネッ
導入高価が不透明なシス
ト経由で提供し、顧客
テムの実験手段として有
サービスの向上
効
医療費の削減
営業支援
医療
テレビ
PC
タブレット
タブレ ト
スマートフォン 日経BP社: クラウドが変える企業経営
4 ©2011 Hewlett-Packard Japan, Ltd. 演者加筆
- 5. クラウドコンピューティング
公共
カーナビ
災害時でもデータが保全 交通
人事・経理 され、サービスも継続提
供できる 利用者数や扱うデータ量
に応じてITコストを変動
費化
標準化したシステムを海
外展開やグループ企業に
いち早く展開
デ タ
データ
設計・開発 音楽・映像
Data Oriented Aproach
最新の技術・機能をネッ
導入高価が不透明なシス
ト経由で提供し、顧客
テムの実験手段として有
サービスの向上
効
医療費の削減
営業支援
医療
テレビ
PC
タブレット
タブレ ト
スマートフォン 日経BP社: クラウドが変える企業経営
5 ©2011 Hewlett-Packard Japan, Ltd. 演者加筆
- 6. CEO、CFOの興味
– 利益を上げる
「経営の最終責任」
経営の最終責任」
• 株主 ため
株主のため
「企業倫理の保持」
• 企業価値のため
「後継者の育成と選抜」
• 企業が正常進化するため
• 従業員の幸せのため
• 社会貢献のため
– 経営の効率化
• コスト削減
• 費用対効果の向上
• 生産性の向上
• 付加価値の高い労働
• 新ビジネスの開拓
• 既存ビジネスの強化
6 ©2011 Hewlett-Packard Japan, Ltd.
- 8. CIOの取り組み
サーバー統合できる 以前 今日
よね
自社のデータセンター
使った分だけ費用負 利用する分だけ提供
担できるよね 事業部門
事業部門 工場 工場
各支店
バラバラにITイ
ンフラを持って
いて効率が悪い
無駄なく最適化
各支店
日経BP社: クラウドが変える企業経営
8 ©2011 Hewlett-Packard Japan, Ltd. 演者加筆
- 9. CIOの取り組みカシオにおけるIT戦略の考え方
ミッションクリティカル
次にシステム全体の最
標準化・統合化
適化を検討できないだろ ITの夜差別化 EDI N/W
うか
販売管理 メール 基幹サーバー
SCM
クラウドをどう活用しよう
PLM FA
か CRM
メール 基幹サーバー
コア領域 ノンコア領域
自社のシステムのクラウ 会計。購買 人事
マーケティング
ド化で新興国に輸出しよ ポータル
PC
賞品企画
う グループウェア
BI&BPM (SOA) グループクラウド
非ミッションクリティカル
BI: ビジネスインテリジェンス N/W: ネットワーク
BPM: ビジネス・プロセス・マネジメント SCM: サプライチェーンマネジメント
CRM: 顧客情報管理 SOA: サービス指向アーキテクチャー
EDI: 電子データ交換 PLM: プロダクト・ライフサイクル・マネジメント
FA: ファクトリー・オートメーション
日経BP社: クラウドが変える企業経営
9 ©2011 Hewlett-Packard Japan, Ltd. 演者加筆
- 11. エンジニアとしてどう応えていくか
[インフラとして] [インフラとして]
– 「速 が 番
「速い」が一番 – 「止まらな が 番
「止まらない」が一番
– 止まらない工夫 – 事が起これば迅速な対応
– 事が起これば迅速な対応 – 安価な運用
[アプリケーションとして] [アプリケーションとして]
– 早く稼働させたい – 早く稼働させたい
– バグを少なく – バグを少なく
– 速いが一番
速 が 番 – 安価に造れ
安価 造れ
– 安価に造れ – 標準化に準拠
11 ©2011 Hewlett-Packard Japan, Ltd.
- 12. エンジニアとしてどう応えていくか
[インフラとして] [インフラとして]
クラウド移行可能なデ 「止まらな が 番 、
クラウド移行可能なデータベース、
– 「速 が 番
「速い」が一番
タ
– 「止まらない」が一番
アプリケーションへ – 事が起これば迅速な対応
– 止まらない工夫
今後出てくるであろう、プラット
今後出てくるであろう – 安価な運用 ト
– 事が起これば迅速な対応 プラ
フォ ムへの移植性
フォームへの移植性 [アプリケーションとして]
[アプリケーションとして]
– 早く稼働させたい – 早く稼働させたい
– バグを少なく – バグを少なく
– 速いが一番 – 安価に造れ
速 が 番
変化適応力のあるシステム造り 安価 造れ
– 安価に造れ – 標準化に準拠
12 ©2011 Hewlett-Packard Japan, Ltd.
- 13. 3階層モデル
プレゼンテーション層 ビジネスロジック層 データストア層
プログラム
プ グ
プログラム
プログラム
データの要求 データベース
操作
クライアント層 アプリケーション層 データベース層
入出力層 ビジネスロ RDBMS
(ブラウザ) ジック層
http://www.itmedia.co.jp/help/howto/win/win2000/0007special/complus_vb/chap1/01.htmlから加筆
13 ©2011 Hewlett-Packard Japan, Ltd.
- 14. ITがめざすインフラ、ミドルウェアの姿
– 各社RDBMSに依存する部分が多い
– 将来のクラウドコンピューティング見据えたアプリケーション分離を検討
Java Appl. C/C++ Appl.
Java
Sun JVM TUXEDO Oracle Platform
RDBMS
Oracle Oracle EE
OS
MC/Serviceguard
MC/Serviceguard HP
Linux Linux
HP BladeSystem HP
サービスが提供される
これまで これから
14 ©2011 Hewlett-Packard Japan, Ltd.
- 17. Oracle Upgrade Seminar (
pg (5/12) より
)
– Oracleをアップグレードしないリスクをどう評価すればよいの
か?
• アップグレードしないと、『パフォーマンス』と『アプリケーションの正常動作』を維持するための
コストが掛かる。このコストをリスクとして評価するべきではないか
– 独自カスタマイズが存在する場合でもツールは有効なのか?
• 独自カスタマイズとは、パラメータチューニングを指すのだと思うが、そもそも過去のパラメー
タチューニングは捨てるべき。最新バージョンには、最新バージョン向けのチューニングがあ
るので、過去のチューニングを引きずるとかえってパフォーマンスが悪化する可能性が高い
– 技術の目利きができる人材を育成するべき としていたが 実
技術の目利きができる人材を育成するべき、としていたが、実
際にこのような人材を育成するにはどうすればよいか?
• 1つは外部アナリストに意見を求めて、育成計画を立てるのが有効だ。2つ目は、人材育成に
1つは外部アナリストに意見を求めて 育成計画を立てるのが有効だ 2つ目は 人材育成に
おいて、若いうちにベンダ側の開発チームに入れてしまう方法だ。これによって、ベンダが実
際どのように開発しているのかを、自らの体験をもって理解でき、その後の育成に大いに役
立つ
17 ©2011 Hewlett-Packard Japan, Ltd.
- 18. Oracle Upgrade Seminar (
pg (5/12) より 続き
)
– 9i、10gから11gへのアップグレードにおける典型的な注意点
は?
• Oracle 7や8のころは、エクスポート/インポートが有効な手段だった。しかし、現在はデータ
容量がテラバイトレベルになっているので、この方法は時間がかかり過ぎて現実的ではなく
なってきている。現在では、OSが変わらないケースではアップグレードスクリプトを利用した
方法を、UNIX→LinuxなどのOSが変わる場合にはGoldenGateの利用を推奨している
– アップグレ ドのROIが分かりにくい 稟議書作成のポイントを
アップグレードのROIが分かりにくい。稟議書作成のポイントを
教えてほしい
• ここ1 2カ月で増えているのは、 信頼性の向上 を理由にアップグレ ドするケ スだ。こ
ここ1~2カ月で増えているのは “信頼性の向上”を理由にアップグレードするケースだ こ
れは、信頼性を向上させるために、あえてアップグレードを選択するケースだ。ほかには、IT
の長期計画を5~7年に広げて考えてみる際に、『塩漬け』『更新だけ』『アプリケーションの改
修含 』
修含む』の3つのパターンでTCOの試算をしてみるとなおよいだろう
タ 試算を る なお う
18 ©2011 Hewlett-Packard Japan, Ltd.
- 19. 標準化してみよう
19 ©2011 Hewlett-Packard Japan, Ltd.
1
- 20. SQLの標準化 (1986-1992)
( )
年 規格名称 別称 説明
1986 SQL86 SQL87 •ANSIによって最初に発表された最初の規約。1987年にISOによって
批准された データ操作言語 (DML) 仕様策定: COBOL FORTRAN
批准された。 デ タ操作言語 COBOL、FORTRAN、
PL/Iなど、親言語(母言語、ホスト言語とも言う)への埋込みSQL文仕様
策定
1989 SQL89 •マイナーバージョン。 データ定義言語 (DDL) 仕様策定 (CREATE
TABLE文、CREATE VIEW文、GRANT文。ただし、DROP文、ALTER文、
TABLE文 CREATE VIEW文 GRANT文 ただし DROP文 ALTER文
REVOKE文はなし)
•制約および整合性機能を追加 (DEFAULT、UNIQUE制約、NOT NULL
制約、PRIMARY KEY制約、CHECK制約、参照整合性制約)
C言語
•C言語への埋込みSQL文仕様の追加
埋込みSQL文仕様 追加
1992 SQL92 SQL2 •メジャーバージョン 直交性の改善 (表式)
•データ型の拡張 (可変長文字列、ビット、文字集合、日付・時刻・時間
間隔 (DATE, TIME, TIMESTAMP, INTERVAL))
•外部結合 (OUTER JOIN)
•定義域 (DOMAIN)
•表明 (ASSERTION)
•一時表 (TEMPORARY TABLE: 永続化しないデータを格納)
時表 ( M O : 永続化しな デ タを格納)
•DDL仕様追加 (DROP文、ALTER文)
•動的SQL仕様
•前方・後方スクロール可能なカーソルサポート
•クライアント/サーバシステムのためのCONNECT/DISCONNECT文
クライアント/サ シ テ のための / 文
Wikipediaより抜粋、演者変更
20 ©2011 Hewlett-Packard Japan, Ltd.
- 21. SQLの標準化 (1996-1999)
( )
年 規格名称 別称 説明
1996 SQL/PSM 永続格納モジュール (Persistent Storage Module)
一般的にストアドプロシージャと呼ばれる機能を国際標準化した規格
般的にストアドプロシ ジャと呼ばれる機能を国際標準化した規格
1999 SQL:1999 SQL3 •RDBMSのための完全な言語になることを目指した仕様。[2] 正規表現
による値照合
(SQL99) •共通表式(WITH句)
•再帰クエリ
再帰ク リ
•OLAP (ROLLUP、CUBE、GROUPING SETS)
•ユニオン (UNION)・結合経由の更新
•カーソル操作の機能強化 (トランザクション完了後のオープン状態保
持)・ユーザ定義権限 (ROLE) ト
持) ザ定義権限 (ROLE)・トランザクション管理の新機能
ザクシ 管理 新機能
(SAVEPOINT)
•SQL/PSM強化 (制御構文 (IF、WHILEなど) サポートなど)
•SQLJ (Javaを親言語とする埋め込みSQL規格)
•データベーストリガ
デ タベ トリガ
•ユーザ定義関数 (ストアドファンクション)
•非スカラー型の新しいデータ型: 真理値 (BOOLEAN) 型と配列
(ARRAY) 型、LOB (Large Object)、ユーザ定義型、構造型
•上位表と下位表 (ス パ テ ブルとサブテ ブル)
上位表と下位表 (スーパーテーブルとサブテーブル)
•オブジェクト指向の考え方を取り入れたオブジェクトリレーショナルデー
タベース技術 (ORDB)。配列型やユーザ定義型、ユーザ定義関数と上
位表/下位表仕様により実現されている。
Wikipediaより抜粋、演者変更
21 ©2011 Hewlett-Packard Japan, Ltd.
- 22. SQLの標準化 (2003-2008)
( )
年 規格名称 別称 説明
2003 SQL:2003 •SQL/MM (マルチメディア: フレームワーク、全文検索、空間データ
(Spatial)、静止画像)
(Spatial) 静止画像)
•SQL/MED (外部データ管理: 非リレーショナルデータ (順編成ファイ
ルや階層型データベースなど) や他社のリレーショナルデータをSQLで
アクセスするための規格)
SQL/OLB
•SQL/OLB (オブジェクト言語バインディング: SQLJを標準化する JavaSQLJを標準化する。Java
プログラムに埋め込むSQL文)
•XML関連の機能
•ウィンドウ関数
•順序(シ ケンス)の標準化と識別キ 列に対する値の自動生成を行
•順序(シーケンス)の標準化と識別キー列に対する値の自動生成を行
う列仕様の導入 (ID型)
(See Eisenberg et al.: SQL:2003 Has Been Published.)
2008 SQL:2008 •INSTEAD OF トリガ
•TRUNCATE TABLE ステートメント
TRUNCATE テ トメント
•配列型の集約と展開 (array_agg, unnest) [3]
Wikipediaより抜粋、演者変更
22 ©2011 Hewlett-Packard Japan, Ltd.
- 24. 各RDBMSのSQL statement
RDBMS 8製品から構文
を拾い出し、合計645の
データベース B うち、サポートされている
約150構文 ものを拾い出した。
ANSI SQL データベース A
(標準SQL) 約200構文
250
約70構文 200
150
データベース C
100
約100構文
50
0
24 ©2011 Hewlett-Packard Japan, Ltd.
- 25. 標準化のメリット
– その時々の最良のプラットフォーム
を選択できる
• OS
• RDBMS
• Application Server
• ….
A社DB
社 B社DB
社 – アプリの運用 保守とRDBMSの運
アプリの運用、保守とRDBMSの運
用、保守を分けることができる
– サーバー統合ができる
サ バ 統合ができる
アプリA アプリB
– クラウドへ移行できる
A社独自SQLを 業界標準SQLを
利用したアプリ 利用したアプリ
25 ©2011 Hewlett-Packard Japan, Ltd.
- 26. DB移行(マイグレーション)
( )
の 7段階 アセスメント
1.
1 デ タベ ススキ マ の移行
データベーススキーマーの移行
• DDLの抽出、移行
• 動作環境の設定
移行の前に
• データ型、オブジェクト、オプティマイザーの特性
2. ストアドデータの移行
3. ストアドオブジェクトの移行
Oracleからの移植性アセスメント
• ストアドプロシージャ、トリガー
• Javaなど、アプリケーション層の切り出しを検討
4. アプリケーション (解析関数)の移行 有償アセスメント
• SQLの方言
• 算術演算、比較演算など要検討項目多し
算術演算 比較演算など 検討項 多
5. 接続の移行
• 基本JDBC接続
6. 運用監視の見直し
• 隠れた高コスト
7. QAテスト
26 ©2011 Hewlett-Packard Japan, Ltd.
- 27. 例えば
Oracleを標準化してみましょう
O l を標準化 ま う
DBMSオリジナル機能の利用の有無
use no 代替策
PL/SQL 変換ツールを用いて、Javaのクラスへとコンバージョン
(単純移行できない場合はリライトが必要となる)
DUAL表
同名のテーブルを作成し、1レコードだけ管理
順序 採番テーブルを作成し、アプリケーションにて更新/管理をす
ることで対応
Stored Function
St d F ti
アプリケーションにてFunctionロジックを実装する対応が必要
ROWID 同等機能としては、SYSKEY (レコード毎の一意な値)を付与
(レコ ド毎の 意な値)を付与
することで代替可能
ROWNUM FIRST [N]や、RUNNINGCOUNT関数を使ってSQL文を書き
換えることで代替可能
換える と 代替可能
・・・・
27 ©2011 Hewlett-Packard Japan, Ltd.
- 28. 1.~4.
Oracleからの移植性アセスメント(例)
– お客様のデ タベ ス環境を他RDBMSへ移行する際のポ タビリティ
お客様のデータベース環境を他RDBMSへ移行する際のポータビリティー
(移植可能性)を調査し、移行にかかる概算工数を提示させて頂くサービス
です
– オプションとして、ターゲットRDBMSに移植した際の性能評価も可能です
アセスメントの流れ
サンプリング (お客様)
レポート
●アセス対象のDDL、
SQL文、テストデ タ
SQL文、テストデータ ●アセスの結果報告書
ヒアリング
等の準備、ご提供 (移植可能性や問題点
●現状のDBアプリ環境 その代替手法など)
使用している独自機能 ●概算お見積もり
の有無などをヒアリング アセスメント (HP) - 移行作業工数概算
●アセス対象の絞込み ●i移植の可能性を検討 ○性能評価報告書
○ターゲットへの移植
○性能試験を実施
○はオプション
プ
28 ©2011 Hewlett-Packard Japan, Ltd.
- 29. 1. データベーススキーマーの移行
DDLの移行
データ型に注意
デ タ型に注意
カラムの並びに注意
オブジェクトのサポートに注意
Oracle SQL/MX
[データ型]
指定無しNumber Float
– ROWID型 Number 1~4
N b 1 4 SmallInt
S llI t
– NUMBER型 Number 5~10 Int
Number 11~20 LargeInt
[
[オブジェクト]
] Number 21~
21 Numeric(18,0)
Numeric(18,0)~
小数点ありNumber Numeric(x,x)
– シーケンス (順序)
– シノニム (別名) 他RDBMSではサポートされず
– ビットマップインデックス
– マテリアライズドビュー (実表)
29 ©2011 Hewlett-Packard Japan, Ltd.
- 30. 1. データベーススキーマーの移行
EMP, DEPTの作成例
ORACLE SQL/MX
SET TERMOUT OFF SET TERMOUT OFF;
SET ECHO OFF SET ECHO OFF;
DROP USER SCOTT CASCADE
CASCADE; DROP USER SCOTT CASCADE;
DROP USER ADAMS CASCADE; DROP USER ADAMS CASCADE;
DROP USER JONES CASCADE; DROP USER JONES CASCADE;
DROP USER CLARK CASCADE; DROP USER CLARK CASCADE;
DROP USER BLAKE CASCADE; DROP USER BLAKE CASCADE;
DROP PUBLIC SYNONYM PARTS; DROP SYNONYM PARTS;
CONNECT SCOTT/tiger CONNECT SCOTT/tiger;
CREATE TABLE DEPT CREATE TABLE DEPT
(DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY (DEPTNO SMALLINT CONSTRAINT PK_DEPT PRIMARY KEY NOT NULL--
KEY,
KEY Changed t NOT NULL since it is used in primary or clustering key,
Ch d to i i di i l t i k
DNAME VARCHAR2(14) , DNAME CHAR(14),
LOC VARCHAR2(13) ) ; LOC CHAR(13)) HASH PARTITION BY(DEPTNO);
CREATE TABLE EMP
CREATE TABLE EMP (EMPNO SMALLINT CONSTRAINT PK_EMP PRIMARY KEY NOT NULL--
(
(EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY
( ) Changed to NOT NULL since it is used in primary or clustering key,
g g
KEY, ENAME CHAR(10),
ENAME VARCHAR2(10), JOB CHAR(9),
JOB VARCHAR2(9), MGR SMALLINT,
MGR NUMBER(4), HIREDATE TIMESTAMP(0),
HIREDATE DATE, SAL NUMERIC(7,2),
SAL NUMBER(7 2)
NUMBER(7,2), COMM NUMERIC(7 2)
NUMERIC(7,2),
COMM NUMBER(7,2), DEPTNO SMALLINT CONSTRAINT FK_DEPTNO REFERENCES DEPT) HASH
DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO PARTITION BY(EMPNO);
REFERENCES DEPT);
30 ©2011 Hewlett-Packard Japan, Ltd.
- 31. 2. ストアドデータの移行
インポートツール
– デ タベ スができてしまえば 文字数字デ タの移行は簡単
データベースができてしまえば、文字数字データの移行は簡単
31 ©2011 Hewlett-Packard Japan, Ltd.
- 32. 3. ストアドオブジェクトの移行
Javaへ移行 (標準化)
– 各社RDBMSに依存する部分が多い
– 将来のクラウドコンピューティング見据えたアプリケーション分離を検討
Java Appl. C/C++ Appl.
Java
Sun JVM TUXEDO Oracle Platform
RDBMS
Oracle Oracle EE
OS
MC/Serviceguard
MC/Serviceguard HP
Linux Linux
HP BladeSystem HP
サービスが提供される
これまで これから
32 ©2011 Hewlett-Packard Japan, Ltd.
- 33. 4. アプリケーション (解析関数)の移行
( )
~注意点をいくつか
[Oracle]
– 算術演算子 (! + - * / << >> など)
– 比較演算子 (= <> < <= > >=)
– IS [NOT] NULL, LIKE, [NOT] BETWEEN, [NOT] IN, EXISTS, IS OF type
– NOT
– AND
– OR
[MySQL]
– 算術演算子 (! + - * / << >> など), NOT
– 比較演算子 (= <> < <= > >=), IS [NOT] NULL, LIKE, [NOT] IN, REGEXP
– [NOT] BETWEEN
– AND
– OR
33 ©2011 Hewlett-Packard Japan, Ltd.
- 34. 4. アプリケーション (解析関数)の
( )
移行~脱PL/SQL (標準化)
– PL/SQLが移行の容易性を複雑にします
CREATE OR REPLACE PROCEDURE SAMPLE_PLSQL(V_LOOPCOUNT IN NUMBER) IS
V_APPNAME VARCHAR2(64) DEFAULT 'PROCEDURE';
V_FUNCNAME VARCHAR2(64) DEFAULT 'SAMPLE_PLSQL';
V_UPDCNT NUMBER;
V_COUNT NUMBER; import java.sql.*;
V_A_ID VARCHAR2(64); import java.util.*;
V_EXT_A_ID VARCHAR2(64); public class SAMPLE_PLSQL
{
-- プロシージャ ADD APPLOG
ADD_APPLOG public static void spSAMPLE PLSQL(Integer V LOOPCOUNT) throws SQLException,Exception
spSAMPLE_PLSQL(Integer V_LOOPCOUNT)
CURSOR A_CUR IS {
SELECT A_ID FROM SAM; Connection mConn = DriverManager.getConnection("SQLWAYS_EVAL# onnection");
Integer ErrorCode = -1;
String SqlState = "";
PROCEDURE ADD_APPLOG(I_APPNAME IN VARCHAR2 DEFAULT NULL,
boolean FetchStatus = false;
I_FUNCNAME IN VARCHAR2 DEFAULT NULL,
COMM N N A C A 2 t A try
I_COMMENT IN VARCHAR2 DEFAULT NULL, N
{
I_ERRORMSG IN BOOLEAN DEFAULT FALSE) IS
V_COMMENT RH_APPLOG.COMMENT_TEXT%TYPE; /*SQLWAYS_EVAL# */
BEGIN String V_APPNAME = "PROCEDURE";
-- エラーの場合の処理 String V_FUNCNAME = "SAMPLE_PLSQL";
IF (I_ERRORMSG = TRUE) THEN
(I ERRORMSG Integer V_UPDCNT = null;
g
Integer V_COUNT = null;
V_COMMENT := I_COMMENT || '(' || SQLERRM || ')';
ELSE String V_A_ID = null;
V_COMMENT := I_COMMENT; String V_EXT_A_ID = null;
END IF;
// プロシージャ ADD_APPLOG
DBMS_OUTPUT.PUT_LINE(TO_CHAR(SYSTIMESTAMP, v a cur a id = HH24:MI:SS.FF6 ) ||
DBMS OUTPUT PUT LINE(TO CHAR(SYSTIMESTAMP 'YYYY/MM/DD null;
String v_a_cur_a_id HH24:MI:SS FF6')
YYYY/MM/DD
try
CHR(9) || I_APPNAME || '.' || I_FUNCNAME ||
CHR(9) || V_COMMENT); {
V_COUNT = new Integer(0);
34 ©2011 Hewlett-Packard Japan, Ltd. DBMS_OUTPUT.ENABLE(1000000); //- DBMS_OUTPUT.DISABLE;
- 35. Oracleから変換が必要な機能一覧例
~注意点をいくつか
アセスメントから変換の必要なステートメントを洗い出します。
アセスメントから変換の必要なステ トメントを洗い出します
1. NVL,COALESCE 13. Time calculation
2. DECODE 14. DUAL Table
3. NVL2LNVL 15. ROWNUM
4.
4 SUBSTR 16.
16 ROWID
5. INSTR 17. WITH Clause
6. BITAND 18. SUM OVER,MAX OVER
7. GREATEST 19. LAG OVER,FIRST_VALUE OVER
8. ROUND 20. MERGE INTO
9. (+)= 21. MINUS
10. SYSDATE, SYSTIMESTAMP 22. DELETE RETURNING
11.
11 TO_CHAR,TO_DATE,
TO CHAR TO DATE 23.
23 Stored Function
TO_TIMSTAMP 24. CONNECT BY
12. TRUNC
35 ©2011 Hewlett-Packard Japan, Ltd.
- 36. Ex) GREATEST function
)
• Convert to CASE expression.
• GREATEST(x y z) ->
GREATEST(x,y,z) >
CASE WHEN (x > y) AND (x > z) THEN x
WHEN (y > x) AND (y > z) THEN y
Conversion
ELSE z
END
• In case the number of parameter is less than three SQLWays
can convert automatically.
In case the number of parameter is four or more manual conversion will
be needed. Converted sentence will be very long.
Restriction
• In this PoC case maximum parameter was two so it was easy to convert
to CASE expression
expression.
Comment
36 ©2011 Hewlett-Packard Japan, Ltd.
- 37. 1 TO_CHAR,TO_DATE,TO_TIMESTAMP
1.
function
f ti
•The case to format the numerical value by the TO_CHAR function
converts into string using CAST and applies the string edit function
CAST, function.
TO_CHAR(num1, ‘00000000’) ->
REPEAT('0', CAST(8-LOG10(num1) AS INTEGER)) || CAST(num1
Conversion VARCHAR(8))
TO_CHAR(num1, ‘fm9999999990.0’)
CAST(CAST(num1 AS DECIMAL(10 1)) AS VARCHAR(12))
DECIMAL(10,1))
• SQLWays can convert automatically Only when the output format is not
especially specified.
In case other output formats it is necessary to examine
Restriction individually.
• Oracle original.
• It is general to execute the format conversion for the application
Comment
requirement b not the DB function but the application logic.
by h f b h l l
37 ©2011 Hewlett-Packard Japan, Ltd.
- 38. Countの例
in SQL/MX in Teradata in Oracle in MySQL in SQL in Postgres Function ANSI
Server Type
count ( expr ) over No, Yes No No No No Window of Yes-2003
{ PARTITION BY | workaround? Data
ORDER BY |
ROWS … }
count([ All |
t([ No
N No
N Yes i 10g
Y in 10 No
N No
N No
N Analytics
A l ti
count ( expr ) over { No, workaround? Yes No No No No Window of Yes-2003
Distinct ] expr1) PARTITION BY | Data
over (analytics) ORDER BY | ROWS … }
No
count([All | Yes over DistinctYes *
count([ All |
expr1)
]
(analytics)
No No Yes in 10g No
No No
Yes No
No Analytics
Aggregate Yes-99
Distinct] expr)
] p) count([All | Distinct] expr) Yes Yes * No No Yes No Aggregate Yes-99
count(DISTINCT No, slow No No Yes No No Aggregate
count(DISTINCT No, slow
expr,[expr...])
No workaround? No Yes No No Aggregate
expr,[expr...]) workaround?
count(expr) Yes Yes Yes Yes Yes No Aggregate
count_big([All | Distinct] No, but
count(expr) Yes
expression)
Yes workaround. Use No
Yes No
Yes No Yes
Yes No
No Aggregate
Aggregate
COUNT
count_big([All
count big([All | No,
No but No No No Yes No Aggregate
Distinct] workaround.
expression) Use COUNT
38 ©2011 Hewlett-Packard Japan, Ltd.
- 39. dateの例
in SQL/MX in Teradata in Oracle in MySQL in SQL in Postgres Function ANSI
Server Type
date No Yes, obsolete No No No No Time
date(expr) No,
No but No No Yes No No Time
workaround.
See far right
column.
date_add(date,INTER No, but No No Yes No No Synonym
VAL expr type) workaround.
See far i ht
S f right
column. expr ) over {
count ( No, workaround? Yes No No No No Window of Yes-2003
PARTITION BY | Data
date_format (date, NoORDER BY | ROWS … } No No Yes No No Data
format) count([ All | Distinct ] No No Yes in 10g No No No Analytics Conversion
expr1) over (analytics)
date_part(text,interval No, workaround? No Yes
count([All | Distinct] expr)
No Yes *
No
No No
No
Yes No
Yes Time
Aggregate Yes-99
) See far right
count(DISTINCT No, slow No No Yes No No Aggregate
column.
expr,[expr...]) workaround?
date_part(text,timesta No, workaround? No Yes
count(expr) No Yes Yes
No Yes Yes
No No Yes Aggregate Time
mp) See far right | Distinct] No, but
count_big([All No No No Yes No Aggregate
expression) workaround. Use
column. COUNT
date_sub(date,INTER No, but
( , , No No Yes No No Synonym
y y
VAL expr type) workaround.
See far right
column.
date_trunc(text,timest No, workaround? No No No No Yes Time
amp) See far right
column.
column
dateadd(datepart, No, workaround? No No No Yes No Time
number, date) See far right
column.
datediff(datepart, No, workaround? No No No Yes No Time
startdate, enddate) ) See far right
g
column.
datediff(startdate, No, but No No Yes No No Time
enddate) workaround.
See far right
39 ©2011 Hewlett-Packard Japan, Ltd.
column.
dateformat (datetime Yes No No No No No Data
- 40. RDBMS 8製品から構文
参考: を拾い出し、合計645の
SQL Statements うち、サポートされている
ものを拾い出した。
40 ©2011 Hewlett-Packard Japan, Ltd.
- 41. OracleからNonStop SQLへの移行
p
アセスメント事例
– 某製造業A社様のお客様
• Oracleの品質、特に可用性に大きな不信感
• 超ミッションクリティカルな業務でのOracle利用
• 昨年末に、NonStopSQLへの移行アセスメントを実施
– アセスメント結果
• 非常に複雑なSQL文 1 338本を移行対象
非常に複雑なSQL文、1,338本を移行対象
約60%のSQL文は、 約25%のSQL文はSQLWays 10%のSQL文は、変換 5.1%のSQL文が、ア
何も変換せずそのま の機能のみで、NonStop SQL ルールに基づいた修正を プリケーションでの対
ま実行可能 へ自動変換可能
自動変換可能 行うことで変換可能 応が必要
SQL文 58.9% 24.5% 11.5% 5.1%
約95%が機械的に変換可能!
• p
その他、外部とのアクセスI/Fや、リプリケーション等もNonStopSQLで実現可能というアセス
結果をご報告
41 ©2011 Hewlett-Packard Japan, Ltd.
- 43. 同
同じコストで稼働率が高
稼働率 高
ければ….
43 ©2011 Hewlett-Packard Japan, Ltd.
- 45. データベース継続運用に関する実績
Independent Oracle Users Group (IOUG) の調査結果
Oracle ユーザーの 90% は、毎年ダウンを経験
<IOUG の調査結果>
• 1年間のうちに、オラクルユーザーの 90% はシステムダウンを経験
• そのシステムダウンのうち、25% は、そのシステムダウンが10時間以
上継続した。
継続 。
• 一部の事象では24時間以上に渡りシステムダウンしていた事例も
あり。
• NonStop サーバーは、最高の運用継続性を提供します。
• N S
NonStop SQL のシステムダウンタイム発生率(実績)は 年間 0 026%
のシステムダウンタイム発生率(実績)は、年間 0.026%。
Oracle の約 3500倍の可用性。
Source (Oracle Data): Independent Oracle Users Group (IOUG) 2006 Survey on High A il bilit T d
S (O l D t ) I d d tO l U G S Hi h Availability Trends
Source (NonStop Data): HP NED Divisional Quality Metrics Data
45 ©2011 Hewlett-Packard Japan, Ltd.
- 46. 他社DBと NonStop SQL/MX の TCO 比較
p
既存 DB 環境からの移行の場合
プラットフォーム価格 (ハードウェア、OS、データベース) を約 1億円規模のものと
想定し、6年目に再度更改する場合の、6年間 TCO 比較
– 移行費用: コンバージョンツールの利用によるコスト低減
– 運用管理費用:
用管 費用 容易 管
容易な管理による管理コストの低減。専任担当者の減少
管 低減。専 者 減少
– 保守費用: NonStop は保守が安い
– バージョンアップ: NonStop は上位互換がある為、動作検証のみ
( 年目
(4年目にマイナーバージョンアップ、サーバー切り替え時にメジャーバージョンアップを実施と想定)
イナ ジ アッ 、サ 切り替 時 ジャ ジ アッ を実施 想定)
3 3
他社DBのTCO NonStop SQL の TCO 約30%
2.5 2.5
6年間トータル: 約6.5億円
削減!!
6年間トータル: 約9億円
2 Miner Ver UP 2 Miner Ver UP
移行 (Major Ver UP) 移行 (Major Ver UP)
1.5 1.5
トレーニング トレーニング
1 運用管理 1 運用管理
他社DBの場合
保守 保守
0.5 0.5
プラットフォーム プラットフォーム
0 0
初年度 2年目 3年目 4年目 5年目 6年目 (更 初年度 年
2年目 年
3年目 年
4年目 年 年 更
5年目 6年目 (更
(Ver UP) 改) (Ver UP) 改)
他社DBの場合
46 ©2011 Hewlett-Packard Japan, Ltd.
NonStop の場合
- 48. HP Integrity NonStop NB54000c BladeSystem
g y p y
業界をリードするブレード・テクノロジと NonStop の融合 ハイエンド NonStopサーバー
– プロセッサ
• Intel® Itanium® Processor 9340
(quad-core 1.60-1.73 GHz/20MB L3 cache)
• 2~16プロセッサー (4コア~64コア)/ノード
• 最大 4,080 プロセッサー (16,320コア) まで拡張可能
– メモリ
• DDR3; 16GB~48GB/プロセッサー (最大768GB/ノード)
– ServerNet I/O
• Hot-swap Dual ServerNet3 (250MB/秒×32ポート)
– ストレージ装置
• 内蔵 146GB, 300GB SAS ディスクドライブ
• HP StorageWorks P9500 シリーズ
– 対応OS
• J-series ver J06.11以降 (NSMAアーキティクチャー)
– ノード間接続
• EXPAND、ServerNet Cl t Bl d Cl t
EXPAND S N t Cluster, BladeCluster
48 ©2011 Hewlett-Packard Japan, Ltd.
- 49. HP NonStop Server のアーキテクチャー
p
H/Wによる無停止機能: NSMA (NonStop Multicore Architecture)
CPU#0 CPU#1 CPU#2 CPU#3 CPU#n
CPU#
プロセッサと I/O はそれ
ぞれ電気的に独立して OS OS OS OS OS
ServerNet というシステム 自動診断/
自動診断/
内ネットワークに接続 自動通報
CPU CPU CPU CPU CPU
・・・・
I/O はストレージ、ネット 障害/異
障害/
ワーク、それぞれ別のコ
ワ ク それぞれ別の MEM MEM MEM MEM MEM 常の通報
ントローラがコントロール
NonStop OS は、各プロ
ServerNet t
S N
ServerNet
2重化された
セッサごとに稼働するが、
システム内
それぞれはメッセージン Storage Storage Network Network ネットワーク
グ連携で、シングルシス I/O I/O I/O I/O
テムとして動作
テムとし 動作 パワー
サブシステム
最大 4080論理CPU まで LAN
2重化 2系統の
シングルシステムとして Storage I/O 2重化 電源供給
サブシステム 仮想単一
拡張可能 IPアドレス
IPアドレス Network
ミラード サブシステム
49 ©2011 Hewlett-Packard Japan, Ltd. ディスク
- 50. ビジネス・コンティニュイティの追求
ソフトウェアによる無停止機能
プロセスペア技術による基本ソフトウェアの無停止化
プロセスペア技術
フェイルオーバー(再起動)ではなく、テイクオーバー(処理継続)がコンセプト
NonStop OS や、基幹ミドルウェアは、すべてプロセスペアにて実装
p
ある一定間隔(チェックポ
イント毎に)Primary側の
メモリ内容と実行個所の
情報が同期されるように
CPU 0 CPU 1 CPU 2 CPU なっている
3 CPU 0 CPU 1 CPU 2 CPU 3
Backup Primary Primary
Primary Backup
Primary Backup Down
障害発生
Primary Backup Primary
2CPUに、2プロセスがペアとして存在する Primaryプロセスの異常終了や、CPUダウン
実稼動するのは、Primaryプロセスのみ が起きると、自動的にBackupがPrimaryに昇
格して、処理を続行する
格して 処理を続行する
Backupプロセスは継続に必要となる情報を保持
データの整合性もトランザクション保護製品
論理的には、1プロセスとして扱える
50 ©2011 Hewlett-Packard Japan, Ltd. により、自動的に一貫性を保持
- 52. 性能の直線的拡張性
オーバーヘッドを排除した最適なリソースの提供
– アーキテクチャの違いによる拡張時の性能傾向
共有メモリ/共有バス クラスター結合
クラスタ 結合 プロセッサ・ノード間結合
プロセッサ ノ ド間結合
(Shared Everything) (Cluster/Shared Disk) (Shared Nothing)
CPU CPU CPU ・・
CPU CPU CPU CPU ・・ CPU CPU CPU CPU
・・
メモリ メモリ メモリ メモリ メモリ メモリ メモリ
I/O I/O I/O I/O I/O I/O I/O
将来増設が必要な際も システム
将来増設が必要な際も、システム
を容易に拡張可能
密結合
性能 密結合+疎結合
性能 MPP
CPUモジュール
疎結合・超並列
性能
SMP の切り離し
クラスタ メン
クラスターメン
•汎用機
システムダウン !! •汎用機
バーの切り離し •HP NonStop Server
•UNIX Server •UNIX Server
性能+障害復旧 性能+無停止
•PC Server •PC Server
•WorkStation
CPU数 CPU数 CPU数
52 ©2011 Hewlett-Packard Japan, Ltd.
- 53. ビジネス・コンティニュイティの追求- 運用
ソフトウェアによる無停止機能
– 単なる障害回避と業務の連続稼動を実現
• 「止めなくてもよい」ための技術の実装
− オンライン中の保守作業、障害パーツの交換
オンライン中の保守作業、障害パ ツの交換
− オンライン中のCPUやディスクなどのハードウェア追加
− オンライン中のアプリケーション追加、再配置
− オンライン中のデ タベ スの再編成 再構成 I d の追加
オンライン中のデータベースの再編成、再構成、Indexの追加
•データブロック 再編成 •データブロック
(デフラグ)
Online
block chain
•B-Treeインデックス •B-Treeインデックス
再構成
(バランシング)
Online
53 ©2011 Hewlett-Packard Japan, Ltd.
- 54. HP NonStop SQL/MX
p
超並列型RDBMSの実装
– ボトルネックの発生しないシェアード・ナッシング構成
ボトルネックの発生しないシェア ド ナッシング構成
– シングルインスタンス – 管理の容易なOSと一体化されたDBMS
– データは各CPUに分散させ、ディスクプロセスにて一元管理
• ディスクを増設することでRDBMSの性能が増強される
– プロセッサ間の CPU 1 CPU 2 CPU 3 CPU 4 CPU 5 CPU 6 CPU N
メッセージ通信は APP APP APP APP APP APP APP
ServerNetで実行
DP2 DP2 DP2 DP2 DP2 DP2 DP2
MPPアーキテクチャ
Range/Hash of Partitioning Key
CPU CPU CPU CPU
・・
メモリ メモリ メモリ メモリ
I/O I/O I/O I/O
Disk-P Disk-P Disk-P Disk-P Disk-P Disk-P Disk-P
RAID 1 RAID 1 RAID 1 RAID 1 RAID 1 RAID 1 RAID 1
54 ©2011 Hewlett-Packard Japan, Ltd.
- 55. 直線的拡張性の実現
– ディスクボリュームごとに専用のディスクプロセスが自動的に起動さ
れる
– 制御するディスク中のデータ処理を該当ディスクプロセスが全て実行
する
• SQLデータ処理の実行 (データスキャン、抽出、データ演算等)
• キャッシュデータ管理
• ロック制御
• トランザクション制御
– ディスクプロセス間の通信は発生しない
• パーティション分割することで性能を直線的に拡張可能
パ ティション分割することで性能を直線的に拡張可能
– チューニングはデータを均等にディスク/CPU間に分散するのみ
仮想シングルIPアドレス
アプリアプリ アプリアプリ アプリアプリ アプリアプリ
ディスク ディスク ディスク ディスク
プロセス プロセス プロセス プロセス
パーティション化されたデータファイル
55 ©2011 Hewlett-Packard Japan, Ltd.
- 56. HP NonStop SQL/MX
p
複雑なSQL文実行の並列処理
– ESP起動数やCPUはオ各ディスクプロセス(DP2)で検索をしながら 並列に
データスキャン、抽出、加工を行い、 必要データのみ転送
– ジョインやソートは複数のExecutor server process (ESP)により並列実行
• プティマイザが最適構成を割り出す
プテ イザが最適構成を割り出す
大容量DBの高速検索を実現
Master 結果セットマージ
ESP
ジョイン
ソート
ESP ESP ESP ユニオン
デ タスキャン
データスキャン
DP2 DP2 DP2 DP2 抽出(条件チェック)
データ集計
グルーピング
Cach Cach Cach Cach (ジョイン)
e e e e ロック管理
56 Hewlett-Packard Japan, Disk
©2011Disk Ltd. Disk Disk トランザクション
制御
- 57. まとめ
将来を見据えて
– CxOの発想を踏まえて ITを進化させる
CxOの発想を踏まえて、ITを進化させる
– ITコスト削減ではなく、攻めの費用確保ととらえる
– 受身 移行するの はなく 攻めの材料とし 踏み出す
受身で移行するのではなく、攻めの材料として踏み出す
[エンジニアの方々へ]
– そうはいえ、移行にはスキルが必要 皆さんの価値
– ツールもあります
– 一緒に付加価値のある領域のエンジニアに移行しましょう
57 ©2011 Hewlett-Packard Japan, Ltd.
- 58. LET’S DO AMAZING
© 2010 Hewlett-Packard Development Company, L.P.本書に含まれる内
容は、予告なく変更される場合があります。 Japan, Ltd.
58 ©2011 Hewlett-Packard