Oracle Business Intelligence Data Warehouse Administration Consoleユーザーズ・ガイド リリース10.1.3.4 B51055-01 |
|
![]() 戻る |
![]() 次へ |
この章の内容は次のとおりです。
アクション機能により、インデックス、テーブルおよびタスクに関して様々なアクションを実行するSQLスクリプトの定義と実行ができます。
Index actions: モードのタイプ(完全ロード、増分ロードまたはその両方)に応じて、インデックスを作成したり削除する際のデフォルト動作を上書きできます。インデックス・アクションのタイプには、「Create Index」と「Drop Index」があります。
たとえば、完全ロード、増分ロードまたはその両方のタイプに定義されているコマンドにより、タスクのインデックスを作成するインデックス・アクションを定義できます。 インデックス・アクションは、他のすべてのインデックス・プロパティよりも優先されます。
Table actions: モードのタイプに応じて、テーブルの切捨て処理や分析を行う際のデフォルト動作を上書きできます。テーブル・アクションのタイプには、「Truncate Table」と「Analyze Table」があります。
たとえば、完全ロード、増分ロードまたはその両方のタイプに定義されているコマンドにより、テーブル切捨て処理用のテーブル・アクションを定義できます。テーブル・アクションは、他のすべてのテーブル・プロパティよりも優先されます。
Task actions: 様々なタスク動作に基づいて、新しい機能を追加できます。使用できるタスク・アクションのタイプは次のとおりです。
Preceding Action
このタイプを使用して、タスクを実行する前にSQLスクリプトを実行します。
Success Action
このタイプを使用して、タスクが正常に実行された後にSQLスクリプトを実行します。
Failure Action
このタイプを使用して、タスクが実行中に失敗した場合にSQLスクリプトを実行します。
Upon Failure Restart
このタイプを使用して、以前失敗したタスクを再開する際にSQLスクリプトを実行します。
アクション・テンプレート機能を使用すると、次の処理を実行できます。
インデックスの作成や分析などの同期化されたアクションを実行するために、SQLテンプレートを結合する処理。
SQL文やストアド・プロシージャでオブジェクト・レベルのプロパティとユーザー定義のパラメータを結合する処理。
アクションを定義してリポジトリオブジェクトに割り当てるには、次の手順を実行する必要があります。
次の手順に従って、インデックス、テーブルおよびタスクの各アクションをSQL文で定義します。この手順が完了したら、「リポジトリオブジェクトへのアクションの割当て」に進みます。
インデックス、テーブルおよびタスクのアクションの詳細は、「インデックス、テーブルおよびタスクのアクションの概要」を参照してください。
アクションのSQL文を定義するには:
「Tools」メニューで「Seed Data」を選択してから、次のいずれかを選択します。
Index Actions
Table Actions
Task Actions
「Actions」ダイアログ・ボックスが表示されます。
ツールバーで「New」をクリックします。
新しいレコード・フィールドで、アクションの名前を入力して「Save」をクリックします。
「Value」フィールドをダブルクリックします。
「Value」ダイアログ・ボックスが表示されます。
ツリー・ビューのフォーマットを選択します。
「Flat View」には、SQLエントリが実行順に一覧表示されます。
「Category View」には、カテゴリー別(SQLとストアド・プロシージャ)のエントリが表示されます。
ツリー内の表示順序は、エントリをドラッグ・アンド・ドロップすると変更できます。
「Add」をクリックします。
新しいレコード・フィールドで、適切な情報を入力するか選択します。
フィールド | 説明 |
---|---|
Name | SQLブロックの論理名です。 |
Type | SQLまたはストアド・プロシージャを示します。 |
Database Connection Type | SQLタイプ専用です(ストアド・プロシージャには使用しません)。SQL文を実行するデータベースを定義します。
可能な値は次のとおりです。 Source: タスクに定義されているソース接続に対してSQLは実行されます。 Target: タスクに定義されているターゲット接続に対してSQLは実行されます。 Both: ソース接続とターゲット接続の両方に対してSQLは実行されます。 Table Connection: 個別のテーブル接続が使用可能な場合、テーブル固有の接続に対してSQLは実行されます。 |
Table Type | SQLの実行先テーブルのタイプを指定します。
可能な値は次のとおりです。 All Source: タスクに定義されているすべてのソース・テーブルに対してSQLは実行されます。 All Target: タスクに定義されているすべてのターゲット・テーブルに対してSQLは実行されます。 Source Lookup: タスクに定義されているすべてのソース参照テーブルに対してSQLは実行されます。 Source Primary: タスクに定義されているすべてのソース・プライマリ・テーブルに対してSQLは実行されます。 Source Auxiliary: タスクに定義されているすべてのソース補助テーブルに対してSQLは実行されます。 |
Continue on Fail | 特定のSQLブロックが失敗した場合に実行を継続するかどうかを指定します。 |
Retries | 許可する再試行の回数を指定します。指定された値が正の数値でない場合、デフォルト値の1が使用されます。 |
Valid Database Platforms | SQLを実行する有効なデータベース・プラットフォームを指定します。このフィールドを空欄のままにすると、任意のデータベースに対してSQLを実行できます。 |
右下のテキスト・ボックスに、SQL文を入力します。
テキスト・ボックスの左側の「SQL Statement」タブには、サポートされているすべてのSQL関数とDACのソース・システム・パラメータが一覧表示されます。これらを使用して、独自のSQLを作成できます。使用する関数またはソース・システム・パラメータをテキスト・ボックスに移動するには、それらをダブルクリックします。
使用できる関数の詳細は、「アクションに使用する関数」を参照してください。
ソース・システム・パラメータのリストには、DACリポジトリに定義されているすべてのソース・システム・パラメータの名前が一覧表示されます。これらの名前には、@DAC_という接頭辞が付いています。ソース・システム・パラメータは、実行時にDACサーバーによって解決され、ランタイム値に置き換わります。
SQL文でのソース・システム・パラメータの使用例の詳細は、「アクションでDACソース・システム・パラメータを使用する方法の例」を参照してください。
(省略可能)「Comment」タブに、SQLに関するコメントを入力します。
「OK」をクリックします。
注意: 1つのアクションに複数のSQL文やストアド・プロシージャを追加できます。 |
このアクションをリポジトリオブジェクトに割り当てるには、「リポジトリオブジェクトへのアクションの割当て」に進みます。
次の手順に従って、アクションをDACリポジトリオブジェクトに割り当てます。この手順を実行する前に、アクションのSQLスクリプトを定義しておく必要があります。詳細は、「アクション用SQLスクリプトの定義」を参照してください。
アクションをリポジトリオブジェクトに割り当てるには:
「Design」ビューで、アクションの割当て先オブジェクトのタイプに応じて、次のいずれかのタブにナビゲートします。
「Indices」タブ
「Tables」タブ
「Tasks」タブ
アクションの割当て先オブジェクトを選択するか、またはオブジェクトのクエリーを実行します。
上部のウィンドウで適切なオブジェクトを選択したまま、「Actions」サブタブを選択します。
サブタブのツールバーで「New」をクリックします。
新しいレコード・フィールドで、次を実行します。
「Action Type」でアクションのタイプを選択します。
選択できるアクションタイプの詳細は、「「Indices」タブ: 「Actions」サブタブ」、「「Tables」タブ: 「Actions」サブタブ」および「「Tasks」タブ: 「Actions」サブタブ」を参照してください。
ロードのタイプとして、「Full」、「Incremental」または「Both」を選択します。
「Action」フィールドをダブルクリックして、「Choose Action」ダイアログ・ボックスを開き、アクションを選択します。
「OK」をクリックして、「Choose Action」ダイアログ・ボックスを閉じます。
サブタブのツールバーで「Save」をクリックします。
この項では、インデックス、テーブルおよびタスクの各アクションに使用できる関数の一覧を示します。
表7-1 インデックス・アクションに使用できる関数
関数 | 説明 |
---|---|
getAdditionalColumns() |
追加されているインデックス・カラムがカンマで区切られたリストを返します。この関数は、「#Unique Columns」インデックス・プロパティに関連しています。DB2データベースとDB2-390データベースの場合、一意のカラムと追加されているカラムの組合せがリストに含まれる場合があります。 |
getAnalyzeStatement() |
DACインデックス(このインデックス)の分析に使用するデフォルトSQL文を返します。 |
getAnalyzeTableStatement() |
DACテーブル(このテーブル)の分析に使用するデフォルトSQL文を返します。 |
getBitMapString |
このインデックスがビットマップの場合、 |
getClusteredString |
このインデックスがクラスタ化されている場合、 |
getCreateIndexStatement() |
DACインデックスの作成に使用するデフォルトSQL文を返します。 |
getDBType() |
物理データソース接続タイプ(Oracle(OCI8)、Oracle(Thin)、DB2、DB2-390、Microsoft SQL ServerまたはTeradata)を返します。 |
getDropIndexStatement() |
DACインデックスの削除に使用するデフォルトSQL文を返します。 |
getHashString() |
このインデックスがハッシュの場合、 |
getImageSuffix() |
テーブル・イメージの接尾辞が指定されている場合、その接尾辞に名前解決します。それ以外の場合、文字列は空になります。 |
getIndexColumns() |
インデックス・カラムのカンマ区切りリストを返します。 |
getIndexName() |
インデックス名を返します。 |
getIndexTableSpace() |
インデックス領域の名前が存在する場合、その名前に解決します。それ以外の場合、文字列は空になります。 |
getNamedSource() |
DACの物理接続名を返します。 |
getRvrsScanString() |
インデックスが逆方向スキャンをサポートしている場合、 |
getTableName() |
テーブル名を返します。 |
getTableOwner() |
テーブル所有者名を返します。 |
getTableSpace() |
表領域の名前が存在する場合、その名前を返します。それ以外の場合、文字列は空になります。 |
getTruncateTableStatement() |
DACテーブルの切捨て処理に使用するデフォルトSQL文を返します。 |
getUniqueColumns() |
一意のインデックス・カラムのカンマ区切りリストを返します。この関数は、getAdditionalColumns()に対応する関数です。 |
getUniqueString() |
このインデックスが一意である場合、 |
表7-2 テーブル・アクションに使用できる関数
関数 | 説明 |
---|---|
getAnalyzeTableStatement() |
DACテーブルの分析に使用するデフォルトSQL文を返します。 |
getDBType() |
物理データソース接続タイプ(Oracle(OCI8)、Oracle(Thin)、DB2、DB2-390、Microsoft SQL ServerまたはTeradata)を返します。 |
getImageSuffix() |
テーブル・イメージの接尾辞が存在する場合、その値を返します。それ以外の場合、文字列は空になります。 |
getCreateIndexStatement() |
DACインデックスの作成に使用するデフォルトSQL文を返します。 |
getNamedSource() |
DACの物理接続名を返します。 |
getDropIndexStatement() |
DACインデックスの削除に使用するデフォルトSQL文を返します。 |
getTableName() |
テーブル名を返します。 |
getTableOwnerName() |
テーブル所有者を返します。 |
getTableSpace() |
表領域の名前が存在する場合、その名前を返します。それ以外の場合、文字列は空になります。 |
getTruncateTableStatement() |
DACテーブルの切捨て処理に使用するデフォルトSQL文を返します。 |
表7-3 タスク・アクションに使用できる関数
関数 | 説明 |
---|---|
getAnalyzeTableStatement() |
DACテーブルの分析に使用するデフォルトSQL文を返します。 |
getDBType() |
物理データソース接続タイプ(Oracle(OCI8)、Oracle(Thin)、DB2、DB2-390、Microsoft SQL ServerまたはTeradata)を返します。 |
getImageSuffix() |
テーブル・イメージの接尾辞が存在する場合、その値を返します。それ以外の場合、文字列は空になります。 |
getNamedSource() |
DAC内の物理接続名を返します。 |
getTableName() |
テーブル名を返します。 |
getTableOwner() |
テーブル所有者を返します。 |
getTableSpace() |
表領域の名前が存在する場合、その名前を返します。それ以外の場合、文字列は空になります。 |
getTruncateTableStatement() |
DACテーブルの切捨て処理に使用するデフォルトSQL文を返します。 |
注意: テーブル関連のタスク・アクション関数は、指定したテーブルタイプのSQLブロックにのみ使用する必要があります。DACは、指定されたタイプのテーブル全体でこれらのブロックをループ処理し、各テーブルのカスタムSQLを実行します。関数ではループで反復実行するたびにテーブル固有の値に置き換えられます。たとえば、特定のインデックスを作成した後、特定の方法で統計を収集する場合、次の2つのSQLブロックによりインデックス・アクションを作成する必要があります。
|
次の例は、DACのソース・システム・パラメータを使用してアクションを定義する方法を示しています。
ここでは、COUNTRYというソース・システム・パラメータが存在するものと仮定します(注意: ソース・システム・パラメータ名では大文字と小文字を区別します)。このパラメータを使用してアクションを定義するには、次のようなSQL文を使用します。
DELETE FROM TABLE1 WHERE COUNRY_NAME='@DAC_COUNTRY'
ETLプロセスの実行中に、COUNTRY
がCanadaに解決されるものと仮定します。DACサーバーで実行されるSQLの結果は、次のようになります。
DELETE FROM TABLE1 WHERE COUNTRY_NAME='Canada'