DB2 9.5 Overview菅原 - IBM

DB2 9.5 テクノロジー・オーバービュー
日本IBM ソフトウェア事業
技術理事 菅原香代子
製品プランへの 重要な要望
§ お客様からのフィードバックと要望
? お客様から要望されたフィーチャーの追加
? 保守作業の軽減へフォーカス
§ ISV イネーブルメント
? DB2への移行を簡単にするファシリティーとフィーチャの追加
§ SAP リレーションシップ
? SAPアプリケーションをサポートするためのDB2の機能拡張を引き続き
行う
§ XML 機能拡張
? 新しい、向上したXML機能
§ ウェアハウジング
? 大きな検索ワークロードに対するより速いアルゴリズムと新しいオプティ
マイゼーション・
テクニック
2
DB2 9.5の機能拡張
§ 管理とアドミニストレーション
? インストレーション
? データベース コントロール コンソール
§ ワークロード管理
? Service ClassとWorkload
§ パフォーマンスの向上
? スレッド・
アーキテクチャー
§ 規制の法令順守
? オーディット
? データベース ロール
§ SQL とXMLの機能拡張
§ アプリケーション開発
? Data Studio
3
DB2 9.5
管理と
アドミニストレーション
4
インストレーションの機能拡張
§
§
§
§
Non-root インストレーション
? Unix または Linuxでのnon-rootユーザーによるDB2のインストールとサービス
の機能
? いくつかのルートベースのフィーチャは (例 OS 認証)
) root ユーザによりポス
ト・
インストールする必要があり
Fix Pack インストレーション
? インスタンス更新フェーズの削除
? 二つの保守作業を削除
? Fix packの適用後、db2iupdtとdasupdtの自動実行
? 全ユーティリティーに対する自動rebindを使って、データベースのパッケー
ジを自動バインディング
Fix Pack のみ
? fix packによるリリース移行はなし
? Fixによる新しいリリースへの移行による副作用を削除
? 各バージョン、リリースに対する別々の保守ストリームを継続
? 注: DB2 9からこのリリースへはカタログの移行が必要
拡張されたUnicode
? ディフォルトでのUnicode データベースの作成
? non-Unicode データベースからUnicode データベースへ移行するお客様に対し 5
てcollation 互換を提供
データベース コントロール コンソール
§ アドミニストレーション・
コンソールへの要望の削減
? ウェブベースのオペレーショナルコンソール・
モデルへの移行
? コンソールを実行する特定のオペレーティング・システムへの要望を削
除
? データサーバー・
リリースからコンソールの配布を分離
§ オペレーショナル・アドミニストレーションと問題判別へフォーカス
? 日常のオペレーション・
タスク
? 全DB2 データサーバーの共通のツールとビューを追加
? DB2 for Linux, Unix, Windows, DB2 for z/OS, IDS
§ コンソールプロトタイプ
6
DB2 9.5
ワークロード管理
7
ワークロード管理の目的
§ 安定的、予測的な実行環境
§ 活動中のワークをモニターするための負荷の軽い、粒度の細かいモニター
方法
§ よりよいリソース管理
? 明示的にワーク間のリソースを配置 (CPU プライオリティー)
? 過度の、予想外のリソース消費を制限する(高負荷のクエリーのコント
ロール)
§ よりよいリクエスト管理
? ビジネス・
プライオリティーベースのワーク管理
? ワークのパフォーマンスのトラッキング
§ エンドツエンドのワークロード管理ソリューション
8
WLM の考え方
§ DB2 Service Class
? データベースの全ワークが実行されるところ
? DB2内で実行される全ワークのリソースのアサイメント、コントロール、
モニタリングのプライマリ・
ポイント
? super とsub classesの2階層構造をサポート
? super class はsub classへの共通のアトリビュートを提供する論理
エンティティー
§ DB2 Workload
? DB2 Service Classへつながれる入力のワーク
? システムへワークをサブミットするための管理と識別のプライマリーポ
イントサポート
? Connections が設立された時に、特定のWorkloadにマップされる
? 必要に応じて、unit of workの単位で再評価される
9
ワークロード管理の例
ユーザ データベース
リクエスト
Superclass 1
Workload A
Workload B
Workload C
Work
Action
Set
Subclass1.1
Subclass1.2
Subclass1.3
Workload D
Default User
Class
Default workload
システム データ
ベース リクエスト
Default System
Class
10
DB2 9.5
パフォーマンスの向上
11
スレッドベースのプロセスモデル
§ プロセス・モデルの制限を開放
§ スレッドエンジン・アーキテクチャーへの移行
? サーバータイプに依存しない基本的な実行パラレリズムを提供
? 全DB2ノードに対するシングルメモリー・
パラメータを提供
? DBMS, DB, プライベートメモリーにアロケートされている全メモリー
をコントロール
§ ほとんどのエージェントレベルの構成パラメータを削除し、残りを自動化
(例, maxagents, numpoolagents, numinitagents)
? チューニングを簡素化
§ エージェント・メモリの消費を削減
12
スレッドベースへの動機
§ 一般的なリソースの節約
? システム・ファイル・
ディスクリプターを著しく削減
§ パフォーマンスの向上
? スレッド間のコンテキスト・
スイッチは一般的にプロセス間より速い
§ メモリーの節約
? システムスレッドのオペレーションはプロセスほどコンテキストを要求し
ない
§ 使いやすさ/ TCO 向上
? スレッドによる期待される有利な点:
13
DB2 9.5
規則の
法令順守
14
オーディット・
ファシリティーの機能拡張
§ 静的、動的SQLステートメントの実際の実行に対する新しいオーディット記
録
? コンパイル環境とSQLテキストを含む(
適切な場合)
、オプションで入力
データ値も含む
§ 最大ファイル・サイズと場所の構成をサポートするためオーディットログファ
イル・インフラストラクチャの改善
§ 粒度の細かいオーディット制御
? ユーザ、グループ、ロールの認証IDのリストを含む
? オーディット・インディケーケータをベースとして表オブジェクト
? 信頼されるコンテキスト オーディットインディケーター
§ オーディットパフォーマンスの向上
§ DB2 for zOSとの互換性の向上
15
アイデンティティの主張
§ アイデンティティーの主張
? 3層環境でエンドユーザのアイデンティティーが簡単に効率的にデータ
ベースサーバへ伝わる方法を提供
? データベースサーバと特定のアプリケーションサーバ間の信頼されるコ
ンテキストの考え方を導入
§ 信頼されるコンテキストの優位点
? ユーザ アカウンタビリティー
? エンドユーザのアイデンティティーを知ることによってデータアクセス
オーディット能力を向上
? 共有user idをなくし、各人のuser idでオーディットする
? セキュリティーの向上
• 特権をユーザごとに指定することによって、よりコントロールできる
? DB2サーバにアクセスするsystem authid の誤った使用に対する懸
念を削除
? 最小限の特権セキュリティーの原理
16
データベース ロール
§
§
データベース ロール
? ロールメンバーシップはユーザまたはグループにアサインされ、ロール特権は
接続しているユーザーの全てのアクティビティーに可能
? ビュー、パッケージ、トリガーのようなSQLオブジェクトを作るのに適切な特権が
必要なユーザに対して、ロールを通してアサインすることが可能
データベース ロールの先進性
? データベースの権限と特権のアドミニストレーションの簡素化
? データベースの中で管理され、グループと違って、ビュー、トリガー、MQT,静的
SQLとSQLルーチンを作成する時にDB2によって考慮される
? 権限/特権
?
?
?
?
?
?
?
?
?
データベース権限
CREATE
索引特権
GRANT
パッケージ特権
GRANT
ルーティング特権
GRANT
スキーマ特権
GRANT
シーケンス特権
サーバー特権
表スペース特権
表, ビュー、ニックネーム 特権
ROLE developer
SELECT ON TABLE SERVER TO ROLE developer
SELECT ON TABLE CLIENT TO ROLE developer
SELECT ON TABLE TOOLS TO ROLE developer
ROLE developer TO USER BOB, USER ALICE
17
DB2 9.5
XMLとSQLの機能拡張
18
XML ストレージ拡張
§ XML の元表へのインライン格納
? Inline length パラメーターによりXML の行内の配置が可能
? 従来は一律に別のページに配置していた
? 最大ページ長までの長さ制限 (~32K)
? DB2 行圧縮機能がXML列に有効となる
? 性能向上が見込まれる
§ 非ユニコードデータベースのXMLサポート
? DB2 9ではユニコード・
データベースのみサポート
§ XML ローディング
? 表のXML列にデータを挿入するのにINPORTより高速な LOAD コマンド
19
XML 機能拡張
§ XML 関数
? XMLRow: 行をエレメントのシークエンスとしてパブリッシュ
? XMLGroup: 表をドキュメントとしてパブリッシュ
? XSLTransform: Extensible Style sheet Language Transformation (XSLT)
§ XML 列のチェック制約
? XML スキーマを使って、XML値のバリデーション評価
§ XML 列のトリガーサポート
? スキーマバリデーション評価をbefore トリガーで実施
§ XML レプリケーション
? XML データの他のデータベースへのレプリケーションサポート
20
XQuery 拡張
§ SQLクエリーへのパラメータ渡し
? XQuery でSQLを実行する時にパラメータを渡す
XQUERY
for $docid in (1,2,3),
$j in db2-fn:sqlquery('select xmlcol from t1 where docid =
parameter(1)',
$docid)/bib/book
where count($j/author) > 1
return $j;
§ サブドキュメントの更新
? XQuery Update 言語のサポート
update T set doc = XMLQuery ('
transform
copy $r := $doc
do
delete {$r/score},
replaceValue of {$r/salary} with $r/salary * 1.1,
insert {<d>Ph.D.</d>} into $r//emp,
rename ($r/status[1]) to "state"
return $r'
passing doc as "doc",
cast (? as double) as "raise",
id as "i");
21
SQL プログラミングの拡張
§ プロシージャーとアプリケーションでのARRAYデータタイプの使用をサポート
? パラメータパッシングの簡素化
CREATE TYPE numbers AS DECIMAL(10, 0) ARRAY[5];
CREATE TYPE names AS VARCHAR(100) ARRAY[];
§ グローバル変数
? SET, SELECT INTO, VALUES INTO ステートメントを変数作成に使用
CREATE VARIABLE dba.disableTriggers CHAR(1);
CREATE VARIABLE hr.isBilling INTEGER
DEFAULT ((SELECT 1 FROM emp
WHERE id = USER AND dept = 'BILLING'));
§ より大きなアイデンティファイヤーのサポート
? 全てのアイデンティファイヤーを128バイトに拡大
? 幾つかの例外:
? バッファープール, 表スペース, 索引エクステンション, ADT トランス
フォームグループ, タイプ マッピング
22
新しいデータ・タイプ
§ 10進数を正確に表すための新しいデータ・
タイプ
– DECFLOAT(16) => 16 桁で8バイト
§ Decimal floatの符号とオペレーションはIEEEで設定
Property
DECFLOAT(16) DECFLOAT(34)
精度
16
34
MinE (+/-9.9E?)
-383
-6143
MaxE (+/-9.9E?)
+384
+6144
Storage (bytes)
8
16
ハードウェアサ
ポート
Yes, on Power 6
Yes, on Power 6
§ NUMBER モード
– DECFLOAT(16)のシノニム
– もし精度と桁が含まれていない場合は DECIMAL値になる
§ VARCHAR2 モード(ベータ)
– 普通のVARCHARとは少し違うセマンティック
– 'Hello' || null => 'Hello' not null!
23
オプティミスティック ロッキング
§ 長くロックを保持することを回避するための方法を提供
§ 最初のクエリー以降、変更されていない行に対してのみ更新を保障する
? RID_BIT(): 関数が全ノードの表の中の行を認識する
? ROW CHANGE TOKEN : 提供されたトークンと比較することによって、
行が変更されていないことを有効とする
? 更新のターゲットを素早く決定するのに使われる
SELECT T.*, RID_BIT(T), ROW CHANGE TOKEN FOR T FROM T;
? 選択したひとつの行 (しかしこのトランザクション中ではロックされてい
ない)をオプティミスティックに削除 (または更新) :
DELETE FROM T WHERE RID_BIT(T)=? AND ROW CHANGE TOKEN
FOR T = ?
24
スカラー関数の変更
§ リストの中の最小値
? LEAST/MIN
LEAST(4,6,2) = 2
§ リストの中の最大値
? GREATEST/MAX
GREATEST(5,9,2) = 9
§ リストの中の最初のnon-null 値
? NVL/COALESCE/VALUE
NVL(cast (null as integer), 3, 2) = 3
§ インライン CASE 表現
DECODE(c1, v1, r1, v2, r2, e)
CASE c1
WHEN v1 THEN r1
WHEN v2 THEN r2
ELSE e
END
25
SQL シンタックスの変更
§ SELECT UNIQUE
? SELECT DISTINCTの代わりに
§ CURRVAL, NEXTVAL
? NEXT VALUE FORの代わりに
NEXT VALUE FOR seq => seq.NEXTVAL
§ MINUS ( EXCEPTの代わりに)
§ オプショナル サブクエリー コリレーション名
§ DUAL
? SYSIBM.SYSDUMMY1と同じ
SELECT CURRENT DATE FROM DUAL
=> 08/04/2007
§ ROWNUM
? ROW_NUMBER() OVER()と同じ
SELECT ROWNUM FROM EMPLOYEE ORDER BY SALARY
26
SQL シンタックスの変更(続き)…
§ + Join シンタックス
? 暗黙的な結合を外部結合にする
SELECT * FROM outer, inner
WHERE outer.pk1 = inner.fk1(+)
AND outer.pk2 = inner.fk2(+)
§ CROSS JOIN (直積結合)
SELECT * FROM T CROSS JOIN S
is equal to
SELECT * FROM T JOIN S ON 1=1
27
DB2 9.5
アプリケーション開発
28
共通のAD とツールの拡張
§ DB2 LUW, DB2 for z/OS, IDSをサポートする共通のアプリケーション開発
とツール、しかしデータサーバのリリース・
スケジュールとは分離
§ 含まれるAD テクノロジー:
– Java Common Client (JCC), .NET, LinQ, PHP, Ruby, EGL,
WebSphere persistence, AD tooling, open source AD offerings,
CLI common client
§ 共通のAPIとツールを通してマーケットでのIBMデータベースの差別化
§ 共通のユーザ経験を通して製品間のポータブルなカストマー・スキル
– クライアント・ユースケースに対するEclipseの利用 (分析, 開発)
§ 共通のコンポーネントを再利用することにより開発のサポートのコストの低減化
§ IBMのデータサーバとISVに対する一元的な経験
29
IBM Data Studio – 統合されたライフサイクル
完全なエンドツーエンド・
ソリューション
アプリケーション データベース
開発者
開発者
その他
開発
• コーディング
•デバッグ
• チーミング
• テスト
• チューニング
デザイン
•論理設計モデリング
•物理データモデリング
•統合モデリング
デプロイ
開発
Eclipse
共有
Web
管理
設計
IBM
データベース
アドミニストレー
ター
管理
• データベースアドミニスト
レーション
•データ管理
• 変更管理
• リカバリー管理
• ストレージ管理
•パフォーマンス管理
統治
• セキュリティーアクセス
• セキュリティ分析
• データオーディット
• データ・アーカイブ
•データマスキンング
• データ暗号化
統治
ビジネスアナリスト データベー
スアーキテク
ト
セキュリティー
アドミニストレー
ター
30
IBM Data Studio v1.1
§ 開発者とデータベース管理者のためのツール
§ 2007年
2007年10月に使用可能
10月に使用可能
§ 全プラットフォームのDB2
とIDSをサポート
フォームのDB2と
IDSをサポート
DB2 for LUW
§
§
§
§
§
§
§
§
§
§
§
§
§
§
§
§
§
物理データモデリング
データ分散ビューアー
統合クエリーエディタ
SQL ビルダー
SQLランタイムデバッガ
SQLランタイムデバッガ
Java ランタイムデバッガ
XML エディターr
ーr
XML Schema エディ
ター
pureQuery for Java
Data Web Services
オブジェクト管理
データ管理
統計情報の更新
ヘルスモニタリング
Visual Explain
セキュリティーアクセス
管理
プロジェクト管理
DB2 for z/OS
DB2 for i5/OS
IDS
§ 物理データモデリング
§ 物理データモデリング
§ 物理データモデリング
§
§
§
§
§
§
§
§
§
§
§
§
§
§
§
§
§
§
§
§
データ分散ビューアー
統合クエリーエディター
SQL ビルダー
SQLランタイムデバッガ
SQLランタイムデバッガ
Java ランタイムデバッガ
XML エディター
XML Schema エディタ
pureQuery for Java
Data Web Services
オブジェクト管理
データ管理
統計情報の更新
ヘルスモニタリング
Visual Explain
セキュリティーアクセス
管理
プロジェクト管理
§
§
データ分散ビューアー
統合クエリーエディター
SQL ビルダー
SQLランタイムデバッガ
SQLランタイムデバッガ
Java ランタイムデバッガ
§ XML エディター
§ XML Schema エディ
ター
§ pureQuery for Java
§ Data Web Services
§ オブジェクト管理
§ データ管理
§ セキュリティーアクセス
管理
§ プロジェクト管理
データ分散ビューアー
統合クエリーエディター
SQL ビルダーr
ビルダーr
§ XML エディター
§ XML Schemaエディ
Schemaエディ
ター
§ pureQuery for Java
§ Data Web Services
§ ポブジェクト管理
§ データ管理
§ セキュリティーアクセス
管理
§ プロジェクト管理
31
Data Perspective ビュー
32
CP
IRB
Non-Java アプリケーション開発の要望
§ 記述:
– Microsoft とオープンソース特定のモデルに対するアプリケーション開
発と実行のサポート
§ 機能を提供 …
– オープンソース・
プログラミング言語のサポートの拡張
– 全サーバーに対する .NET 機能の拡張
§ キー・テクノロジー・
コンポーネント:
– 全サーバに対する64 bit .NET 拡張とサポート
– 新しいサーバ データタイプのサポート
– Ruby on Rails サポートとPHP 拡張
– Python サーバ サポート
– 統合されたXQuery ビルダーとSOAのサポート
33
CP
IRB
Java アプリケーション開発の要望
§ 記述:
? Javaプラットフォームに対するアプリケーション開発と実行のサポート
§ 機能を提供 …
? JDBC 標準レベルの更新
? XML とSOA ツールサポートの改善
? 全サーバに対するJava機能の向上
§ キーテクノロジーコンポーネント:
? Python サーバサポートとIDS との統合
? JDBC 4 コンプライアンス
? XQueryビルダーの統合とSOA web サービスツールのサポート
? 新しく統一されたVisual Explainとの統合
34
pureQuery テクノロジーの目的
§ アプリケーションの開発
? Java ソースファイルの中でのSQL開発を助けるためのツール
? 単純なSQL API, 簡単に書けて拡張可能
? 一般的なJava フレームワークのための複数の API “スタイル”
§ 重要なデータソースを簡単にクエリーできる
? データベース、キャッシュ、コレクション, XML
§ 問題判別
? 問題が起こった時に、ソースを素早く発見
§ ガバナンス / 管理
? SQLを個々のアプリケーションに追跡、カストマーの変更管理プロセスと静
的SQLパッケージとアクセスパスを見る、
§ 高パフォーマンスとスケーラビリティーを提供
? アプリケーション: ショートパスレングス, メタデータのコーディング, オプショ
ナルコード作成, JDBCと静的SQL実行最適化
35
? データベース: 静的SQL, バッチ, データベースへ直接アプリのSQLを渡す
API 比較: 一行の取り出し
§ JDBC
java.sql.PreparedStatement ps =
con.prepareStatement("SELECT ADDRESS FROM EMP WHERE
NAME=?");
ps.setString(1, name);
java.sql.ResultSet names = ps.executeQuery();
names.next();
addr = names.getString(1);
names.close();
§ SQLJ:
#sql [con] { SELECT ADDRESS INTO :addr FROM EMP WHERE
NAME=:name };
XMLファイル 又は Java アノテーション
§ pureQuery:
SELECT ADDRESS FROM EMP
NAME=?1;
addr = db.queryFirst("SELECT ADDRESS FROM EMP WHERE
WHERE
NAME=:name", String.class, name);
addr = getAddress(name);
36
pureQuery データ更新
§ Write オペレーションは “
update”メソッドによって実行
§ Insert
int rowsAffected = data.update("INSERT INTO person (id,
name,address)
VALUES (:id, :name, :address)", person);
§ 多数のinsertとupdate ? 自動的にバッチ
rowsAffected = data.updateMany("INSERT INTO person (id,
name,address)
VALUES (:id, :name, :address)", people);
§ Update
int rowsAffected = data.update("UPDATE person set name = :name,
address = :address WHERE id = :id", person);
§ Delete
int rowsAffected = data.update("DELETE FROM person where id=?",
id);
37
DB2 Warehouse 9.5
38
IBM DB2 Warehouse 9.5
モデリングと設計
データマイニン
グ& 可視化
インライン分析
4
キュービング
サービス 1
機能拡張
非構造化分析
3
新
新
パフォーマンス最適化
2
データベース
パーティショ
ニング
新/
機能拡張
ワークロード管
理
ディープ圧縮
5
5
データ移動とトランスフォーメーション
機能拡張
データベース管理
機能拡張
アドミニストレーションと管理
組み込み解析
6
機能拡張
IBM DB2 Warehouse
39
キュービング サービス
レポーティング ツール
Alphablox
Excel
MDX
キュービング サービス
MDX
MDX
SQL
DB2 Warehouse
40
非構造化分析
設計
アノテータの
構成
(controlled
Vocabulary,
regular
expressions
taxonomies)
データフロー
の定義
メタデータの
作成
ランタイム
トランスフォーメーション
エンジン
UIMA
Warehouse
アプリケーション
分析 /レポーティング
レポーティ
ング OLAP
データ
マイニ
ング
Intelligent Miner
構成されたアノテータ
Cube views
デプロイメントの準備
UIMA ツール
分析エンジン
のパッケージ
UIMA
アノテーター,
ディクショナリー
Design studio
Warehouse
アプリケーション
の作成
EDW
ソースDB
Warehouse
アプリケーション
(テキストフィールド)
EDW
41
ご清聴あり
うございまし
た
DB2
9.5 がと
テクノ
ロジー・
オー
バービュー
42