データベースでのデータソース・キャッシュの作成

大規模なデータソースの場合は、データソース・キャッシュをデータベースに構成すると、より優れたパフォーマンスを得られます。

データベース・ベースのデータソース・キャッシュは、次のように機能します。
  1. BIサーバーがデータソースに対する論理SQL文を受け取ります。

  2. BIサーバーはデータソースのメタデータを取得します。メタデータの内容を使用して、BIサーバーは、データソースのデータをリクエストするかわりに、問合せへの応答に使用可能な既存のデータソース・キャッシュ・エントリが存在するかどうかをチェックします。データソース・キャッシュを使用できるサブリクエストはすべて、キャッシュ・データベースのネイティブ物理SQLに再書込みされます。

  3. いずれのデータソースにも既存のデータソース・キャッシュ・エントリがない場合、BIサーバーは、データソースのデータをキャッシュ・データベースにロードするスレッドを開始します。各データソースは、データソースのすべての列を含む単一のデータベース表に変換されます。

  4. 論理SQL文(および同じデータソースのデータを要求する他のすべての同時論理SQL文)は、スレッドの終了を待機します。

  5. スレッドの実行が完了すると、新たにシードされたデータソース・キャッシュ・エントリに依存するすべてのサブリクエストが、キャッシュ・データベースのネイティブ物理SQLに再書込みされます。

サポートされている次の2つのデータソース・キャッシュ・データベース設定から選択できます。

データ・ウェアハウスとは異なるデータベースでのデータソース・キャッシュの構成

  1. キャッシュ・データベースを表す物理オブジェクトをリポジトリに作成します。これには、新規データベース・オブジェクト、新規物理スキーマ・オブジェクトおよび新規接続プールが含まれます。この例では、データベース・オブジェクトの名前はXSACache、接続プールの名前はCP、新規物理スキーマ・オブジェクトの名前はXSA_CACHEです。

    • 接続プールで使用されるユーザー名は、スキーマの名前と同じである必要があります。

    • 接続プールに指定されているユーザーは、スキーマ内の表に対してDDLおよびDMLを実行するために必要な権限を持っている必要があります。たとえば、Oracleでは、ユーザーは少なくともCREATE TABLE権限を持っている必要があります。

  2. NQSConfig.INIXSA_CACHEセクションにあるパラメータを、適切なスキーマおよび接続プールを指し示すように更新します。

    [XSA_CACHE]
    ENABLE = YES;
    
    # The schema and connection pool where the XSA data is cached. 
    # Set PHYSICAL_SCHEMA to ""."" to use file-based XSA cache. 
    PHYSICAL_SCHEMA = "XSACache"."XSA_CACHE"; # "<Database>"."<Schema>"; 
    CONNECTION_POOL = "XSACache"."CP"; # "<Database>"."<Connection Pool>";
    
    # The path to the location where descriptor files of the cache data is persisted. 
    # If a relative path is specified, it is relative to: 
    # BI_DOMAIN/servers/obisn 
    DESCRIPTOR_STORAGE_PATH = "xsacache"; # location where the cache metadata files are stored
    
  3. BIサーバーを再起動します。

  4. データソース・キャッシュが正しく構成されていることを検証するには、obis1-diagnostic.logをチェックします。サーバー起動時に、次のようなエントリを探します。
    [2017-01-13T14:41:30.715-07:00] [OracleBIServerComponent] [NOTIFICATION:1] [] [] [ecid: ] [tid: 81c8] [101001] External Subject Area cache is started successfully using configuration from the repository with the logical name Star.
    [2011-01-13T14:41:30.716-07:00] [OracleBIServerComponent] [NOTIFICATION:1] [] [] [ecid: ] [tid: 81c8] [101017] External Subject Area cache has been initialized. Total number of entries: 0 Used space: 0 bytes Maximum space: 107374182400 bytes Remaining space: 107374182400 bytes. Cache table name prefix is XC2627531314.

データソース・キャッシュを有効にすると、データソースのデータがデータベースに格納されます。ただし、メタデータは、NQSConfig.INIXSA_CACHEセクションにあるDESCRIPTOR_STORAGE_PATHパラメータで指定された、ローカル・ファイル・システムのディレクトリに格納されます。パフォーマンスを向上させるには、データソース・キャッシュのメタデータ・ファイルをRAMディスクに配置します。

データ・ウェアハウスと同じデータベースでのデータソース・キャッシュの構成

この構成により、結合がBIサーバーによって内部的に実行されるのではなく、データソースにプッシュ・ダウンされるため、問合せパフォーマンスが向上します。
  1. キャッシュ・データベースを表す物理オブジェクトをデータ・ウェアハウス・データベース・オブジェクトのリポジトリに作成します。これには、新規物理スキーマ・オブジェクトおよび新規接続プールが含まれます。この例では、新規接続プールの名前はXSA Cache Connection Poolで、物理スキーマ・オブジェクトの名前はXSA_CACHEです。

    アプローチとしては、データ・ウェアハウスの接続プールで、別のスキーマに作成されたデータソース・キャッシュ表に問合せを実行できるようにしながら、データソース・キャッシュのシードおよびパージ専用の接続プールを設定します。管理を単純化するには、データソース・キャッシュ・スキーマに専用の表領域を設定することが理想的です。

    • 新規接続プールで使用されるユーザー名は、新規スキーマの名前と同じである必要があります。

    • 新規接続プールに指定されているユーザーは、新規スキーマ内の表に対してDDLおよびDMLを実行するために必要な権限を持っている必要があります。たとえば、Oracleでは、ユーザーは少なくともCREATE TABLE権限を持っている必要があります。

    • 元のデータ・ウェアハウス接続プールに指定されているユーザーは、新規スキーマ内の表のSELECTに必要な権限を持っている必要があります。たとえば、Oracleでは、既存のデータ・ウェアハウス接続プールのユーザーは少なくともSELECT ANY TABLE権限を持っている必要があります。

    • データソース・キャッシュ接続プールをデータベース・オブジェクトのプライマリ接続プールにしないでください。つまり、データソース・キャッシュ接続プールは、データ・ウェアハウスの問合せに使用されるデータ・ウェアハウス接続プールの後に配置されている必要があります。

  2. NQSConfig.INIXSA_CACHEセクションにあるパラメータを、適切なスキーマおよび接続プールを指し示すように更新します。

    [XSA_CACHE]
    ENABLE = YES;
    
    # The schema and connection pool where the XSA data is cached. 
    # Set PHYSICAL_SCHEMA to ""."" to use file-based XSA cache. 
    PHYSICAL_SCHEMA = "Oracle Data Warehouse"."Catalog"."XSA_CACHE"; # "<Database>"."<Schema>"; 
    CONNECTION_POOL = "Oracle Data Warehouse"."XSA Cache Connection Pool"; # "<Database>"."<Connection Pool>";
    
    # The path to the location where descriptor files of the cache data is persisted. 
    # If a relative path is specified, it is relative to: 
    # BI_DOMAIN/servers/obisn 
    DESCRIPTOR_STORAGE_PATH = "xsacache"; # location where the cache metadata files are stored
    
  3. BIサーバーを再起動します。

  4. データソース・キャッシュが正しく構成されていることを検証するには、obis1-diagnostic.logをチェックします。サーバー起動時に、次のようなエントリを探します。
    [2017-01-13T14:41:30.715-07:00] [OracleBIServerComponent] [NOTIFICATION:1] [] [] [ecid: ] [tid: 81c8] [101001] External Subject Area cache is started successfully using configuration from the repository with the logical name Star.
    [2011-01-13T14:41:30.716-07:00] [OracleBIServerComponent] [NOTIFICATION:1] [] [] [ecid: ] [tid: 81c8] [101017] External Subject Area cache has been initialized. Total number of entries: 0 Used space: 0 bytes Maximum space: 107374182400 bytes Remaining space: 107374182400 bytes. Cache table name prefix is XC2627531314.

データソース・キャッシュを有効にすると、アップロードされたファイルのデータがデータベースに格納されます。ただし、メタデータは、NQSConfig.INIXSA_CACHEセクションにあるDESCRIPTOR_STORAGE_PATHパラメータで指定された、ローカル・ファイル・システムのディレクトリに格納されます。パフォーマンスを向上させるには、データソース・キャッシュのメタデータ・ファイルをRAMディスクに配置することをお薦めします。