注意事項 |
|
BI サイトの構築で利用している Redash には API が提供されています。通常は BI サイトにアクセスしていただいてクエリ結果を抽出する形となりますが、この API を用いて既存システム等と連携することも可能です。
Redash は OSS のため、API に関する情報は公式サイトやブログ記事等で公開されています。こちらも合わせてご参照ください。
API を実行するサーバーの IP アドレスの許可設定を行う
BI サイトの API 実行は、セキュリティの観点から IP 制限が設けられております。API 連携をご希望の場合は、API を実行するサーバーの IP アドレスをサポート窓口までご連絡ください。
クエリの実行結果を API で取得する手順
1) ログインユーザーの API キーを取得する
BI サイトにログインし、画面右上の [Edit Profile] メニューから、ログインユーザーの API キーを取得します。
2) 対象クエリの ID を取得する
対象クエリの詳細画面に遷移し、アドレスバーにある URL からクエリ ID を取得します。(上記 URL の場合、クエリ ID は 2 となります)
3) 対象クエリを API 経由で実行し、ジョブ ID を取得する
API キーを用いてクエリの更新 API を実行し、ジョブ ID を取得します。
以下は curl コマンドでクエリ更新 API を実行する例となります。ジョブはクエリを非同期に処理しているため、クエリ結果を特定するための ID "query_result_id" は、この時点では NULL となります。
$ curl -X POST https://xxx-bi.hacomono.jp/api/queries/2/refresh?api_key={APIキー} {"job": {"status": 2, "error": "", "id": "{ジョブID}", "query_result_id": null, "updated_at": 0}} |
クエリが動的パラメータに対応している場合、p_パラメータ名 を付与することでパラメータを指定可能です。以下はパラメータ period に対して 2020-10 という値を指定して実行する例です。
$ curl -X POST https://xxx-bi.hacomono.jp/api/queries/2/refresh?api_key={APIキー}&p_period=2020-10 |
4) ジョブ ID からクエリ結果 ID を取得する
先程取得したジョブ ID から、クエリ結果 ID を取得します。クエリの実行が完了すると、"query_result_id" に値がセットされた状態となります。
$ curl -X GET https://xxx-bi.hacomono.jp/api/jobs/{ジョブID}?api_key={APIキー} {"job": {"status": 2, "error": "", "id": "{ジョブID}", "query_result_id": {クエリ結果ID}, "updated_at": 0}} |
注意事項 |
|
5) クエリ結果 ID からクエリ結果を取得する
先程取得したクエリ結果IDから、実際のクエリ結果を抽出することが可能です。
$ curl -X GET https://xxx-bi.hacomono.jp/api/query_results/{クエリ結果ID}?api_key={APIキー} |
【注意】クエリ結果取得処理の負荷に関しまして
取得されるデータはAPIにより都度実行されますクエリの実行結果が抽出される形となります。
そのため同時に複数APIからのリクエストが発生いたしますと、実行許容範囲を超え処理がしきれずにエラー結果が返されてしまうケースがございます。
ポイント |
APIのリクエスト頻度に関しましては秒単位でのリクエストは控え、分単位など余裕をもって行なってください。 |
ご案内させていただいておりますRedashでは同タイミングで実行可能なクエリ数は限られており、ご契約いただいているサーバーの仕様に依存いたしますが限度数が存在いたします。
本機能の利用を希望され、かつアクセス頻度が著しく高いものである場合恐れ入りますがhacomonoサポートまでご相談いただけますと幸いです。
コメント
0件のコメント
記事コメントは受け付けていません。