DataGrip で RabbitMQ のデータ をクエリ

Jerod Johnson
Jerod Johnson
Director, Technology Evangelism
DataGrip で RabbitMQ のデータソースを作成し、SQL を使用してRabbitMQのリアルタイムデータをクエリ。

DataGrip は、SQL 開発者がデータベースへのクエリ、作成、管理を行えるデータベース IDE です。CData API Driver for JDBC と組み合わせることで、DataGrip からリアルタイムRabbitMQ のデータを操作できます。この記事では、DataGrip で RabbitMQ のデータ への接続を確立方法を説明します。

RabbitMQ 用の新しいドライバー定義を作成

以下のステップでは、DataGrip で RabbitMQ 用の新しいデータソースを作成する方法を説明します。

  1. DataGrip で、File -> New -> Project をクリックしてプロジェクト名を入力します。
  2. Database Explorer で、プラスアイコン()をクリックして Driver を選択します。
  3. Driver タブで以下を設定します。
    • Name をわかりやすい名前に設定します(例:"CData RabbitMQ Driver")。
    • Driver Files を適切な JAR ファイルに設定します。ファイルを追加するには、プラス()をクリックし、「Add Files」を選択して、ドライバーのインストールディレクトリ内の「lib」フォルダに移動し、JAR ファイル(例:cdata.jdbc.api.jar)を選択します。
    • Class を cdata.jdbc.api.API.jar に設定します。
    また、詳細タブでは、ドライバーのプロパティや、VM Options、VM environment、VM home path、DBMS などの設定を変更できます。
    • ほとんどの場合、Expert optionsDBMS type を「Unknown」に変更して、ネイティブの SQL Server クエリ(Transact-SQL)を回避してください。これを行わないと、無効な関数エラーが発生する可能性があります。
  4. 「Apply」をクリックし、「OK」をクリックして接続を保存します。

RabbitMQ への接続を設定

  1. 接続を保存したら、プラス()をクリックし、「Data Source」→「CData RabbitMQ Driver」を選択して、新しい RabbitMQ データソースを作成します。
  2. 新しいウィンドウで、JDBC URL を使用して RabbitMQ への接続を設定します。

    組み込みの接続文字列デザイナー

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

          java -jar cdata.jdbc.api.jar
        

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

    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 - 仮想ホスト内の特定のキューのバインディング
  3. URL を接続文字列に設定します。例:
    jdbc:api:Profile=C:\profiles\\RabbitMQ.apip;AuthScheme=Basic;URL=http://localhost:15672;User=guest;Password=guest;
  4. 「Apply」と「OK」をクリックして接続文字列を保存します。

これで、Data Explorer にデータソースが表示されます。

RabbitMQ に対して SQL クエリを実行

JDBC Driver を介してアクセス可能な RabbitMQ のエンティティ(テーブルとして利用可能)を参照するには、データソースを展開します。

クエリを実行するには、任意のテーブルを右クリックして「New」→「Query Console」を選択します。

Console で、実行したい SQL クエリを記述します。例:

SELECT ,  FROM AuthAttempts WHERE NodeName = 'rabbit@hostname'

CData API Driver for JDBC の30日間の無料トライアルをダウンロードして、DataGrip でリアルタイムRabbitMQ のデータを操作してみてください。ご不明な点があれば、サポートチームにお問い合わせください。

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

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

RabbitMQ に接続