web-dev-qa-db-ja.com

DBAはSSASについて何を知っている必要がありますか?

SSASのビジネス側面をカバーする多くの資料を見てきましたが、管理と管理の重要な側面についてはあまり詳しくありませんでした。

SQL Server Analysis Servicesのインスタンスを管理する観点から、SSASを正しく効率的に管理するために、実際のDBAはSSASについて何を知っている必要がありますか?

40
ivanmp

DBA向けのSSASの概要

つまり、あなたはSQL ServerのDBAであり、管理対象外のキューブをいくつか継承しただけです。 SSASの管理に関するクイッククラッシュコースが適切なようです。

管理の観点から見ると、リソースを大量に消費するアプリケーションの場合、SSASはかなり単純です。いくつかの点で異なりますが、DBMSプラットフォームよりもシンプルです。また、SSASに固有の使用状況に基づく最適化など、いくつかの管理タスクが必要です。

構成ファイルをバックアップします

すべての構成データはmsdmsrv.iniというファイルにあります。これはXMLファイルです。 SSMS(サーバーに接続し、サーバーを右クリックし、プロパティを選択)を介して構成をいじくり回すと、起動時にサーバーを破壊するオプションを設定できます。何かをする前にmsmdsrv.iniのコピーを取ってください。

重要なパラメータ

メモリ:SSASは聖書のメモリを独占しています。可能であれば64ビットビルドと大量のメモリが好きです。パラメータ 'Memory\LowMemoryLimit'および 'Memory\HighMemoryLimit' は、メモリ使用ポリシーを制御します。 LowMemoryLimitは最小メモリ割り当てではありません。これは、SSASがシステムのメモリが不足していると見なし、キャッシュからデータをフラッシュし始めるしきい値です。 HighMemoryLimitは、使用する絶対最大値です。

SSASはデータをファイル(多数のファイル-ファイルグループに相当するメカニズムを持たない)に格納するため、これらのファイルに対してO/Sファイルシステムキャッシュを多く使用することに注意してください。これらの制限のデフォルトは、それぞれマシンのメモリの約65%と80%であることに注意してください。したがって、OLAPサーバーをSQL Serverインスタンスと共存させる場合は、これらを下げる必要があります。したがって、データベースサーバーとメモリを争うことはありません。

Directories:これをカバーする5つのパラメーター:DataDir、AllowedBrowsingFolders、BackupDir、LogDirおよびTempDir。 DataDirとAllowedBrowsingFoldersが最も重要です。

  • AllowedBrowsingFoldersは、OLAPサーバーがデータファイルを配置するフォルダのリストに影響します。ユーザーインターフェースを持つもの(たとえば、配置ウィザード)は、オプションをAllowedBrowsingFoldersのリストに制限します。値は、パイプ( '|')で区切られたディレクトリのリストです。

  • DataDirはファイルのデフォルトパスです。キューブを複数のボリュームに分割する場合は、AllowedBrowsingFoldersを適切に構成する必要があります。

  • LogDirは、サーバーがフライトレコーダーやクエリログなどのさまざまなログファイルを配置する場所です。フライトレコーダーログはトラブルシューティングに使用され、OLAPクエリログは使用状況に基づく最適化に使用されます(これについては後で詳しく説明します)。

  • TempDirは、SSASが処理中に作成する一時ファイルの場所です。大量のデータボリュームを処理していてパフォーマンスの問題がある場合は、これをデータから別のボリュームにシフトすることでメリットが得られる可能性があります。

  • BackupDirは、それがブリキで言うことです。

その他:その他のいくつかのパラメータも興味深いかもしれません。 Tweakに必要な可能性があるセットは次のとおりです。

  • DefaultMaxDrillthroughRows:これは、ドリルスルー行セットのサイズを制限します。より多くを許可するためにこれをいじる必要があるかもしれません。

  • スレッド/タイムアウト:これらを調整する必要がある場合があります。気にする必要はありませんでした。

それらが基本です。特定の理由で他の人を微調整する必要があるかもしれませんが、それについて宿題をすることができます。

SSASサーバープロパティのリファレンスガイドは here. にあります。

操作

Deployment:BIDSでプロジェクトをコンパイルし、 deploymentウィザードで展開できる一連のファイルを取得できます. パーティションやその他のいくつかのファイルパスを調整する必要があるかもしれません。

プログラムおよびバッチ管理タスク:コマンドは、XML/Aと呼ばれるWebサービスAPIを介してSSASに発行されます。マイクロソフトは、MDXおよびXML/Aコマンドを発行するためのインタラクティブツールを提供しています。 MDXをXML/Aコマンドに埋め込む必要がある場合は、&などのXMLエスケープを使用する必要があることに注意してください。これは、SSMSのMDXエディターおよびクエリツールの問題ではありません。

オフラインジョブは、さまざまなSSISキューブ処理タスク、ascmd.exeと呼ばれるコマンドラインユーティリティ、またはAMOと呼ばれる.Net APIを介して実行できます。さまざまなpowershellツールなども入手できます。 ascmd.exeは、XML/Aファイルを取得してサーバーに投稿します。ファイルをプログラムで修正する必要がある場合は、.cmdスクリプトからXMLファイルを操作するよりも、小さな.Netツールを使用するほうがよいでしょう。

操作ガイド がこれについて詳しく説明しています。

セキュリティ

SSASのセキュリティはかなり単純化されています。システム全体の管理権限を持つグローバルな「サーバー」の役割があります。残念ながら、データベースを作成するには「サーバー」が必要なので、開発中の開発者にはそれを許可する必要がある可能性が高いですOLAP所有しているサーバー。

その他のセキュリティは、個々のキューブスキーマにのみ適用できます。スキーマ内のロールに個々のアイテムの読み取り、処理、ドリルスルー、書き戻しなどのアクセス許可を付与できます。 OLAPスキーマのロールは、BIDS内で定義でき、キューブと共に展開できます。ADグループまたはユーザーは、SSMSを介してこれらのロールに割り当てることができます。

プログラムで役割のメンバーシップを管理する方法の例は、 here. を参照してください。

使用量ベースの最適化

あなたはDBAとしてこれに参加することもできますが、最初に物理ストレージの背景について少し説明します。 SSASは、事前に作成された集計をベースデータと共に計算および永続化することで機能します。集計にヒットすることでクエリが満足できる場合、OLAPサーバーは基本データよりもこれを優先して使用します。これは、集計に含まれるI/Oがはるかに少なくなるため、取得が速くなるためです。データ。

ただし、計算する集計(つまり、ロールアップを生成するディメンション属性の組み合わせ)を計算する必要があります。 BIDSには、これを推測して生成するツールがあります。 BIDS helper などの一部のツールでは、集計を手動で編集することもできます。

使用状況に基づく最適化は、サーバーに発行された実際のクエリのログを取得し、そのログを使用して、それらのクエリに最適な一連の集計を実行することによって機能します。 DBAとして、OLAPクエリログを設定してこのデータをキャプチャし、キューブで最適化を実行できます。クエリログの設定に関する言い回しは こちら。

これを行うためのツールは、 '使用ベースの最適化ウィザードです。' これはSSMSにあり、エクスプローラーのパーティションを開いて[使用ベース]を選択すると見つかります最適化」を右クリックメニューから。

パフォーマンスガイド では、チューニングについて詳しく説明しています。

[〜#〜] mdx [〜#〜]

[〜#〜] mdx [〜#〜] はSQLに少し似ていますが、動作が大きく異なります。 「SQLプログラマーのためのMDX」に関する論文は、それ自体がトピック全体です。そのチュートリアルを読んだり、本を入手したりすることをお勧めします。さらに、dba.seのフレンドリーなスタッフが質問があればお手伝いします。

MDXには、行をフィルタリングする概念がありません。言語には、クエリのさまざまな軸に何を表示するかを決定するための一連の操作がたくさんあります1、さらに「SELECT」。 CTEに少し似たwithステートメントを使用して、メジャーとセットを定義できます。

いくつかの入門MDXプログラミングリソースは、 here および here にあります(これは非常に古く、非常に長い曲がりくねっています) 。この問題についての良い本もいくつかあります。 this SO question には、SSASリソースへのかなりのファンアウトがあります。

1 ただし、実際にデータがある組み合わせに結果を制限する空でない演算子があります。ほとんどのMDXクエリは、軸に表示するスライスを定義することで構成されています。空でないセルの組み合わせレベルの量を返すクエリを回避するには、空でない演算子が必要になります。

この長いホワイトペーパー からは、SSAS管理に関するいくつかの回答が得られる場合があります(SQL Server 2008 R2 Analysis Services操作ガイド )。これが導入の始まりです:

このガイドでは、運用環境のSQL Server 2005、SQL Server 2008、およびSQL Server 2008 R2でMicrosoft SQL Server Analysis Servicesをテストして実行する方法について説明します。このガイドの焦点は、最大規模のキューブであっても、運用上の問題をテスト、監視、診断、および削除する方法にあります。このペーパーでは、可能な限り最高のパフォーマンスを実現するためにサーバーを構成する方法についてのガイダンスも提供します。

明らかにそれはDBA /管理者を対象としています。 SSASを使用してアプリケーションも開発している場合は、 Analysis Services 2008パフォーマンスガイドホワイトペーパーもご覧ください

6
DaniSQL