次の方法で共有


パーティションストレージモードと処理

パーティションのストレージ モードは、クエリと処理のパフォーマンス、ストレージ要件、およびパーティションとその親メジャー グループとキューブのストレージの場所に影響します。 ストレージ モードの選択は、処理の選択肢にも影響します。

パーティションでは、次の 3 つの基本的なストレージ モードのいずれかを使用できます。

  • 多次元 OLAP (MOLAP)

  • リレーショナル OLAP (ROLAP)

  • ハイブリッド OLAP (HOLAP)

Microsoft SQL Server Analysis Services では、3 つの基本的なストレージ モードがすべてサポートされています。 また、プロアクティブ キャッシュもサポートされています。これにより、データの即時性とクエリパフォーマンスの両方を実現するために、ROLAP ストレージと MOLAP ストレージの特性を組み合わせることができます。 詳細については、「 プロアクティブ キャッシュ (パーティション)」を参照してください。

MOLAP

MOLAP ストレージ モードでは、パーティションの集計とそのソース データのコピーが、パーティションの処理時に Analysis Services の多次元構造に格納されます。 この MOLAP 構造は、クエリのパフォーマンスを最大化するために高度に最適化されています。 ストレージの場所は、パーティションが定義されているコンピューターまたは Analysis Services を実行している別のコンピューター上に置くことができます。 ソース データのコピーは多次元構造に存在するため、パーティションのソース データにアクセスしなくてもクエリを解決できます。 クエリの応答時間は、集計を使用して大幅に短縮できます。 パーティションの MOLAP 構造内のデータは、パーティションの最新の処理と同じだけ最新です。

ソース データが変更されると、MOLAP ストレージ内のオブジェクトを定期的に処理して、それらの変更を組み込んでユーザーが使用できるようにする必要があります。 処理により、MOLAP 構造内のデータが完全または増分的に更新されます。 1 つの処理から次の処理までの間に、OLAP オブジェクト内のデータがソース データと一致しない待機時間が作成されます。 パーティションまたはキューブをオフラインにすることなく、MOLAP ストレージ内のオブジェクトを増分または完全に更新できます。 ただし、OLAP オブジェクトに対する特定の構造変更を処理するために、キューブをオフラインにする必要がある場合があります。 ステージング サーバー上のキューブを更新および処理し、データベース同期を使用して処理されたオブジェクトを運用サーバーにコピーすることで、MOLAP ストレージの更新に必要なダウンタイムを最小限に抑えることができます。 また、プロアクティブ キャッシュを使用して待機時間を最小限に抑え、可用性を最大化しながら、MOLAP ストレージのパフォーマンス上の利点の多くを維持することもできます。 詳細については、「 プロアクティブ キャッシュ (パーティション)Analysis Services データベースの同期および多次元モデル オブジェクト処理」を参照してください。

ROLAP

ROLAP ストレージ モードでは、パーティションの集計が、パーティションのデータ ソースで指定されたリレーショナル データベースのインデックス付きビューに格納されます。 MOLAP ストレージ モードとは異なり、ROLAP ではソース データのコピーは Analysis Services データ フォルダーに格納されません。 代わりに、クエリ キャッシュから結果を派生できない場合、データ ソース内のインデックス付きビューにアクセスしてクエリに応答します。 クエリの応答は、通常、MOLAP または HOLAP ストレージ モードよりも ROLAP ストレージの方が遅くなります。 また、ROLAP では処理時間も通常は遅くなります。 ただし、ROLAP を使用すると、ユーザーはリアルタイムでデータを表示でき、純粋な履歴データなど、クエリの頻度の低い大規模なデータセットを操作するときに、ストレージ領域を節約できます。

ROLAP を使用する場合、結合が GROUP BY 句と組み合わされている場合、Analysis Services は不明なメンバーに関連する正しくない情報を返す可能性があります。 Analysis Services は、不明なメンバー値を返す代わりに、リレーショナル整合性エラーを排除します。

パーティションが ROLAP ストレージ モードを使用し、そのソース データが SQL Server データベース エンジンに格納されている場合、Analysis Services は、パーティションの集計を含むインデックス付きビューの作成を試みます。 Analysis Services でインデックス付きビューを作成できない場合、集計テーブルは作成されません。 Analysis Services は SQL Server データベース エンジンでインデックス付きビューを作成するためのセッション要件を処理しますが、Analysis Services が集計のインデックス付きビューを作成するには、ROLAP パーティションとそのスキーマ内のテーブルで次の条件を満たす必要があります。

  • パーティションには、 Min または Max 集計関数を使用するメジャーを含めることはできません。

  • ROLAP パーティションのスキーマ内の各テーブルは、1 回だけ使用する必要があります。 たとえば、スキーマに [dbo] を含めることはできません。[address]AS "顧客アドレス" と [dbo]。[address]AS "SalesRep Address"。

  • 各テーブルは、ビューではなくテーブルである必要があります。

  • パーティションのスキーマ内のすべてのテーブル名は、所有者名 (例: [dbo]) で修飾する必要があります。[顧客]。

  • パーティションのスキーマ内のすべてのテーブルに同じ所有者が必要です。たとえば、テーブル [tk] を参照する FROM 句を指定することはできません。[顧客]、[john]。[store]、および [dave]。[sales_fact_2004]。

  • パーティションのメジャーのソース列を null 許容にすることはできません。

  • ビューで使用されるすべてのテーブルは、次のオプションを ON に設定して作成されている必要があります。

    • ANSI_NULLS

    • QUOTED_IDENTIFIER(引用された識別子)

  • SQL Server データベース エンジンのインデックス キーの合計サイズは、900 バイトを超えることはできません。 SQL Server データベース エンジンは、CREATE INDEX ステートメントが処理されるときに、固定長キー列に基づいてこの条件をアサートします。 ただし、インデックス キーに可変長列がある場合、SQL Server データベース エンジンはベース テーブルに対するすべての更新に対してこの条件をアサートします。 集計によってビュー定義が異なるため、インデックス付きビューを使用した ROLAP 処理は、集計の設計によっては成功または失敗する可能性があります。

  • インデックス付きビューを作成するセッションには、ARITHABORT、CONCAT_NULL_YEILDS_NULL、QUOTED_IDENTIFIER、ANSI_NULLS、ANSI_PADDING、ANSI_WARNINGの各オプションが ON に設定されている必要があります。 この設定は、SQL Server Management Studio で行うことができます。

  • インデックス付きビューを作成するセッションでは、次のオプションが OFF に設定されている必要があります: NUMERIC_ROUNDABORT。 この設定は、SQL Server Management Studio で行うことができます。

HOLAP

HOLAP ストレージ モードは、MOLAP と ROLAP の両方の属性を組み合わせたモードです。 MOLAP と同様に、HOLAP では、パーティションの集計が SQL Server Analysis Services インスタンスの多次元構造に格納されます。 HOLAP では、ソース データのコピーは保存されません。 パーティションの集計内のサマリー データにのみアクセスするクエリの場合、HOLAP は MOLAP に相当します。 たとえば、集計データがないアトミック キューブ セルにドリルダウンする場合、ソース データにアクセスするクエリは、リレーショナル データベースからデータを取得する必要があり、ソース データが MOLAP 構造体に格納されている場合ほど高速ではありません。 HOLAP ストレージ モードでは、通常、クエリをキャッシュまたは集計から解決できるかどうかとソース データ自体のどちらから解決できるかに応じて、クエリ時間に大きな違いがあります。

HOLAP として格納されるパーティションは、ソース データが含まれていないため、同等の MOLAP パーティションよりも小さく、概要データを含むクエリでは ROLAP パーティションよりも高速に応答します。 HOLAP ストレージ モードは、通常、大量のソース データに基づく概要に対する迅速なクエリ応答を必要とするキューブのパーティションに適しています。 ただし、中央値の計算など、リーフ レベルのデータに触れる必要があるクエリをユーザーが生成する場合は、通常、MOLAP の方が適しています。

こちらもご覧ください

プロアクティブ キャッシュ (パーティション)
Analysis Services データベースの同期
パーティション (Analysis Services - 多次元データ)