カテゴリーを見る

Power BI REST API: ODBCドライバーなしでライブSQLデータに接続する

Power BI · ドライバーの代わりにREST APIを使用

ポイント Power BI で REST APIデータベースドライバではありません

Power BI は通常、マシン上のドライバーと、スケジュールされた更新の場合はオンプレミスのゲートウェイを介してデータベースにアクセスします。クエリ ストリームのエンドポイントはプレーンな HTTPS URL なので、Power BI Desktop と Power BI サービスは組み込みの Web コネクタを使用してそれを読み取ります。ポータルは Power Query M を自動的に書き込みます。 エクスポート → Power Query M (.pq)貼り付けて、キーを追加すれば完了です。同じファイルはExcelでも動作します。

約5分 ドライバーなし、ゲートウェイなし データはあなたのネットワーク上に留まります Excelも
行き詰まったら、遠慮なく質問してください。 開く サポート クエリ ストリーム(右上メニュー → サポート)からメッセージを送信してください。担当者が目を通しますので、「この画面で何を求めているのか分かりません」というご質問は、全く問題ありません。

最終的に手に入るもの

HTTPS経由で保存されたSQLクエリによってフィードされるPower BIテーブルは、エンドポイントが一般的なWeb APIのように見えるため、オンプレミスのゲートウェイなしでサービス内で更新できます。ポータルコンソールでは、エンドポイント自体は次のようになります。

役職api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19
鍵価値説明
市 文字列 オプションシアトル保存されたクエリからの呼び出し可能なフィルター
X-APIキーqsapi_AB••••••••••あなたの秘密のトークン
{
  "市": 「シアトル」
}
ヘッダ価値説明
X-APIキーqsapi_AB••••••••••あなた専用の秘密トークン。発信者1人につき1つ。いつでも取り消し可能。
コンテンツタイプアプリケーション/jsonパラメータはJSONボディとして送信されます
受け入れるアプリケーション/jsonJSON形式で返されます。テキスト/CSVを要求するとCSVが返されます。
curl -X POST "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19" \ -H "X-API-Key: qsapi_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"city": "Seattle"}'
ステータス 200 OK時間 84ミリ秒サイズ 412 B切り詰められた いいえ
{
  「列」: [ { "名前": 「顧客ID」, "タイプ": "整数" }, { "名前": "名前", "タイプ": "弦" }, { "名前": "市", "タイプ": "弦" } ],
  「行」: [
    { 「顧客ID」: 1042, "名前": 「ノースウィンド・トレーダーズ」, "市": 「シアトル」 },
    { 「顧客ID」: 1057, "名前": 「アルパイン・アウトフィッターズ」, "市": 「デンバー」 },
    { 「顧客ID」: 1063, "名前": 「ハーバーフーズ」, "市": 「ハリファックス」 }
  ],
  「メタ」: { 「行数」: 3, 「agent_duration_ms」: 41, 「リクエストID」: "req_7Hq2mKd9" }
}
ヘッダ価値説明
コンテンツタイプapplication/json; charset=utf-8本文タブの封筒
コンテンツの長さ412バイト数が返されました。上のサイズバッジ
読み取り専用:保存されたクエリ1つのみ、その他は保存されません SQLはあなたのアカウントから決して外部に漏れることはありません アクティビティ タブのすべての通話

ドライバーが存在する理由は、Power BI が実行場所に関係なく各データベースのワイヤプロトコルと通信する必要があるためです。そのため、スケジュールされた更新にはネットワーク内にゲートウェイが必要になります。エンドポイントを使用すれば、データベースに既に存在するエージェントがクエリを実行し、api.querystreams.com が HTTPS 経由で Power BI に応答します。そのため、Power BI がインストールする必要のあるものも、サービスがトンネル接続する必要のあるものもありません。

データベースが存在する場所オフィスネットワークまたはサーバー室独自のデータベースネットワーク上に留まりますクエリストリームエージェント保存されたクエリを実行しますapi.querystreamsキーをチェックするHTTPS · 行のみ、SQL は使用しません鍵を握っている者あなたのアプリ、ダッシュボード、パートナー、スクリプトX-APIキーを使用したGETまたはPOSTJSON、CSV、またはNDJSON形式で返送
エージェントはデータと共に動作し、クエリを実行します。api.querystreams.comはキーとレート制限をチェックし、行を渡します。呼び出し元はあなたのネットワークに到達することはありません。

必要なもの

クエリストリームアカウント

すべてのプランにREST APIが含まれています。無料プランでは、エンドポイント1つ、キー2つ、呼び出しごとに250行まで利用できます。これはこのガイドを作成するのに十分です。サインアップはこちらから。 my.querystreams.com.

接続を追加した、自分のデータベースにアクセスできるコンピュータ上のエージェント

多くの場合、データベースサーバー自体、または同じネットワーク上の常時稼働しているコンピューターです。

クエリビルダーに保存されたクエリ

エンドポイントは、保存されたクエリを正確に 1 つラップします。SELECT を記述し、一度実行して保存します。動的フィルタ ( 変数 呼び出し元がフィルタリングできるようにするためには、WHERE句で指定します。

エンドポイントを作成できるのは誰ですか? オーナー、管理者、クリエイター。 API トップバーにアイテムが表示されていません。管理者は、以下の手順でユーザーに対してアイテムを有効にできます。 アカウント → 権限エンドポイントを共有する相手は、どのプランでもQuery Streamsアカウントさえあれば問題ありません。

さらに Power BI Desktop、または Excel 2016 以降が必要です。エンドポイントがまだない場合は、 データベースREST APIハブ 保存したクエリからURLを作成するまでの手順を4つ紹介します。

Power BI を接続するには、次の 4 つのステップを実行します。

  1. Power Query M ファイルをエクスポートする

    で API エンドポイントを開いて、クリックします 輸出 そして選択する Power Query M (.pq)ファイルは完全なものです …を エンドポイントURLと呼び出し可能なパラメータが既に設定された式です。次のようになります。

    エクスポート · Power Query M (.pq)
    させて
      ソース = JSON。書類(ウェブ。コンテンツ(
        "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19", [ヘッダー = [#「X-APIキー」 = 「qsapi_YOUR_KEY」], クエリ = [圧縮 = "なし"]])), rows = Source[rows], table = Table.フロムレコード(行)
    で
      テーブル

    輸出は常に要求する 圧縮なしPower QueryはLZ4フレームをデコードできないため、Power BIが想定しているのはgzipで圧縮されたJSON形式です。

  2. Power BIに貼り付けてください

    Power BI Desktopで、 ホーム → データ変換 → 新しいソース → 空のクエリ開く 高度なエディターファイルの内容に置き換えてクリックします 完了Excelではパスは データ → データの取得 → 他のソースから → 空のクエリ次に、同じ高度なエディターを開きます。

  3. キーを追加

    プレースホルダーを、49文字のキーに置き換えてください。 qsapi_ エンドポイントから 共有 タブ。Power BI が接続方法を尋ねてきたら、 匿名: 鍵は X-APIキー クエリが既にヘッダーを設定しているため、Power BIの認証情報は不要です。

  4. 読み込みと更新

    クリック 閉じる&適用. 行 配列はクエリ列ごとに 1 つの列を持つテーブルになります。Power BI サービスに発行し、更新スケジュールを設定します。ソースは Web URL であるため、オンプレミス ゲートウェイは不要です。各更新はエンドポイントの 1 つの呼び出しです。 活動 タブ。

それでおしまい。 Power BI は HTTPS 経由でリアルタイムの行を読み取り、データベースはファイアウォールの内側に保持され、レポートの所有者は SQL やデータベースへのログイン情報を見ることはありません。

Power BI が行うリクエスト

内部的には、curl で実行できる呼び出しと同じです。Callable とマークされたパラメーターは Power Query から渡すことができます。 クエリ = [city = "シアトル"]:

GET · クエリ文字列内のパラメータ
curl "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19?city=Seattle" \ -H "X-API-Key: qsapi_YOUR_KEY"
レスポンス · 200 OK · application/json
{
  「列」: [ { "名前": 「顧客ID」, "タイプ": "整数" }, { "名前": "名前", "タイプ": "弦" }, { "名前": "市", "タイプ": "弦" } ],
  「行」: [
    { 「顧客ID」: 1042, "名前": 「ノースウィンド・トレーダーズ」, "市": 「シアトル」 },
    { 「顧客ID」: 1057, "名前": 「アルパイン・アウトフィッターズ」, "市": 「デンバー」 },
    { 「顧客ID」: 1063, "名前": 「ハーバーフーズ」, "市": 「ハリファックス」 }
  ],
  「メタ」: { 「行数」: 3, 「agent_duration_ms」: 41, 「リクエストID」: "req_7Hq2mKd9" }
}

行は列名をキーとするオブジェクトとして返され、列リストと メタ 行数、結果が切り捨てられたかどうか、およびサポートのために引用できるリクエスト ID を示すブロック。POST と同じ呼び出しでパラメータが JSON ボディに格納されます。これは、長い値のリストに適した方法です。

POST · JSONボディ内のパラメータ
curl -X POST "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19" \ -H "X-API-Key: qsapi_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"params": {"city": "Seattle"}}'
?format=csv
JSONではなくCSV形式で、ヘッダー行も含まれます。 受け入れ可能な形式: text/csv も同様です。ストリーミングエンドポイントは、最終的な NDJSON (1 行に 1 つの JSON オブジェクト) を返します。 {"_summary": true, "row_count": N} 行; 最後の行を確認してください。
?sample=true
最大5行まで、課金対象外。顧客への配線に最適です。
?圧縮=lz4
デコーダーを備えた大音量発信者向けのLZ4フレームボディ。 コード タブには言語ごとのデコーダーのスニペットがあります。通常のgzipは、クライアントが送信するときに自動的に行われます。 Accept-Encoding: gzip.
認証: Bearer qsapi_…
別名として受け入れられた X-APIキーブラウザのコードから使用します。

Power BI を超えて

ExcelとPower BI

エクスポート → Power Query M (.pq) すぐに使えるクエリが提供されます。それを詳細エディター(Excel:データ → データの取得 → 他のソースから → 空白のクエリ、Power BI:ホーム → データの変換 → 新しいソース → 空白のクエリ)に貼り付け、プレースホルダーを置き換えます。 qsapi_ 鍵。

郵便配達人、不眠症、ホップスコッチ

同じ 輸出 メニューは、Postman v2.1 コレクション、Insomnia v5 エクスポート、またはパラメーターが入力され、キーのプレースホルダーが設定された Hoppscotch コレクションをダウンロードします。

あなた自身のコード

の コード このタブには、cURL、Python、JavaScript、TypeScript、Java、C#、Go、PHP、PowerShell、Rubyの動作サンプルが含まれています。 エクスポート → OpenAPI 3.1仕様 あらゆるクライアントジェネレーターまたはSwagger UIにデータを提供します。

n8n、Zapier、Make、cron

作成する サービスキー ツールを実行するには、URLとキーをHTTPノードに貼り付けてスケジュール設定してください。各ツールにはそれぞれ固有のキーが割り当てられるため、他のツールに影響を与えることなく、1つのツールのキーを無効にすることができます。

計画で許可されている内容

プランエンドポイントエンドポイントごとのキーエンドポイントあたりの人数呼び出しごとの行数(静的)1回の呼び出しあたりの行数(ストリーミング)1分あたりの通話数、キーあたりの通話数
無料1212502503
個人的な核心2325,000250,00015
パーソナルプラス55510,000500,00030
ビジネスコア5101050,0001,000,000300
ビジネスプラス102025100,0005,000,000600
ビジネスマックス253050250,00010,000,000600
エンタープライズコア5050100500,00025,000,0001,000
エンタープライズプラス1001002501,000,00050,000,0001,000
エンタープライズマックス2502005002,500,000100,000,0001,500

すべての呼び出しには、60秒の固定クエリタイムアウトと8MiBの応答上限が設定されており、返されるバイト数は、ExcelやGoogleスプレッドシートのアドインと同じ、プランの月間データ許容量にカウントされます。無料プランではエンドポイントが1つ、月間5MBまで利用できますが、これは1日に何度も呼び出される小さなテーブルであれば十分対応できます。 価格ページをご覧ください プランごとの手当について。

無料とは、あなたが守り続けるプランのことです。 これは期限付きのトライアルではありません。その内容については、 価格ページ.

レポートの場合は、クエリをビジュアルに必要な列のみに限定し、残りは更新スケジュールに任せましょう。Power BI は更新のたびに結果全体を読み込むため、プランの静的な行上限が単一テーブルの上限となります。

安全に保つ

SQLはあなたのものです

呼び出し側は行データを受け取ります。クエリ、テーブル名、接続の詳細を見ることはなく、エンドポイントが実行する処理を変更することもできません。

鍵は1つ、エンドポイントは1つ、呼び出し元も1つ。

1つのキーは、正確に1つのエンドポイントに対してのみ有効です。各ユーザーまたはツールにそれぞれ専用のキーを割り当てれば、すべての呼び出しがそのキーに関連付けられてログに記録されます。いずれかのキーを失効させても、他のキーは引き続き機能します。失効は約5分以内に反映されます。

読み取り専用、壁の向こう側

エージェントは、保存されたSELECT文のみを、ネットワーク内部から独自の外部接続経由で実行します。ポートを開放する必要も、インターネット上に認証情報を送信する必要もありません。

台帳に記録されたすべての通話

の 活動 タブには、拒否されたものも含め、時間、受信者、ステータス、行数、バイト数、期間の各呼び出しが表示されます。 期限切れ 一時的な共有の有効期間と、エンドポイントが指定された日付に自動的にオフになる期間。

何かがうまくいかないとき

ステータスコード何をするか
401APIキー必須 / APIキー無効ヘッダーが欠落しているか、キーが間違っています。送信 X-API-Key: qsapi_…49文字すべてです。キーはエンドポイントの「共有」タブから再度コピーできます。
403API_KEY_ENDPOINT_MISMATCH別のエンドポイントで使用されている有効なキー。各キーは1つのエンドポイントに属します。
403APIキーが取り消されました / APIエンドポイントの有効期限が切れましたキーが失効したか、エンドポイントの有効期限が切れました。新しいキーを作成するか、エンドポイントを復元してください。
400API_PARAM_NOT_OVERRIDABLE送信されたパラメータは、所有者が呼び出し可能としてマークしていません。本文には、許可されている名前が一覧表示されています。
414APIクエリが大きすぎますGETクエリ文字列は8KB、または200個のリスト値を渡しました。同じパラメータをPOST JSONボディとして送信してください。
413API_出力サイズが大きすぎます結果が8MiBの上限を超えました。クエリを絞り込むか、エンドポイントをストリーミングに切り替えてください。
429API_RATE_LIMITEDキーまたはエンドポイントへの呼び出しが今この瞬間多すぎます。 再試行後 秒、または上げる レート制限 API設定 → プラン内のデフォルト設定をご覧ください。
429API_DATA_REALM_EXHAUSTED所有者の月間データ容量を使い切りました。データ容量は請求月ごとにリセットされます。容量を増やすにはアップグレードしてください。
503APIエージェントが接続されていませんご自身のデータベースの背後にあるエージェントがオフラインになっています。データ → データエージェントで確認してください。再接続され次第、呼び出しは再び成功します。
504APIクエリタイムアウトクエリの実行に60秒以上かかりました。フィルタまたはインデックスを追加するか、より絞り込んだクエリを保存してください。

すべてのエラーボディは、 {"error": {"code": "…", "message": "…"}} そしてすべての反応には X-QSリクエストID ヘッダー。サポートに問い合わせる際は、IDを引用してください。

Power Queryの具体的な2点: データソースエラー ネーミング 401 これは、Mファイル内のキーが間違っているか、または失効していることを意味します。 Expression.Error: レコードのフィールド「rows」が見つかりませんでした これはエンドポイントがエラーエンベロープを返したことを意味します。ポータルコンソールでURLを実行して内容を確認してください。

人々が尋ねる質問

私のデータはクエリストリームにコピーされますか?

いいえ。エージェントはデータが存在する場所でクエリを実行し、呼び出しで要求された行のみを送信します。その間に同期やキャッシュは行われず、呼び出しごとにクエリが実行されます。

呼び出し側はSQLを変更したり、他のテーブルを要求したりできますか?

いいえ。エンドポイントは保存されたクエリを1つ実行します。呼び出し元は、マークしたパラメーターのみを設定できます。 呼び出し可能、そして値は安全にバインドされます。テキストは引用符で囲まれ、エスケープされ、数値は範囲チェックされ、リストは展開されます。

これをパートナーに渡すにはどうすればいいですか?

エンドポイントの 共有 タブを選択 人々 そして、メールアドレスを入力します。魔法のリンクが送られてくるので、そのアドレスでサインインし(無料アカウントでも構いません)、独自のキーを作成します。アクティビティ タブで、その通話が名前で表示されます。サーバーまたは自動化ツールの場合は、 APIキー 代わりにラベルを付ける。

保存済みのクエリを編集するとどうなりますか?

エンドポイントは次の呼び出しで新しい SQL を実行し、その OpenAPI 仕様が再生成されます。URL とキーは変更されません。フィルタを追加または削除した場合は、 パラメータをロックする 発信者は正しいパラメータを確認できる。

無料プランで本当にこれがカバーされるのですか?

はい。無料プランは、期限切れの試用版ではなく、継続して利用できるプランです。1つのエンドポイント、2つのキー、1回の呼び出しにつき250行が含まれます。含まれる内容の詳細は、 価格ページ.

Power BI サービスのスケジュールされた更新は、ゲートウェイなしでも本当に機能しますか?

はい。このサービスは、あらゆる ウェブコンテンツ 匿名認証または埋め込みヘッダー認証でパブリックインターネットからアクセスできるソース。api.querystreams.com はそのようなソースであり、Power BI がお客様のデータベースにアクセスすることはありません。

DirectQueryは使用できますか?

いいえ。Power BI の Web ソースはインポート モードです。更新スケジュールを使用するか、クエリを絞り込み、プランのレート制限内でより頻繁に更新してください。

TableauとLooker Studioは同じエンドポイントを使用できますか?

Web または REST コネクタを備えたツールであればどれでも、 エクスポート → OpenAPI 3.1仕様 コネクタビルダーのエンドポイントについて説明します。 ?format=csv CSV形式を好むツール向け。

まだ行き詰まっていますか? 開く サポート クエリ ストリームで、どのステップで何が表示されているかをお知らせください。接続をご案内いたします。

Setup trouble?

  • Agent shows Offline, or Test connection and Browse are greyed out? Check that the Agent is online → Is the Agent online?
更新日 2026 年 9 月 27 日