|
はじめに
連載・第1回目ではRed Brick Warehouse 6.2のテクニカル・ブリーフをご紹介しました。分かりやすさや内容はいかがでしたか?幸いにも多くの方々から反響をいただき、皆様からの期待感をひしひしと感じています。まだまだ開始したばかりで、うまくペースを掴めるまでにはいたっていませんが、いままで蓄えたRed
Brickの技術情報を、こまめに出して行きますので、今後ともお付きあいのほどお願いいたします。
第2回目のテーマは、前回のテクニカル・ブリーフの中で簡単にお話したRed Brick
Warehouse Version6.2 の新機能についての詳細なご紹介です。
2001年7月にRed Brick Warehouse はIBM製品として、IBMでの販売を開始しました。今回ご紹介するリリース6.2は、
Red Brick Warehouseの最新版というだけでなく、IBMとして、はじめて製品計画されリリースされた製品と位置付けられます。
10年以上におよぶRed Brick製品の歩みにおいて、今回のリリースは、ある意味でIBMによって生まれ変わった製品であると言えるかもしれません。このように、新たなスタートを切ったリリース6.2ですが、今回のリリースで追加された新機能は、大きく2種類に分類することができます。
ひとつ目は、Red Brickがすでに備えている機能で、今回はそれをさらに強化、拡張した機能です。
もうひとつは業界トレンドの機能で、かつ製品の特徴をさらに生かすための新機能です。
Red Brick Warehouse 6.2 をひと言で言い表すと、ユーザーからの要求が反映され、業界トレンドの技術が新たに実装されたハイブリットな製品と言えます。本製品は、従来製品に比べて、確実に進化したデータウェアハウス構築のエンジンに仕上げられています。
これからご紹介するRed Brick Warehouse 6.2が持つ個々の新機能を皆様に検証していただき、
データウェアハウスに特化したデータベース・エンジンとしてのRed Brickの新たな革新的機能をご理解いただければ幸いです。皆様のRed
Brickの技術面に関するご理解が深まることを願いながら、今回のテーマの新機能ご紹介を始めましょう。
Red Brick6.20の主な新機能一覧
Red Brick6.20では、パフォーマンス、DB管理、機能向上、新機能という全ての面で強化されています。
さまざまな機能強化
ローカルインデックス
ローカルインデックス
ローカルインデックスは、テーブルと同一の構成でTargetとBTreeインデックスをセグメント化します。
様々なメリットを得ることができるインデックスですが、チューニングの際には注意が必要です。
- 絞込がきついデータには推奨できません。
- TargetJoinを使用する場合は、パラレル化します。

セグメント管理
容易なセグメント管理
セグメントは、物理ファイルレベル(PSU)を管理するための論理領域で、パフォーマンスに多大に影響し、セグメント管理は、DBAやシステム運用者にとって重要なワークとなります。
Red Brick6.20から、より簡単にセグメント管理を行う為のいくつかの管理機能が追加されました。
- 使用していない領域のあるセグメントのシュリンク
−データを含まないセグメントをシュリンクします
- セグメントからのPSU削除
−データを含まないPSUをセグメントから切り離します
- DETACH実行中のインデックス無効化の制御
−空でないインデックスセグメントを無効化します
- RANGEの変更
−表構築時に指定したRANGE幅を変更します
- 表と同様にセグメント化されたStarインデックスの作成
−like data句を使用しファクト表と同様にセグメント化します
- ファクト表セグメントと同様に範囲化されたStarインデックスへのセグメントATTACH
−ALTER SEGMENT 〜ATTACH TO INDEX句を使用します
Remote TMU
Remote TMU
Remote TMUは、 クライアントからサーバ−へのデータロードを容易にします。また、クロスプラットフォーム
(WindowsからUNIXへ、UNIXからWindowsへ)間でのデータロードをサポートし、ETL機能を有するテーブルメンテナンスユーティリティとして、位置付けることができます。
- Remote TMUにより実現されること
- クライアントマシンからリモートマシン上のデータベースにデータをロード
- リモートマシンからデータをアンロード
- 運用マシンに対してよりよいセキュリティ環境を提供
- 統合ETL処理の支援
- 今までのTMUの制限(〜6.11)
- クライアントマシンからのロード/アンロードができません
- DBAはサーバーマシン上にロード用の設定ファイルを用意
Remote TMU概要
 |
Red Brickサーバー上に データファイルが存在せずとも、データロードができます |
|
Remote TMUの構成
Remote TMUの動作
Remote TMUは、クライアント側のClient TMUとサーバ−側のDriver TMU間で通信を行います。
Driver TMUは、データベースにデータロードを行うReal TMU(rb_ptmu)へデータロードの指示をします。
Remote TMU構成
バックアップ・リストア
バックアップ・リストア機能
Red Brickでは、2段階(フェーズ1、フェーズ2)でバックアップリストアの機能向上を進めてきました。
- フェーズ 1:(Ver6.11でリリース済み)
- チェックポイントバックアップのみのサポート
- レベル 0,1,2(*1)のバックアップをサポート
- データベース単位のリストアと部分リストアのサポート
- バックアップ・メディア:ディスク・ファイル・システム、テープ装置とパイプ
(*1)レベルの説明
レベル0はフルバックアップ、レベル1はフルバックアップからの差分バックアップ、レベル2は前回バックアップからの差分バックアップです。
- フェーズ 2 : (Ver6.20でリリース)
- オンライン・バックアップ(ロック無)およびチェックポイント・バックアップ(ロック有)のサポート
- リストア中の自動高速データ復旧
- 拡張されたバックアップ・メディア:ファイル・システム、テープ装置に加えてXBSA互換ストレージ管理システムをサポート
ストレージ・マネージャ構成
XML形式(エクスポートとデータロード)
XML形式(エクスポートとデータロード)
XMLを介して交換されるリレーショナルデータをロードできます。またXML形式への高速エクスポートも可能です。
- XML形式エクスポート機能
- 既存の高速エクスポート機能によりデータをエクスポート
- 各出力ファイルはヘッダファイルとしてDTD情報を持ちます
- XML形式データロード機能
- XMLのロード機能は Red Brick高速ローダーと密に統合
- ODBCやJDBCを使用する他のツールに比べ豊富な機能と著しい高速性
- Apache Xerces−C++パーサーを使用、ハイ・パフォーマンスな SAX2 API を使用
- TMUの一連の強力な機能の利点を活かせます
- 並列化、自動列作成、集積維持、ファイルの削除など
- Remote TMUを使えば、XMLファイルをリモート・マシンからロードできます
XML形式データの表への格納
XML形式データの表への格納

クエリーパフォーマンスモニタ
クエリーパフォーマンスモニタ
クエリーパフォーマンスモニタは診断ツールの一種です。あるクエリーが適切な性能目標を満たせない状態が続いた場合に、そのクエリーの性能を把握及び向上するために使用します。
- クエリー実行後の統計データ格納
- 異なる詳細度レベルにおける統計情報の収集
- クエリー・レベル
- クエリー内のプロセス・レベル
- プロセス内の演算子レベル
- 異なるチューニング・パラメータでのクエリー・パフォーマンスの比較
 |
(便利な使用例)
SET文で異なるチューニングパラメータを指定し統計情報を比較します
- ST_PERFORMANCE_COMMANDS
モニタされたコマンドの要約を格納。コンパイル時間、経過時間、ステータスなど
- DST_PERFORMANCE_OPSTATS
詳細な演算子レベルの統計情報を格納。CPU、I/O、メモリ、並列度、スピルなど
- DST_PERFORMANCE_IOSTATS
演算子ごとにアクセスした各PSUの論理 read/writeの統計を格納
|
|
|
ODBC
ODBC
Red Brick ODBC Driverは、マイクロソフト社のオープンデータベースコネクティビティー(ODBC)インターフェイス3.5の実装です。ODBCのエンハンスメントは、使用できる関数の拡張およびOLE DBサポートの2点です。
- ODBCドライバー
- 新規に使用できるようになった関数
POWER, EXP, LOG, LOG10,SQRT, DAYNAME, TIMESTAMPADD, TIMESTAMPDIFF, LENGTH,POSITION,LOCATE
- OLEDBのコネクティビティー
- OLEDBアプリケーションのデータを使用できる
- MS TransFormation Service(*1)を使用したRed Brickから他のDBへのデータ移行
(*1)MS TransTransFormation
Service データ変換サービス (DTS: Data Transformation Service)オブジェクト
モデルには、オブジェクトとコレクションのほか、DTSオブジェクト モデルを操作するアプリケーションの作成に使用される関連プロパティ、メソッド、およびイベントが含まれます。
JDBC
JDBC
Red Brick JDBC Driverは、JDBC APIのバージョン2.0に基づくPure Javaのタイプ4ドライバーです。
エンハンスメントでは、ODBCのリソース管理と同様な JDBC DataSource Administrator Toolの提供によって開発効率の向上が図れます。
JDBC DataSource Administrator Tool

主な機能
・データソースの管理
・デバッキング情報の表示
・JDBC Ping ツール
サポートするHTTPサーバー
・Apache Web Server
・Netscape Web Server
・Java Web Server
・IBM HTTP Server
|
SQL/OLAP関数
分析用関数の拡張
Red Brickサーバー専用に開発された独自のRISQL関数以外に、ANSI SQL−99標準のElementary OLAPパッケージで定義されているすべての関数をサポートしました。
- SQL99のOLAP関数
- ランキング関数 ・ナンバリング関数 ・集約関数 ・ratio to report関数
分析Window関数 (Partition句、Order句、 Frame句)
Window関数を使用した例

(使用例)
パーテーション内の現在行を中心に3行の範囲(フレーム)で、ある数値の合計を取得する。
- パフォーマンスの向上
- RISQL OLAP関数に比べパフォーマンスが向上(2〜3倍高速)
(*1)注意事項
・SQL/OLAP関数はRISQL関数と同じクエリーの中で使用できません。
・一部の関数はRISQL関数と互換性がありません。
Vista(ビュー定義)
Vista(ビュー定義)
Vistaは事前計算した集約を使用し、詳細データに対してのクエリーを書き換えます。Vistaの使用はクエリー性能を向上させる効果的な方法です。6.20からは、事前計算ビューの定義に複雑な記述が可能となります。
Group by句やSELECT句に、COUNT,DISTINCT,MIN,MAXや複雑な式の記述 ]
複雑な事前計算ビュー定義例
店規模の種類がいくつの州にありますか?
View定義
create view stype_cstate_view as (select type, count(distinct state)
from store group by store_type) using stype_cstate_table(stype, cstate);
 |
Vista(Advisor機能)
Vista (Advisor機能)
Advisorはデータベース内の既存の集約の使用度をログとして採取して、既存の事前計算ビューを分析後、クエリー性能を向上する新規の候補ビューをアドバイスします。6.20から複数の候補ビューを作成します。
複数の候補ビュー作成の例
|

- ユーザが店舗ごとに売上を抽出するクエリーを実行したとします
select store_name, sum(dollars) from sales, store
where sales.storekey = store.storekey group by store_name;
- Vista Advisorは複数の候補ビューを作成します。
STORE_KEYとSTORE_NAMEは、コードと名称の関係にあります、よって
候補ビュー1
select storekey, sum(dollars), count(*) from sales, store
where sales.storekey = store.storekey group by storekey;
候補ビュー2
select store_name, sum(dollars), count(*) from sales, store
where sales.storekey = store.storekey group by store_name;
|
その他のエンハンスメント
- よりコンパクトなシステムカタログ
- システムカタログの空き領域を再利用性し、サイズとメモリー使用量をおさえます。
システム表上のクエリー・パフォーマンスは向上によって、例えば大量のテーブルの作成や削除が高速です。
|