| 概要 | Discourse Data Explorerを使用すると、ライブデータベースに対してSQLクエリを実行でき、最新統計のレポート作成が可能です。 | |
| インストールガイド | このプラグインはDiscourseコアにバンドルされています。プラグインを個別にインストールする必要はありません。 |
カスタムクエリの例やサポートをお探しの場合、#sql-queryタグの下にある#data-reportingカテゴリで多くのトピックを見つけることができます。特定のニーズに合ったトピックがない場合は、コミュニティに助けを求めるために新しいトピックを作成してください。
クエリヘルプ
当社でホストされていますか?このプラグインは、BusinessプランとEnterpriseプランで利用可能です。 Data Explorer | Discourse - Civilized Discussion
プラグインをインストールした後、/admin/plugins に移動してください。
![]()
「設定」ボタンをクリックし、data explorer enabled をオンにしてから、ページに戻って再読み込みしてください。
スタックナビゲーションに「Data Explorer」というタブが表示されるはずです。それを選択するか、/admin/plugins/discourse-data-explorer に移動し、+、インポート、または実行ボタンを使用して開始してください。
デフォルトクエリ
新規インストール時、データエクスプローラーには、フォーラムのアクティビティから洞察を引き出すのに役立ついくつかのクエリが同梱されています。任意のクエリを開き、実行をクリックして試してみてください。
標準クエリは次のようになります。
注: デフォルトクエリはこのファイルから読み込まれます: discourse-data-explorer/lib/discourse_data_explorer/queries.rb at main · discourse/discourse-data-explorer · GitHub
すべての人に使ってほしい素晴らしいクエリがある場合は、このコミットのようにプルリクエストを作成してください。
デフォルトクエリは編集できません。変更したい場合は、SQLをコピーして新しいクエリに貼り付けてください。
クエリの作成
クエリビューで編集ボタンのいずれかをクリックするか、新しいエクスプローラークエリを開始すると、以下のような画面が表示されます:
上部の2つのボックスは、クエリの名前と説明です。名前はドロップダウンボックスで選択するもので、説明はクエリパラメータに何を入れるかを説明したり、照会されているデータを説明したりするために使用します。
左側のペインにSQLクエリを入力します。構文のハイライト表示とチェックが一部提供されています。
クエリの自動実行
実行ボタンをクリックしてクエリを実行することもできますが、URLにrunパラメータを追加することで、クエリを読み込む際の時間を節約できます。
例: /admin/plugins/discourse-data-explorer/queries/123?run
このパラメータをURLに追加すると、ページを読み込んだ瞬間にクエリが実行されるため、結果を見るために実行ボタンをクリックする必要はありません。これは頻繁に実行するクエリに特に役立ち、runパラメータを含めてブックマークしたりサイドバーに追加したりすることで、ワンクリックでレポートを取得できます。
クエリのインポート
例として、私が作成したクエリをインポートしてみましょう。このファイルをダウンロードし、インポートダイアログを開いてアップロードするファイルを選択するか、テキストボックスにクエリを貼り付けます。[インポート]をクリックして保存し、実行をクリックして結果を確認してください。
most-common-likers.dcquery (1).json (442 Bytes)
Discourseの開発者たちは互いにかなり気に入っているようです ![]()
クエリの検索
素晴らしいクエリが溜まりすぎた場合でも問題ありません!検索バーを使用して、タイトルや説明でフィルタリングできます。
非スタッフグループにクエリの実行を許可する
特定のグループ(モデレーターを含む)をクエリに追加して、アクセス権を付与できます:
保存後、その特定のグループの[グループ]ページにあるレポートタブから確認できます:
任意のクエリをクリックして開き、実行ボタンをクリックして結果を確認してください。また、ブックマークボタンをクリックしてグループレポートをブックマークすることもできます。
事前定義されたパラメータ付きでクエリを共有する
クエリにユーザー定義のパラメータを含めている場合、クエリのリンクを共有し、URLにパラメータを含めることで、ページ読み込み時に自動的に入力済みの状態にできます。
URLにはparams={"parameter_name":"value"}の形式でパラメータを含める必要があります。複数のパラメータはカンマで区切ります。例:
discourse.example.com/g/my-group/reports/6?params={"param1":"value1","param2":"value2"}
上記で言及したrunパラメータと組み合わせることで、読み込み時に自動的に実行される事前定義されたパラメータ付きのレポートを共有できます。
結果の制限とクエリのエクスポート
大規模なクエリを実行すると、Data Explorerが表示する行数に制限があることに気づくかもしれません。デフォルトでは、制限は1000行に設定されています。これは、過度に大きなクエリがDiscourseインスタンスのパフォーマンスを低下させたり妨害したりすることを防ぐためです。
この制限を回避したい場合は、いくつかのオプションがあります:
- ページネーション: 結果をページネーションできます。すべての結果を一度に返そうとする代わりに、特定の範囲の結果を返すようにクエリを書くことができます。その後、この範囲を調整してデータの異なるセクションを表示できます。これにより制限が増えるわけではありませんが、データをセクションごとにすべて表示できるようになります。
- 制限の増加: Discourseサーバーにアクセスでき、Discourseの設定変更を行うことに慣れている場合、制限を増やすことができます。ただし、これは注意して行う必要があります。制限を増やすと、特に複数のユーザーが同時に大規模なクエリを実行している場合、サーバーに大きな負荷がかかる可能性があります。
- 結果のダウンロード: また、クエリを実行した後に
JSONまたはCSVボタンをクリックして、Discourse上で直接表示するのではなく、クエリ結果をダウンロードすることもできます。JSONまたはCSV形式でダウンロードされたクエリ結果は、10,000行というはるかに高い結果制限を持ちます。プログラム的な目的では、Json形式を選択し、スプレッドシートアプリケーションでデータを操作したい場合は、CSV形式の方が便利かもしれません。
制限を回避しようとするのではなく、より効率的なクエリを書くか、必要なデータのみを取得するようにデータをフィルタリングすることをお勧めします。
エクスポートボタンをクリックして、SQLクエリ自体を.JSON形式でエクスポートすることもできます。この方法でエクスポートされたクエリは、他のDiscourseサイトにインポートしたり、サードパーティアプリケーションで使用したりできます。
クエリプラン
「クエリプランを含める」チェックボックスは、SQLクエリの理解と最適化に使用できます。
このボックスをチェックしてクエリを実行すると、DiscourseはDiscourseデータベース内のデータにアクセスするために使用される操作のシーケンスを表示します。これには、スキャン、ジョイン、ソート、その他のデータベースアクションが含まれる場合があります。クエリプランを調べることで、データベースがクエリをどのように実行しているかを正確に見ることができます。
データエクスプローラートーリアルシリーズ
Data Explorerに関する専用シリーズ#sql-tutorialもあります!DiscourseでSQLクエリを作成する方法について詳しく学びたい場合は、このシリーズのトピックをすべて読むことを強くお勧めします:











