ヘッダーをスキップ
Oracle Business Intelligence Data Warehouse Administration Consoleユーザーズ・ガイド
リリース10.1.3.4
B51055-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

7 インデックス、テーブルおよびタスクのアクションについて

この章の内容は次のとおりです。

インデックス、テーブルおよびタスクのアクションの概要

アクション機能により、インデックス、テーブルおよびタスクに関して様々なアクションを実行するSQLスクリプトの定義と実行ができます。

アクション・テンプレート機能を使用すると、次の処理を実行できます。

アクションを定義してリポジトリオブジェクトに割り当てるには、次の手順を実行する必要があります。

アクション用SQLスクリプトの定義

次の手順に従って、インデックス、テーブルおよびタスクの各アクションをSQL文で定義します。この手順が完了したら、「リポジトリオブジェクトへのアクションの割当て」に進みます。

インデックス、テーブルおよびタスクのアクションの詳細は、「インデックス、テーブルおよびタスクのアクションの概要」を参照してください。

アクションのSQL文を定義するには:

  1. 「Tools」メニューで「Seed Data」を選択してから、次のいずれかを選択します。

    • Index Actions

    • Table Actions

    • Task Actions

    「Actions」ダイアログ・ボックスが表示されます。

  2. ツールバーで「New」をクリックします。

  3. 新しいレコード・フィールドで、アクションの名前を入力して「Save」をクリックします。

  4. 「Value」フィールドをダブルクリックします。

    「Value」ダイアログ・ボックスが表示されます。

    スクリーン・ショットの前後にその説明があります。
  5. ツリー・ビューのフォーマットを選択します。

    • 「Flat View」には、SQLエントリが実行順に一覧表示されます。

    • 「Category View」には、カテゴリー別(SQLとストアド・プロシージャ)のエントリが表示されます。

      ツリー内の表示順序は、エントリをドラッグ・アンド・ドロップすると変更できます。

  6. 「Add」をクリックします。

  7. 新しいレコード・フィールドで、適切な情報を入力するか選択します。

    フィールド 説明
    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を実行できます。

  8. 右下のテキスト・ボックスに、SQL文を入力します。

    テキスト・ボックスの左側の「SQL Statement」タブには、サポートされているすべてのSQL関数とDACのソース・システム・パラメータが一覧表示されます。これらを使用して、独自のSQLを作成できます。使用する関数またはソース・システム・パラメータをテキスト・ボックスに移動するには、それらをダブルクリックします。

    使用できる関数の詳細は、「アクションに使用する関数」を参照してください。

    ソース・システム・パラメータのリストには、DACリポジトリに定義されているすべてのソース・システム・パラメータの名前が一覧表示されます。これらの名前には、@DAC_という接頭辞が付いています。ソース・システム・パラメータは、実行時にDACサーバーによって解決され、ランタイム値に置き換わります。

    SQL文でのソース・システム・パラメータの使用例の詳細は、「アクションでDACソース・システム・パラメータを使用する方法の例」を参照してください。

  9. (省略可能)「Comment」タブに、SQLに関するコメントを入力します。

  10. 「OK」をクリックします。


    注意:

    1つのアクションに複数のSQL文やストアド・プロシージャを追加できます。

  11. このアクションをリポジトリオブジェクトに割り当てるには、「リポジトリオブジェクトへのアクションの割当て」に進みます。

リポジトリオブジェクトへのアクションの割当て

次の手順に従って、アクションをDACリポジトリオブジェクトに割り当てます。この手順を実行する前に、アクションのSQLスクリプトを定義しておく必要があります。詳細は、「アクション用SQLスクリプトの定義」を参照してください。

アクションをリポジトリオブジェクトに割り当てるには:

  1. 「Design」ビューで、アクションの割当て先オブジェクトのタイプに応じて、次のいずれかのタブにナビゲートします。

    • 「Indices」タブ

    • 「Tables」タブ

    • 「Tasks」タブ

  2. アクションの割当て先オブジェクトを選択するか、またはオブジェクトのクエリーを実行します。

  3. 上部のウィンドウで適切なオブジェクトを選択したまま、「Actions」サブタブを選択します。

  4. サブタブのツールバーで「New」をクリックします。

  5. 新しいレコード・フィールドで、次を実行します。

    1. 「Action Type」でアクションのタイプを選択します。

      選択できるアクションタイプの詳細は、「「Indices」タブ: 「Actions」サブタブ」、「「Tables」タブ: 「Actions」サブタブ」および「「Tasks」タブ: 「Actions」サブタブ」を参照してください。

    2. ロードのタイプとして、「Full」、「Incremental」または「Both」を選択します。

    3. 「Action」フィールドをダブルクリックして、「Choose Action」ダイアログ・ボックスを開き、アクションを選択します。


      注意:

      アクションを定義する手順の詳細は、「アクション用SQLスクリプトの定義」を参照してください。

    4. 「OK」をクリックして、「Choose Action」ダイアログ・ボックスを閉じます。

    5. サブタブのツールバーで「Save」をクリックします。

アクションに使用する関数

この項では、インデックス、テーブルおよびタスクの各アクションに使用できる関数の一覧を示します。

表7-1 インデックス・アクションに使用できる関数

関数 説明

getAdditionalColumns()

追加されているインデックス・カラムがカンマで区切られたリストを返します。この関数は、「#Unique Columns」インデックス・プロパティに関連しています。DB2データベースとDB2-390データベースの場合、一意のカラムと追加されているカラムの組合せがリストに含まれる場合があります。

getAnalyzeStatement()

DACインデックス(このインデックス)の分析に使用するデフォルトSQL文を返します。

getAnalyzeTableStatement()

DACテーブル(このテーブル)の分析に使用するデフォルトSQL文を返します。

getBitMapString

このインデックスがビットマップの場合、BITMAP文字列に名前解決します。それ以外の場合、文字列は空になります。

getClusteredString

このインデックスがクラスタ化されている場合、CLUSTERED文字列に名前解決します。それ以外の場合、文字列は空になります。

getCreateIndexStatement()

DACインデックスの作成に使用するデフォルトSQL文を返します。

getDBType()

物理データソース接続タイプ(Oracle(OCI8)、Oracle(Thin)、DB2、DB2-390、Microsoft SQL ServerまたはTeradata)を返します。

getDropIndexStatement()

DACインデックスの削除に使用するデフォルトSQL文を返します。

getHashString()

このインデックスがハッシュの場合、HASH文字列に名前解決します。それ以外の場合、文字列は空になります。

getImageSuffix()

テーブル・イメージの接尾辞が指定されている場合、その接尾辞に名前解決します。それ以外の場合、文字列は空になります。

getIndexColumns()

インデックス・カラムのカンマ区切りリストを返します。

getIndexName()

インデックス名を返します。

getIndexTableSpace()

インデックス領域の名前が存在する場合、その名前に解決します。それ以外の場合、文字列は空になります。

getNamedSource()

DACの物理接続名を返します。

getRvrsScanString()

インデックスが逆方向スキャンをサポートしている場合、ALLOW REVERSE SCANS文字列に名前解決します。それ以外の場合、文字列は空になります。

getTableName()

テーブル名を返します。

getTableOwner()

テーブル所有者名を返します。

getTableSpace()

表領域の名前が存在する場合、その名前を返します。それ以外の場合、文字列は空になります。

getTruncateTableStatement()

DACテーブルの切捨て処理に使用するデフォルトSQL文を返します。

getUniqueColumns()

一意のインデックス・カラムのカンマ区切りリストを返します。この関数は、getAdditionalColumns()に対応する関数です。

getUniqueString()

このインデックスが一意である場合、UNIQUE文字列に名前解決します。それ以外の場合、文字列は空になります。


表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ブロックによりインデックス・アクションを作成する必要があります。

  1. getCreateIndexStatement()

  2. DBMS_STATS.GATHER_TABLE_STATS(ownname => 'getTAbleOwner()', tabname => 'getTableName()', estimate_percent => 70, method_opt +> 'FOR ALL COLUMNS SIZE AUTO', cascade => false)


アクションでDACソース・システム・パラメータを使用する方法の例

次の例は、DACのソース・システム・パラメータを使用してアクションを定義する方法を示しています。

ここでは、COUNTRYというソース・システム・パラメータが存在するものと仮定します(注意: ソース・システム・パラメータ名では大文字と小文字を区別します)。このパラメータを使用してアクションを定義するには、次のようなSQL文を使用します。

DELETE FROM TABLE1 WHERE COUNRY_NAME='@DAC_COUNTRY'

ETLプロセスの実行中に、COUNTRYがCanadaに解決されるものと仮定します。DACサーバーで実行されるSQLの結果は、次のようになります。

DELETE FROM TABLE1 WHERE COUNTRY_NAME='Canada'