この記事では、SQLServerでのAnalysisServicesデータベースの処理の自動化について説明します。自動化は、データベース管理者またはDevOpsエンジニアによって管理される最も重要なタスクの1つです。
さらに、Analysis Servicesデータベースの概要と、それらがSQLServerデータベースとどのように異なるかについても説明します。
この記事では、特にデータウェアハウスのビジネスインテリジェンスソリューションなどの複雑なシナリオで作業する場合に、エラーを最小限に抑えて生産性を最大化するためにSQLServerのタスクを自動化することの重要性についても説明します。
AnalysisServicesデータベースについて
データウェアハウスのビジネスインテリジェンスソリューションと複雑なデータ分析シナリオのコンテキストで処理を自動化することの重要性を理解できるように、AnalysisServicesデータベースを見てみましょう。
Analysis Servicesデータベースとは何ですか?
Analysis Servicesデータベースは、分析とレポート用に高度に最適化されたデータベースであり、データウェアハウスのビジネスインテリジェンスソリューションの一部として準備および更新されることがよくあります。
AnalysisServicesデータベースとSQLServerデータベースの違い
AnalysisServicesデータベースはSQLServerデータベースとは異なり、異なる言語(DAX / MDX)で動作し、データマイニングやタイムインテリジェンスなどの機能に加えて、分析とレポート作成のための多くの組み込みのビジネスインテリジェンス機能を提供します。
AnalysisServicesデータベースの種類はいくつありますか
AnalysisServicesデータベースの2つの主なタイプは次のとおりです。
- 多次元モード(キューブ)
- 表形式モード(データモデル)
したがって、Analysis Servicesデータベースは、デプロイされたキューブまたはデプロイされたデータモデルのいずれかです。ただし、どちらの形式でも、単純なデータ分析シナリオから複雑なデータ分析シナリオに至るまでのリクエストに対応し、その上にレポートを作成できます。
SQL Server Analysis Services(SSAS)とは
SSASとも呼ばれるSQLServerAnalysis Servicesは、AnalysisServicesデータベースのホスティングを可能にするMicrosoftサーバーインスタンスです。
データウェアハウスのAnalysisServicesデータベースとは
データウェアハウスのコンテキストでの分析サービスデータベースは、多くの場合、セルフサービスレポートとリアルタイム分析のためにビジネスユーザーに公開できる最終製品です。
簡単に言うと、データウェアハウスのさまざまな変換と段階を経ているデータがAnalysis Servicesデータベースに到達すると、分析とレポートの準備ができていると見なされます。
Analysis Servicesデータベースの処理とはどういう意味ですか?
Analysis Servicesデータベースの処理とは、新しいデータのソースをチェックして、データベースにロードすることを意味します。 Analysis Servicesデータベースは、データを取得するソースが頻繁に新しいデータを取得するため、時間とともに更新する必要があります。
AnalysisServicesデータベースの処理を自動化する必要がある理由
次に重要な質問は次のとおりです。手動で簡単に実行できるのに、AnalysisServicesデータベースの処理を自動化する必要があるのはなぜですか。
簡単な答えは、Analysis Servicesデータベースが手動の介入なしに最新であることを確認する必要があるため、時間と労力の両方を節約できることです。特に、プロジェクトがライブサーバーに展開される場合のデータウェアハウスビジネスインテリジェンスソリューションのコンテキストではそうです。
AnalysisServicesデータベース処理の自動化
それでは、AzureAnalysisServicesデータベースの処理を自動化する主な手順を見ていきましょう。
前提条件
この記事は、読者がSQLAnalysisサーバーまたはAzureAnalysis Servicesへのデータモデルの展開を含む、データウェアハウスビジネスインテリジェンスソリューションの基本概念に精通していることを前提としています。
SQLデータベースと分析サービスプロジェクトの作成と管理は通常、開発者の仕事であるため、DBAまたはDevOpsエンジニアの観点から、AnalysisServicesデータベースまたはSSASデータベースの処理と自動化に焦点を当てます。
この記事は次のことを前提としています:
- SQLDevBlogV5というサンプルデータベース ソースはすでに設定されています
- AnalysisServicesプロジェクトを使用した表形式のデータモデルはすでに作成されています
- SQLDevBlogTabularProjectと呼ばれるAnalysisServicesデータベース 表形式モデルに基づいて、すでに展開されています
上記のソースデータベースとAnalysisServicesデータベースは参照のみを目的としているため、要件に応じてこれらの名前を変更できます。
これで、次の見出しに直接ジャンプできます。ただし、開発者とDBAの両方の観点をカバーしたい場合は、次のサンプルデータベースを使用して上記の手順を実行できます。
-- Create the sample database (SQLDevBlogV5) CREATE DATABASE SQLDevBlogV5; GO USE SQLDevBlogV5; -- (1) Create the Article table in the sample database CREATE TABLE Article ( ArticleId INT PRIMARY KEY IDENTITY (1, 1) ,Category VARCHAR(50) ,Author VARCHAR(50) ,Title VARCHAR(150) ,Published DATETIME2 ,Notes VARCHAR(400) ) GO -- (2) Populating the Article table SET IDENTITY_INSERT [dbo].[Article] ON INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (1, N'Development', N'Atif', N'Introduction to SQL Server Analysis Services (SSAS)', N'2019-01-01 00:00:00', NULL) INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (2, N'Testing', N'Peter', N'Processing SSAS database', N'2019-01-10 00:00:00', NULL) INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (3, N'DLM', N'Sadaf', N'Automating Analysis Services Database Processing', N'2019-01-20 00:00:00', NULL) SET IDENTITY_INSERT [dbo].[Article] OFF
次に、新しい分析サービスを作成します 表形式のプロジェクトで、データソースをモデルにインポートし、モデルをSSASサーバーにデプロイします。
互換性レベル
この例では、 SQL Server 2014 / SQL Server 2012 SP1(1103)を使用しています。 データモデルの互換性レベル。ただし、要件に応じて異なる互換性レベルを指定できます。
AnalysisServicesに接続する
SSMS(SQL Server Management Studio)を開き、資格情報を入力して分析サーバーに接続します。
Analysis Servicesデータベースに移動(デプロイ済み)
接続が確立されたら、データベースを展開します オブジェクトエクスプローラーのノード 次に、 plus をクリックして、デプロイされたAnalysisServicesデータベースノードを展開します。 その横にあるアイコン:
AnalysisServicesデータベースを処理する
Analysis Servicesデータベースを右クリックし、[データベースの処理:]をクリックします。
デフォルトの処理モードを維持し、 OKをクリックします :
AnalysisServicesデータベースは正常に処理されました:
データベース処理のスクリプト
次に、AnalysisServicesデータベースの処理に使用されるスクリプトを取得する必要があります。
Analysis Servicesデータベースの処理を自動化する方法の1つは、処理を実行するタスクをスクリプト化し、SQL ServerでSQLジョブ(ステップ)として実行することです。
データベースの処理をクリックします 繰り返しますが、 OKを押さないでください 今回は。
スクリプト ウィンドウの左上にあるドロップダウンメニューで、新しいクエリウィンドウへのスクリプトアクションをクリックします。 以下に示すように:
処理スクリプトは、XMLAクエリウィンドウという新しいウィンドウで開かれます。 :
プロセスデータベーススクリプトを実行する
F5キーを押して、AnalysisServicesデータベースの処理を開始するXMLAスクリプトを実行します。
SQLServerエージェントチェック
次に、SQL Serverデータベースエンジンに接続し、SQLServerエージェントが実行されていることを確認します。
SQLServerエージェントアクセスの設定
もう1つの重要なことは、SQLServerエージェントを実行しているアカウントがAnalysisServicesデータベースにアクセスできることを確認することです。
この場合、NT Service \SQLAgentアカウントはSQLServerエージェントを実行しています。つまり、このアカウントにはAnalysisServicesデータベースを処理するためのアクセス許可が必要です。
Analysis Servicesの表形式インスタンスに接続し、目的のAnalysisServicesデータベースに移動します。次に、新しいロールデータベースランナーを作成します NT Service \ SQLAgentを追加する アカウントとそれにプロセスデータベースを与える 許可:
これを実現するための標準的な方法の1つは、プロキシを作成し、そのプロキシに資格情報をマップすることであることに注意してください。ただし、このプロセスの詳細はこの記事の範囲を超えています。
XMLAスクリプトをコピーしてデータベースを処理する
AnalysisServicesデータベースの処理に使用したSQLAnalysisServicesXMLAクエリウィンドウからXMLAスクリプトをコピーします。
ジョブステップの作成
SQL Serverエージェントに戻り、 ProcessAnalysisServicesデータベースSQLDevBlogV5として新しいジョブステップを作成します。
次の情報を入力して新しいステップを作成し、[ OK]をクリックします :
サーバーとデータベースの名前を入力してから、XMLAクエリエディタからコピーしたスクリプトを貼り付ける必要があることに注意してください。
ジョブを開始
ジョブを右クリックし、ステップでジョブを開始…をクリックします。
以下に示すように、ジョブステップは正常に実行されます。
処理を自動化するジョブをスケジュールする
次に、AnalysisServicesデータベースの処理を自動化するようにジョブをスケジュールします。
おめでとう! Analysis Servicesデータベースの処理を正常に自動化し、データをソースから更新する必要があるたびにDBAまたはDevOpsエンジニアがデータベースを処理するために費やす時間と労力を節約しました。
やるべきこと
Analysis Servicesデータベースの処理を自動化できるようになったので、スキルをさらに向上させるために次のことを試してください。
- この記事に記載されているAnalysisServicesデータベース処理ジョブを毎日実行し、時間の経過とともにサンプルにデータを追加するようにスケジュールします。
- 次のことを実行して、完全なソリューションを実装します。
- サンプルデータベースを設定する
- 表形式のデータモデルを作成する
- サンプルデータベースを表形式データモデルにインポートします
- 表形式のデータモデルを展開して、AnalysisServicesデータベースを作成します
- SQLAgentを使用してAnalysisServicesデータベースの処理を自動化する
- Excelを介してAnalysisServicesデータベースに接続し、SQLジョブを使用してAnalysisServicesデータベースが自動的に更新された後にデータを表示します