【ノーコード】SpagoBI でRabbitMQ に連携する方法

古川えりか
古川えりか
コンテンツスペシャリスト
複雑なSpagoBI × RabbitMQ データ連携をノーコードで。JDBCの設定からレポート配信まで手順を詳しく解説。データ分析・レポーティング環境をすぐに構築できます。



CData JDBC Driver for API はJDBC 標準をサポートするビジネスインテリジェンスおよびデータマイニングツールからリアルタイムRabbitMQ に接続することを可能にします。この記事では、RabbitMQ をSpagoBI Studio のレポートに統合し、SpagoBI サーバーでホストする方法を説明します。

SpagoBI サーバーのJDBC ドライバーをデプロイ

以下のステップに従ってSpagoBI サーバーでJDBC data source for API を作成します。

  1. ドライバーJAR を%CATALINA_BASE%/lib にコピーします。これらのファイルは、インストールディレクトリのlib サブフォルダにあります。
  2. RabbitMQ ドライバーリソースをコンテクストに追加します。以下のリソース定義をserver.xml の[GlobalNamingResources]要素に追加できます。

    
    <Resource name="jdbc/api" auth="Container" type="javax.sql.DataSource" driverclassname="cdata.jdbc.api.APIDriver" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" maxactive="20" maxidle="10" maxwait="-1"/>

  3. 以下のリソースリンクを追加し、Web アプリケーションへのアクセスを許可します。この記事では、SpagoBI のMETA-INF\context.xml に次の行を追加します。
    
    <ResourceLink global="jdbc/api" name="jdbc/api" type="javax.sql.DataSource"/>
    
  4. サーバーを再起動します。

SpagoBI サーバーのリソースにドライバーを追加した後、データソースを追加します。SpagoBIで[Resources]->[Data Source]->[Add]と進み、以下の情報を入力します。

  • Label:ドライバーに独特の識別子を入力します。
  • Description:ドライバーにディスクリプションを入力します。
  • Dialect:デフォルトの方言を選択します。
  • Read Only:読み取り専用オプションを選択します。このオプションは、データソースがエンドユーザーによって作成された、データセットを保存するためのデフォルトデータベースであるかどうかを決定します。
  • Type:[JDBC]を選択します。
  • URL:
  • 必要な接続文字列プロパティを使用してJDBC URLを入力します。

    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 - 仮想ホスト内の特定のキューのバインディング

    ビルトイン接続文字列デザイナ

    JDBC URL の構成については、RabbitMQ JDBC Driver に組み込まれている接続文字列デザイナを使用してください。JAR ファイルのダブルクリック、またはコマンドラインからJAR ファイルを実行します。

    java -jar cdata.jdbc.api.jar
    

    接続プロパティを入力し、接続文字列をクリップボードにコピーします。

    Using the built-in connection string designer to generate a JDBC URL (Salesforce is shown.)

    以下は一般的なJDBC URL です。

    jdbc:api:Profile=C:\profiles\\RabbitMQ.apip;AuthScheme=Basic;URL=http://localhost:15672;User=guest;Password=guest;
    
  • Driver:ドライバーのクラス名にcdata.jdbc.api.APIDriver を入力します。
The configuration for the RabbitMQ JDBC data source.(Salesforce is shown.)

SpagoBI Studio でレポートを作成

以下のステップに従い、SpagoBI StudioでRabbitMQ に基づいたレポートを作成します。SQL クエリの結果をチャートに挿入するデータセットを作成します。次のセクションでは、このレポートをSpagoBI サーバーでホストします。

初めに、SpagoBI Studio のレポートからRabbitMQ に接続してください。

  1. SpagoBI Studio で、[File]->[New]->[Project]とクリックしていき、[Business Intelligence and Reporting Tools]フォルダで[Report Project]を選択します。
  2. [File]->[New]->[Report]と進み、[Blank Report]を選択します。
  3. [Data Explorer]ビューで[Data Sources]を右クリックし、[New Data Source]をクリックします。
  4. [JDBC Data Source]を選択し、データソース名を入力します。
  5. [Manage Drivers]をクリックし、[Add]をクリックしてドライバーJAR(cdata.jdbc.api.jar) を追加します。
  6. ドライバーJAR は、インストールディレクトリのlib サブフォルダにあります。
  7. [Driver Class]メニューでドライバークラス(cdata.jdbc.api.APIDriver)を選択します。
  8. [Database URL]ボックスに、[JDBC URL]を入力します。以下は一般的な接続文字列です。
    jdbc:api:Profile=C:\profiles\\RabbitMQ.apip;AuthScheme=Basic;URL=http://localhost:15672;User=guest;Password=guest;
    
    必要な接続プロパティを取得するためのガイドについては、ドライバーヘルプの[Getting Started]チャプターを見てください。 The JDBC data source.(Salesforce is shown.)

RabbitMQ に接続した後、SQL クエリの結果を含むデータセットを作成します。

  1. [DataSet]フォルダを右クリックし、[New Data Set]をクリックします。JDBC data source for API を選択し、データセットの名称を入力します。
  2. SQL クエリを構築します。ここでは、このクエリを使用してダッシュボードにチャートを追加します。例:
    SELECT ,  FROM AuthAttempts WHERE NodeName = 'rabbit@hostname'
    
    The query to be used to populate a chart.(Salesforce is shown.)

データセットを使用して、レポートオブジェクトにデータを入力できます。以下のステップに従って、チャートを作成します。

  1. [Palette]ビューで、チャートをキャンバスにドラッグします。
  2. [Select Chart Type]タブで棒グラフを選択します。
  3. [Select Data]タブで[Use Data From]オプションをクリックし、メニューからRabbitMQ のデータセットを選択します。
  4. をテーブルからx 軸の系列にドラッグします。
  5. をテーブルからy 軸の系列にドラッグします。 Columns in the dataset defined as the x- and y-axes for the chart.(Salesforce is shown.)

SpagoBI サーバーに関するホストRabbitMQ レポート

以下のステップに従って、SpagoBI サーバーでリアルタイムRabbitMQ に基づいてドキュメントをホストできます。前のセクションで作成したレポートをテンプレートとして使用します。レポートユーザーがリアルタイムデータにアクセスできるようにするには、サーバー上のRabbitMQ JDBC データソースに置き換えられるプレースホルダパラメータを作成します。

  1. 未実行の場合、SpagoBI Studio で[Report Design]パースペクティブで開きます。
  2. [Data Explorer]ビューで[Report Parameters]フォルダを右クリックし、[New Parameter]をクリックします。url パラメータを追加し、それに空の値を割り当てます。このパラメータはSpagoBI サーバー上のJDBC データソースのプレースホルダです。
  3. RabbitMQ のデータソースを右クリックし、[Edit]をクリックします。
  4. [Property Binding]ノードで、JDBC Driver のURL バインディングプロパティurl パラメータに設定します。プロパティのボックスをクリックします。[Category]セクションで[Report Parameters]を選択します。[Subcategory]セクションで[All]を選択し、パラメータをダブルクリックします。

    JavaScript構文に以下のように入力することもできます。

    params["url"].value
    
    Placeholder values in the report for the JDBC data source on the server.

続いて、SpagoBI サーバーでレポート用の新しいドキュメントを作成します。

  1. SpagoBI サーバーで、[Documents Development]->[Create Document]->[Generic Document]と進みます。[Document Details]ページが表示されます。
  2. 以下の情報を入力し、ドキュメントを作成します。
    • Label:ドキュメントに独自の識別子を入力します。
    • Name:ドキュメントのわかりやすい名前を入力します。
    • Type:メニューから[Report]を選択します。
    • Engine:[BIRT Report Engine]を選択します。
    • Data Source:SpagoBI サーバーのCreate a JDBC Data Source for API で作成したRabbitMQ Data Source を選択します。
  3. [Show Document Templates]セクションで、ドキュメントを格納したいフォルダを選択します。
  4. [Template]セクションで、[Choose File]をクリックします。レポートプロジェクトを含むフォルダに移動します。.rptdesign ファイルを選択します。

    Noteプロジェクトへのパスは、プロジェクトプロパティで確認できます。

  5. [Save]ボタンをクリックします。
The document using the report as a template.(Salesforce is shown.)

サーバーでレポートを実行すると、プレースホルダurl パラメータがサーバーで定義されたJDBC URL に置き換えられます。

The chart running on the SpagoBI Server.(Salesforce is shown.)

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

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

RabbitMQ に接続