SSAS でRabbitMQ のデータに連携するOLAP Cube を作成

加藤龍彦
加藤龍彦
デジタルマーケティング
RabbitMQ のデータプロバイダーを利用してAnalysis Services プロジェクト内のRabbitMQ に接続し、アナリティクスやレポーティングなどで使えるOLAP キューブを構築します。



SQL Server Analysis Services (SSAS) は、意思決定支援やビジネスアナリティクスで使われる解析エンジンです。ビジネスレポートおよび、Power BI やExcel、 Reporting Services レポート、その他のデータ可視化ツールのようなクライアントアプリケーションに、エンタープライズレベルのセマンティックデータを提供します。RabbitMQ 用のCData ADO.NET プロバイダーと合わせれば、RabbitMQ を使って、より深く速いデータ分析のためのキューブを作成できます。

この記事では、Analysis Services プロジェクトをVisual Studio で作成し、RabbitMQ の多次元モデルを構築および配置する方法を説明します。これには、アクセス可能なSSAS インスタンスと、ADO.NET プロバイダーのインストールが必要です。

RabbitMQ 用のJDBC データソースの設定

まず、Visual Studio で新しい多元的なAnalysis Service とデータマイニングプロジェクトを作成します。次に、プロジェクト内でRabbitMQ 用のデータソースを作成します。

  1. [Solution Explorer] の[Data Source] を右クリックし、[New Data Source] を選択します。
  2. 既存または新規の接続に基づいて、データソースを作成することを選択し、[New] をクリックします。
  3. [Connection Manager] のRabbitMQ 用CData ADO.NET プロバイダーを選択し、必要な接続プロパティに入力後、[Next] をクリックします。

    RabbitMQ Management HTTP API について

    RabbitMQ は、複数のメッセージングプロトコルをサポートするオープンソースのメッセージブローカーです。RabbitMQ Management HTTP API は、RabbitMQ サーバーの管理データと監視データに HTTP 経由でアクセスする手段を提供します。この API では、仮想ホスト、エクスチェンジ、キュー、バインディング、コネクション、チャネル、コンシューマー、ユーザー、権限、ポリシー、クラスター全体の統計情報を取得できます。

    HTTP API を利用するには、RabbitMQ サーバーで Management プラグインを有効化する必要があります。デフォルトでは、管理インターフェースはポート 15672 でリッスンします。

    Basic 認証の設定

    RabbitMQ Management HTTP API は HTTP Basic 認証を使用します。RabbitMQ 管理ユーザーのユーザー名とパスワードを指定する必要があります。

    管理 API へのアクセスを有効にするには、以下のステップで進めます:

    1. サーバーで RabbitMQ Management プラグインが有効になっていることを確認します(rabbitmq-plugins enable rabbitmq_management)。
    2. 既存の管理ユーザーを使用するか、適切な管理タグ(management、policymaker、monitoring、または administrator)を持つユーザーを作成します。
    3. RabbitMQ Management HTTP API の完全なベース URL を控えておきます(例:http://localhost:15672)。

    RabbitMQ サーバーを設定したら、以下の接続プロパティを設定して接続します:

    • AuthScheme:Basic に設定します。
    • URL:RabbitMQ Management HTTP API のベース URL に設定します(例:http://localhost:15672)。
    • User:RabbitMQ の管理ユーザー名に設定します(例:guest)。
    • Password:RabbitMQ の管理パスワードに設定します。

    接続文字列の例:

    Profile=C:\profiles\RabbitMQ.apip;AuthScheme=Basic;URL=http://localhost:15672;User=guest;Password=guest;
    

    利用可能なテーブル

    RabbitMQ プロファイルでは、以下のテーブルにアクセスできます:

    • Overview - クラスター全体の統計情報と RabbitMQ ノードに関する情報
    • Nodes - RabbitMQ クラスター内の個々のノードに関する情報
    • NodeMemory - 特定のクラスターノードの詳細なメモリ使用状況の内訳
    • Connections - ブローカーへのすべてのオープンな AMQP コネクションの一覧
    • Channels - すべてのコネクションにわたるオープンな AMQP チャネルの一覧
    • Consumers - すべてのキューに登録されたコンシューマーの一覧
    • Exchanges - すべての仮想ホストで宣言されたエクスチェンジの一覧
    • Queues - すべての仮想ホストで宣言されたキューの一覧
    • Bindings - エクスチェンジとキュー間のすべてのバインディングの一覧
    • VirtualHosts - ブローカーに設定された仮想ホストの一覧
    • VhostPermissions - 特定の仮想ホスト内のユーザー権限
    • Users - すべての RabbitMQ ユーザーの一覧
    • Permissions - すべての仮想ホストにわたる全ユーザーの権限レコード
    • TopicPermissions - 全ユーザーのトピックレベルの権限レコード
    • Policies - 仮想ホスト内のキューおよびエクスチェンジに適用されたポリシーの一覧
    • OperatorPolicies - 仮想ホスト内のキューに適用されたオペレーターポリシーの一覧
    • Parameters - 仮想ホストごとのコンポーネントパラメータ(例:federation、shovel)の一覧
    • GlobalParameters - すべての仮想ホストに適用されるグローバルパラメータの一覧
    • VhostLimits - 特定の仮想ホストに設定されたリソース制限
    • UserLimits - 特定のユーザーに設定されたリソース制限
    • FeatureFlags - フィーチャーフラグの一覧と、ノード上での有効/無効の状態
    • DeprecatedFeatures - 非推奨機能の一覧と、その使用状態
    • AuthAttempts - ノードの認証試行統計
    • ClusterName - RabbitMQ クラスターの名前
    • WhoAmI - 現在認証されている管理ユーザーに関する情報
    • ExchangeBindingsSource - 特定のエクスチェンジがソースとなっているバインディング
    • ExchangeBindingsDestination - 特定のエクスチェンジが宛先となっているバインディング
    • QueueBindings - 仮想ホスト内の特定のキューのバインディング

    接続を構成する際に、Max Rows プロパティを定めることも可能です。これによって戻される行数を制限するため、可視化・レポートのデザイン設計時のパフォーマンスを向上させるのに役立ちます。

    Setting the Connection properties (Salesforce is shown.)
  4. インパーソネーションを[Inherit] に設定し、[Next] をクリックします。 Setting the impersonation method.
  5. データソースに名称(CData RabbitMQ Source) を入力し、[Finish] をクリックします。

データソースビューの作成

データソースの次に、データソースビューを作成します。

  1. [Solution Explorer] で[Data Source Views] を右クリックし、[New Data Source View] を選択します。
  2. 先ほど作成したデータソース(CData RabbitMQ Source) を選択し、[Next] をクリックします。
  3. 基になるデータソースのパターンに一致する外部キーを選択し、[Next] をクリックします。 Selecting the Foreign key match pattern.
  4. RabbitMQ の表を選択、ビューに追加し、[Next] をクリックします。 Selecting Tables (Salesforce is shown).
  5. ビューに名前を付け、[Finish] をクリックします。

スキームに一致する外部キーに基づいて、基礎的なデータとのリレーションが検出されます。[Data Source View] をダブルクリックすることで、これらのリレーションを確認・編集することができます。

Discovered relationships in the data source view (Salesforce is shown).

[Data Source View] へのセカンダリデータソースの追加はサポートされないことに注意してください。複数のデータソースを利用する場合、SSAS は、すべてのソースがADO.NET プロバイダーでは使用できないOpenRowset 経由のリモートクエリをサポートすることを必要とします。

RabbitMQ 用のキューブを作成する

プロジェクトを処理してRabbitMQ をSSAS に展開するための最後のステップはキューブの作成です。

  1. [Solution Explorer] の[Cubes] を右クリックし、[New Cube] を選択します。
  2. [Use existing tables] を選択し、[Next] をクリックします。
  3. メジャーグループテーブルに使用するテ-ブルを選択し、[Next] をクリックします。 Selecting measure group tables (Salesforce is shown).
  4. キューブに含ませたいメジャーを選択し、[Next] をクリックします。 Selecting measures (Salesforce is shown).
  5. 使用可能なテーブルに基づいて作成するディメンションを選択し、[Next] をクリックします。 Selecting dimensions (Salesforce is shown).
  6. すべての選択内容を確認し、[Finish] をクリックします。

プロジェクトを処理する

データソースと、データソースビュー、キューブを作成すると、SSASにキューブを展開する準備が完了します。ターゲットサーバーとデータベースを構成するために、プロジェクトを右クリックしプロパティを選択します。デプロイメントに移動し、ターゲットセクションでサーバーとデータベースのプロパティを設定します。

Configuring the target server and database.

ターゲットサーバーとデータベースを構成した後、プロジェクトを右クリックして[Process] を選択します。このステップの一部として、プロジェクトの構成・デプロイが必要となる場合があります。プロジェクトを構成・デプロイし、[Process Database]ウィザードにある[Run] をクリックします。

SSAS インスタンスにRabbitMQ 用のOLAP キューブが作成され、分析、レポート、表示の準備が完了します。RabbitMQ 用のCData ADO.NET プロバイダーの30日の無償評価版をダウンロードして、SSAS データをご利用ください。

はじめる準備はできましたか?

API Driver で RabbitMQ のライブデータに接続

RabbitMQ に接続