Oracle Database 2日でデータ・ウェアハウス・ガイド 11g リリース1(11.1) E05764-01 |
|
Oracle Data Warehouseはデータ・ウェアハウスに固有の問合せのタイプおよびデータのサイズを処理するために明示的に構成され、最適化されたOracle Databaseです。この項では、データ・ウェアハウス環境を最初に構成する方法を説明します。内容は次のとおりです。
次の手順では、Oracle Databaseをデータ・ウェアハウスとして使用できるように構成します。その後、Oracle Warehouse Builderをインストールします。Oracle Warehouse Builderは、Oracleデータベースを強化し、データ管理計画を立案するためのグラフィカル・ユーザー・インタフェースを備えています。
Oracle Warehouse Builderは、Oracle DatabaseのStandard EditionおよびEnterprise Editionにパッケージされているデータ統合製品です。
「Oracle Warehouse Builderへのアクセス」の説明に従います。その後は、Oracle Warehouse Builderを使用して一般的なデータ・ウェアハウスのタスクを完了する方法の学習に役立つデモンストレーションをインストールします。
データ・ウェアハウスのアーキテクチャの基本的な構成要素は、オンライン・トランザクション処理(OLTP)システムと同じです。ただし、データのサイズが大規模であるため、個々の基礎単位に合わせて数量を変える必要があります。データ・ウェアハウスのサイジングは、システムに必要なスループットが起点になります。これは次のいずれか、あるいは両方になります。
一般的に、どの特定の時間でも必要とする最も高いスループットを見積もる必要があります。
ハードウェア・ベンダーによって適切なデータ・ウェアハウス・アプリケーション設定が推奨されるため、サイジングに役立ちます。詳細は、任意のハードウェア・ベンダーにご相談ください。
データ・ウェアハウスのパフォーマンスを最大限にするには、適切なサイジングと安定したハードウェア構成が必要です。次の項では、適切な構成に重要なポイントを説明します。
中央演算装置(CPU)はデータ・ウェアハウスの計算機能に使用されます。データ・ウェアハウスの操作を実行するには、十分な処理能力を持つCPUが必要です。パラレル操作は同等のシリアル操作よりもCPUに負担がかかります。
必要とするCPU数のガイドラインとして見積もった最も高いスループットを使用します。大まかな見積りとして、次の公式を使用します。
つまり、CPUは1秒間に約200MBまで耐えられます。たとえば、システムが1秒間に1200MBの最高スループットを必要とする場合、システムは<number of CPUs> = 1200/200 = 6 CPU
を必要とします。1つのサーバーに6つのCPUを持つ設定であれば、このシステムで処理できます。2ノード・クラスタ・システムには両方のノードに3つのCPUを設定できます。
データ・ウェアハウスのメモリーは大規模なソートなどメモリーに負担をかける処理を行う際に特に重要になります。大部分の問合せは大容量のデータにアクセスするため、データ・キャッシュへのアクセスはデータ・ウェアハウスにとっては重要ではありません。データ・ウェアハウスにはOLTPアプリケーションとは異なり重要なメモリー要件がありません。
CPU数は必要なメモリー容量のよいガイドラインになります。次の単純な公式を使用すると、選択したCPUで必要なメモリー容量を計算できます。
たとえば、6つのCPUを持つシステムが必要とするメモリー容量は2 * 6 = 12 GB
になります。大部分の一般的なサーバーはこの要件を満たしています。
データ・ウェアハウス環境での一般的な問題は、必要とする最大容量に基づいた記憶領域のサイジングです。記憶領域要件に排他的に基づいたサイジングは、スループットのボトルネックを作成する傾向があります。
必要なディスク・アレイの数を知るために、必要とするスループットを使用します。また、ディスク・アレイが耐えられるスループットを知るために、記憶領域プロバイダの指定を使用します。記憶領域プロバイダはGB/秒で測定され、最初のスループットの見積りはMB/秒に基づいていることに注意してください。平均ディスク制御の最大スループットは1秒当たり2GBで、耐えられるスループットに換算すると(70% * 2 Gbit/s) /8 = 180 MB/s
となります。
必要なディスク・アレイ数を決定するには、次の公式を使用します。
たとえば、1秒間に1200MBのシステムは、1200 / 180 = 7 disk arraysとなり、少なくとも7つのディスク・アレイが必要となります。
必要なスループットを維持するために十分な物理ディスクがあるか確認してください。ディスクのスループット数をディスク・ベンダーに尋ねてください。
エンドツーエンドのI/Oシステムは、CPUおよびディスクを含んだコンポーネントで構成されます。バランスのよくとれたI/Oシステムには、I/Oシステムのすべてのコンポーネントに対して同等の帯域幅が必要です。これらのコンポーネントには次が含まれます。
各コンポーネントにはバランスのよくとれたI/Oシステムにするために十分なI/O帯域幅が提供される必要があります。見積もった最初のスループットおよびベンダーによるハードウェアの指定は、必要な個別のコンポーネントの量を決定する基準になります。次の表にある変換を使用して、ベンダーによるドット区切りで表された最大スループット数をバイト数で表された耐えられるスループット数に変換します。
コンポーネント | バイト | 1秒当たりのバイト数 |
---|---|---|
HBA |
2Gビット |
200MB |
16ポート・スイッチ |
8×2Gビット |
1200MB |
Fibre Channel |
2Gビット |
200MB |
GigE NIC |
1Gビット |
80MB |
Inf-2Gビット |
2Gビット |
160MB |
十分なI/O帯域幅を確保するために十分なコンポーネントを持つには、ディスクでのデータのレイアウトも成功と失敗を分ける鍵となります。すべてのディスク・アレイに対して十分なスループットを持つシステムを設定し、取得しようとする問合せの全データが1つのディスクに格納されている場合、1つのディスクがボトルネックとなるため、必要なスループットを確保することができません。このような状況を避けるためには、できるかぎり多くのディスク、理想はすべてのディスクへデータをストライプ化します。1MBに対して256KBのストライプのデータは、マルチブロック読取り操作および複数のディスクへのデータの振り分け間でのよいバランスを提供します。
ASMはディスク・グループのディスクに対してデータをストライプ化するために使用できるOracle Databaseのコンポーネントです。ASMは全ディスクにおいてバランスのとれたデータを保証します。ディスクは、ASMの実行中に追加または削除でき、すべての使用可能なディスクに対して記憶領域を自動的にリバランスします。ASMはファイル・システムのデータのミラー、およびディスク障害の場合データ損失の回避のために使用できます。ASMのデフォルトのストライプ・サイズは1MBです。ストライプ・サイズは128KBまで下げることができます。
ASMを使用しないでストレージ操作を実行することもできますが、失敗する可能性が高くなります。そのため、ASMの使用をお薦めします。
Oracle Databaseのインストールの前に、ハードウェアおよびオペレーティング・システムのレベルで設定を検証する必要があります。オペレーティング・システムで必要なスループットおよびパフォーマンスが実行されない場合、Oracle Databaseはユーザー要件に合せて実行できなくなります。スループットを検証する2つのツールはdd
ユーティリティおよびOrionです。
UNIXまたはLinuxでオペレーティング・システムのスループットを検証する基本方法は、dd
ユーティリティを使用することです。dd
ユーティリティは、データ・ブロックをディスクから直接読み取る基本方法で、関連するオーバーヘッドがほとんどないので、dd
ユーティリティからの出力は信頼性の高い測定です。Oracle Databaseはdd
ユーティリティが実現する最大スループットの約90パーセントに到達します。
dd
ユーティリティを使用する手順次は、dd
の使用に最も重要なオプションです。
bs=BYTES: Read BYTES bytes at a time; use 1 MB count=BLOCKS: copy only BLOCKS input blocks if=FILE: read from FILE; set to your device of=FILE: write to FILE; set to /dev/null to evaluate read performance; write to disk would erase all existing data!!! skip=BLOCKS: skip BLOCKS BYTES-sized blocks at start of input
Oracle Databaseが達成可能な最大スループットを見積もるため、典型的なデータ・ウェアハウス・アプリケーションのワークロード(大規模かつ、ランダムで連続したディスク・アクセスによる)を模倣します。
次のdd
コマンドは合計2GBを読み取る2つのデバイスに対してランダムで連続したディスク・アクセスを実行します。スループットは次のコマンドを終了するのに必要な時間によって分けられた2GBです。
dd bs=1048576 count=200 if=/raw/data_1 of=/dev/null & dd bs=1048576 count=200 skip=200 if=/raw/data_1 of=/dev/null & dd bs=1048576 count=200 skip=400 if=/raw/data_1 of=/dev/null & dd bs=1048576 count=200 skip=600 if=/raw/data_1 of=/dev/null & dd bs=1048576 count=200 skip=800 if=/raw/data_1 of=/dev/null & dd bs=1048576 count=200 if=/raw/data_2 of=/dev/null & dd bs=1048576 count=200 skip=200 if=/raw/data_2 of=/dev/null & dd bs=1048576 count=200 skip=400 if=/raw/data_2 of=/dev/null & dd bs=1048576 count=200 skip=600 if=/raw/data_2 of=/dev/null & dd bs=1048576 count=200 skip=800 if=/raw/data_2 of=/dev/null &
検証にはデータベースの記憶領域に含む予定のすべての記憶領域装置を含める必要があります。クラスタ環境の構成時に各ノードからdd
コマンドを実行する必要があります。
Orionはスループットを測定するためのシステムで、Oracleのようなワークロードを模倣するためにオラクル社が提供するツールです。dd
ユーティリティと比較すると、Orionには次の利点があります。
オラクル社はデータベースがすでにインストールされている場合でも、最大の達成可能なスループットを検証するためにOrionの使用をお薦めします。
次はサポートされるI/Oワークロードのタイプです。
各タイプのワークロードでOrionは1秒当たりのMB、1秒当たりのI/OおよびI/O待機時間などのパフォーマンス・メトリクスを計測するためのI/Oロードの異なるレベルで検証を実行できます。データ・ウェアハウス・ワークロードは複数のプロセスによって発行された連続するI/Oスループットによって一般的に特徴づけられています。構築するシステムのタイプに応じて異なるI/Oシミュレーションを実行できます。例は次のとおりです。
http://www.oracle.com/technology/software/tech/orion/index.html
Orionはベータ版なのでサポートされていないことに注意してください。
Orionを起動する手順は、次のとおりです。
$ orion -run simple -testname mytest -num_disks 8
標準出力は次のとおりです。
Orion VERSION 10.2 Command line: -run advanced -testname orion14 -matrix point -num_large 4 -size_large 1024 -num_disks 4 -type seq -num_streamIO 8 -simulate raid0 -cache_size 0 -verbose This maps to this test: Test: orion14 Small IO size: 8 KB Large IO size: 1024 KB IO Types: Small Random IOs, Large Sequential Streams Number of Concurrent IOs Per Stream: 8 Force streams to separate disks: No Simulated Array Type: RAID 0 Stripe Depth: 1024 KB Write: 0% Cache Size: 0 MB Duration for each Data Point: 60 seconds Small Columns:, 0 Large Columns:, 4 Total Data Points: 1 Name: /dev/vx/rdsk/asm_vol1_1500m Size: 1572864000 Name: /dev/vx/rdsk/asm_vol2_1500m Size: 1573912576 Name: /dev/vx/rdsk/asm_vol3_1500m Size: 1573912576 Name: /dev/vx.rdsk/asm_vol4_1500m Size: 1573912576 4 FILEs found. Maximum Large MBPS=57.30 @ Small=0 and Large=4
この例では、特定のワークロードの最大スループットは1秒当たり57.30MBです。
環境設定およびOracle Databaseソフトウェアのインストール後、データベース・パラメータが正しく設定されていることを確認します。設定する必要があるデータベース・パラメータは多くありません。
一般的なガイドラインとして、特に理由がないかぎり、データベース・パラメータは変更しないでください。データ・ウェアハウスの設定には、Oracle Enterprise Managerを使用します。様々なパラメータ設定を表示するには、「データベース」ページに移動して「サーバー」をクリックします。「データベース構成」で「メモリー・パラメータ」または「すべての初期化パラメータ」をクリックします。
上位レベルには、2つのメモリー・セグメントがあります。
Oracle Databaseは2つのメモリー領域のメモリー・コンポーネントの配布を自動的にチューニングします。そのため、設定する必要があるのは次のパラメータのみです。
SGA_TARGET
SGA_TARGET
パラメータは共有メモリーに分配するメモリー容量です。データ・ウェアハウスの場合、SGAはPGAによって消費される合計メモリーと比べると比較的小さい容量です。まずは、合計メモリーの25パーセントをOracle DatabaseからSGAへ分配します。SGAの最小値は100MBです。
PGA_AGGREGATE_TARGET
PGA_AGGREGATE_TARGET
パラメータはすべてのセッションの合計PGAが消費するターゲット・メモリー容量です。まずは、次の公式を使用してPGA_AGGREGATE_TARGET
値を定義します。
MEMORY_TARGET
およびMEMORY_MAX_TARGET
MEMORY_TARGET
パラメータによってターゲットのメモリー・サイズを設定でき、関連した初期化パラメータMEMORY_MAX_TARGET
によって最大ターゲット・メモリー容量を設定できます。データベースは、システム・グローバル領域(SGA)および集計プログラム・グローバル領域(PGA)間の要件に従ってメモリーを再分配し、ターゲット・メモリー・サイズに対してチューニングします。ターゲット・メモリー初期化パラメータは動的であるため、データベースの再起動なしにいつでもターゲット・メモリー・サイズを変更できます。最大メモリー・サイズは上限として機能するため、ターゲット・メモリー・サイズを非常に高い値に設定してしまうことはありません。また特定のSGAコンポーネントが簡単に縮小できないこと、または最小サイズで保持される必要があるため、ターゲット・メモリー・サイズを過度に小さく設定してしまうことも防止します。
次で示すように、ALTER
SYSTEM
の発行により初期化パラメータの設定ができます。
ALTER SYSTEM SET SGA_TARGET = 1024M;
初めてデータ・ウェアハウスを使用する際は、Database Configuration Assistant(DBCA)の実行時に選択できるデータ・ウェアハウス・テンプレート・データベースが便利です。ただし、次の初期化パラメータを考慮すれば、どのデータベースでもかまいません。
COMPATIBLE
COMPATIBLE
パラメータは以前のリリースに対してデータベースが持つ互換性のレベルを識別します。最新機能を活用するには、COMPATIBLE
パラメータでデータベースのリリース番号に設定します。
OPTIMIZER_FEATURES_ENABLE
上位のコストベースのオプティマイザ機能を活用するには、このパラメータがデータベースの現行バージョンの値に設定されているか確認します。
DB_BLOCK_SIZE
デフォルト値の8KBは、データ・ウェアハウスのほとんどの要件に適しています。表圧縮を使用する場合は、より大きなブロック・サイズを指定することを検討してください。
DB_FILE_MULTIBLOCK_READ_COUNT
DB_FILE_MULTIBLOCK_READ_COUNT
パラメータを使用すると、単一オペレーティング・システムの読取りコールでデータベース・ブロックの読取りができます。データ・ウェアハウスの一般的なワークロードは多くの連続したI/Oで構成されているため、多数の小さいI/Oではなく、少数の大きいI/Oを活用できるようにします。このパラメータの設定時、ブロック・サイズおよびオペレーティング・システムの最大I/Oサイズを考慮に入れて、次の公式を使用します。
最大のオペレーティング・システムのI/Oサイズは64KBから1MBの間で変化します。
PARALLEL_MAX_SERVERS
PARALLEL_MAX_SERVERS
パラメータは、パラレル実行の使用可能な最大プロセス数のリソース制限を設定します。パラレル操作には、操作のあらゆる表に属性を付与する最大並列度(DOP)として問合せサーバーのプロセス数が最大2倍必要です。
Oracle Databaseはほとんどのシステムにとって十分なデフォルト値をPARALLEL_MAX_SERVERS
パラメータに設定します。PARALLEL_MAX_SERVERS
のデフォルト値は次のとおりです。
上位のDOP属性を持つ表のパラレル問合せにはこれは十分ではない可能性があります。オラクル社は上位のDOPの問合せを実行するユーザーには、PARALLEL_MAX_SERVERS
を次のように設定することをお薦めします。
たとえば、PARALLEL_MAX_SERVERS
パラメータに64を設定することで、各問合せは各セットの8つのDOPを持つ2つのスレーブ・セットを使用することを想定し、同時に4つのパラレル問合せを実行できます。
ハードウェア・システムがCPUバインドでもI/Oバインドでもない場合、問合せサーバー・プロセスを追加することによって、システムに同時パラレル実行ユーザーの数を増やすことができます。一方システムがCPUバインドまたはI/Oバインドになる場合、同時ユーザーの追加はすべてのパフォーマンスに弊害をもたらします。PARALLEL_MAX_SERVERS
パラメータを慎重に設定することが、同時パラレル操作数の制限に効果的な方法です。
PARALLEL_ADAPTIVE_MULTI_USER
TRUE
またはFALSE
になるPARALLEL_ADAPTIVE_MULTI_USER
パラメータは、現行のワークロードに応じて特定の文の並列度を動的に決定するためのアルゴリズムをサーバーが使用するどうかを定義します。この機能を活用するには、PARALLEL_ADAPTIVE_MULTI_USER
をTRUE
に設定します。
QUERY_REWRITE_ENABLED
マテリアライズド・ビューに対して問合せのリライトを活用するには、このパラメータをTRUE
に設定する必要があります。このパラメータのデフォルトはTRUE
です。
QUERY_REWRITE_INTEGRITY
QUERY_REWRITE_INTEGRITY
パラメータのデフォルトはENFORCED
です。これは、有効で検証された主キー制約、一意キー制限、および外部キー制限でパラメータ自体が基準になる場合、データベースが完全に最新のマテリアライズド・ビューのみに対して問合せを上書きするということです。
TRUSTED
モードでは、オプティマイザはマテリアライズド・ビューのデータが現行であり、ディメンションで宣言された階層関係およびRELY
制限が正確であるものとみなします。
STAR_TRANSFORMATION_ENABLED
最適化されたスター型変換を活用するには、このパラメータをTRUE
に設定します。
Oracle Warehouse Builderは、従来のデータ・ウェアハウスを含む様々なタイプのデータ管理計画の設定および配布が可能な柔軟なツールです。
Oracle Database 11g には、Oracle Warehouse Builderサーバー・コンポーネントが事前にインストールされています。また、Oracle Warehouse Builderリポジトリのスキーマも含まれています。
SYSまたはSYSDBAユーザーとしてSQL*Plusに接続します。次のコマンドを実行します。
SQL> ALTER USER OWBSYS ACCOUNT UNLOCK;
SQL> ALTER USER OWBSYS IDENTIFIED BY
owbsys_passwd;
Windowsの場合、「スタート」→「プログラム」→「Oracle」→「Warehouse Builder」を選択後、「デザイン・センター」を選択します。
UNIXの場合、owb home/owb/bin/unixに移動し、owbclient.sh
を実行します。
単一のOracle Warehouse Builderリポジトリでは、関連付けられているオブジェクト上で作業している一連のユーザーに対応している各ワークスペースで、複数のワークスペースを定義できます。たとえば、開発、テストおよび本番などの各環境に対してワークスペースを作成できます。
簡略化するために、MY_WORKSPACEという1つのワークスペースを作成し、ユーザーを割り当てます。
「デザイン・センター」ダイアログ・ボックスで、「詳細を表示」をクリックした後、「ワークスペース管理」をクリックします。
「リポジトリ・アシスタント」が表示されます。
プロンプトに従い、「リポジトリ・アシスタント」でデフォルト設定を受け入れ、ワークスペースを作成し、ユーザーをワークスペース所有者として割り当てます。
この後の項では、複数のフラット・ファイル・ソースのデータの統合、データの変換および新規リレーショナル・ターゲットへのロード方法について、演習を使用して説明します。このガイドで提供されている演習を実行するには、Oracle Warehouse Builderデモンストレーションをダウンロードする必要があります。このデモンストレーションでは、製品への理解を深めるために多様なOracle Warehouse Builderオブジェクトを作成するフラット・ファイル・データおよびスクリプトが用意されています。
デモンストレーションは、owb_demo.zip
と呼ばれるzipファイル内の一連のファイルで構成されています。次のリンクで取得できます。
http://www.oracle.com/technology/obe/admin/owb10gr2_gs.htm
zipファイルには、SQLスクリプト、値の形式がカンマ区切りされた2つのソース・ファイルおよびTclで書かれた19個のスクリプトが含まれます。
owbdemoinit.tcl
を編集します。スクリプトowbdemoinit.tcl
によって、他のTCLスクリプトで使用される変数を定義および設定します。次の変数を編集して、コンピュータ環境の値と一致させます。
workspace_owner
sys
owb_project_name
workspace_owner
newowbdemo
drive:/
oracle/11.1.0/db_1/BIN
Windowsの場合、「スタート」→「プログラム」→「Oracle」→「Warehouse Builder」を選択後、「OMB Plus」を選択します。
UNIXの場合、owb home/owb/bin/unixに移動し、OMBPlus.sh
を実行します。
OMB+>プロンプトでは、次のコマンドを入力してスクリプトを含むディレクトリに変換します。
cd
drive
:\\newowbdemo\\
次のコマンドを入力して、すべてのTclスクリプトを必要な順序で実行します。
source loadall.tcl
owbdemoinit.tcl
で指定した資格証明を使用して、ワークスペース所有者としてログインします。
デザイン・センターでは、接続エクスプローラ内の右側にある「場所」ノードを展開します。「データベース」の展開後、「Oracle」を展開します。「Oracle」ノードには次の場所が含まれます。
OWB_REPOSITORY
SALES_WH_LOCATION
Oracle Warehouse Builderデモンストレーションを正常にインストールすると、デザイン・センターがEXPENSE_WHというOracleモジュールとともに表示されます。
|
![]() Copyright © 2007 Oracle Corporation. All Rights Reserved. |
|