ターン ナイル川 SQLクエリを REST API 終点
クエリビルダーでクエリを保存するには、 新しいエンドポイントapi.querystreams.com に独自のキーを持つ URL が割り当てられます。SQL は、Nile データベースに既にインストールされているエージェント上で読み取り専用で実行されます。呼び出し元は JSON または CSV を受け取り、SQL、スキーマ、パスワードを見ることはありません。ホストするものも、開くポートもありません。保存したクエリから約 90 秒で完了し、無料プランでは最初のエンドポイントがカバーされます。
最終的に手に入るもの
URL api.querystreams.com これは、保存したNileクエリの行をJSONまたはCSV形式でキーを持つユーザーに返します。共有する前に、ポータルのコンソールでテストしてください。例:
| 鍵 | 価値 | 説明 |
|---|---|---|
名称 文字列 オプション | シアトル | 保存されたクエリからの呼び出し可能なフィルター |
X-APIキー | qsapi_AB•••••••••• | あなたの秘密のトークン |
{
"名前": 「シアトル」
}| ヘッダ | 価値 | 説明 |
|---|---|---|
X-APIキー | qsapi_AB•••••••••• | あなた専用の秘密トークン。発信者1人につき1つ。いつでも取り消し可能。 |
コンテンツタイプ | アプリケーション/json | パラメータはJSONボディとして送信されます |
受け入れる | アプリケーション/json | JSON形式で返されます。テキスト/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 '{"name": "Seattle"}'{
「列」: [ { "名前": 「テナントID」, "タイプ": "整数" }, { "名前": 「顧客ID」, "タイプ": "弦" }, { "名前": "名前", "タイプ": "弦" } ],
「行」: [
{ 「テナントID」: 1042, 「顧客ID」: 「ノースウィンド・トレーダーズ」, "名前": 「シアトル」 },
{ 「テナントID」: 1057, 「顧客ID」: 「アルパイン・アウトフィッターズ」, "名前": 「デンバー」 },
{ 「テナントID」: 1063, 「顧客ID」: 「ハーバーフーズ」, "名前": 「ハリファックス」 }
],
「メタ」: { 「行数」: 3, 「agent_duration_ms」: 41, 「リクエストID」: "req_7Hq2mKd9" }
}| ヘッダ | 価値 | 説明 |
|---|---|---|
コンテンツタイプ | application/json; charset=utf-8 | 本文タブの封筒 |
コンテンツの長さ | 412 | バイト数が返されました。上のサイズバッジ |
Nileは、プロバイダーが運用するクラウド上にデータを保持します。他のユーザーがアプリ、ダッシュボード、スクリプトなどでそのデータの一部を利用したい場合、従来の解決策では、プロジェクトの終了まで有効なデータベースログイン、朝食時には古くなってしまう夜間エクスポート、あるいは誰かが運用とパッチ適用をしなければならない小規模なAPIサーバーなど、多くのリソースを渡す必要が生じます。Query Streamsは、エンドポイントを保存済みのクエリとキーで構成します。Nileデータベースに既に存在するエージェントがクエリを実行し、api.querystreams.comがキーとレート制限をチェックし、呼び出し元がデータを取得します。SQL、スキーマ、認証情報は、お客様のアカウントから外部に送信されることはありません。
必要なもの
クエリストリームアカウント
すべてのプランにREST APIが含まれています。無料プランでは、エンドポイント1つ、キー2つ、呼び出しごとに250行まで利用できます。これはこのガイドを作成するのに十分です。サインアップはこちらから。 my.querystreams.com.
ナイル接続が追加された、常時稼働中のコンピュータ上のエージェント
必要なのはインターネット接続だけです。
クエリビルダーに保存されたクエリ
エンドポイントは、保存されたクエリを正確に 1 つラップします。SELECT を記述し、一度実行して保存します。動的フィルタ ( 変数 呼び出し元がフィルタリングできるようにするためには、WHERE句で指定します。
エンドポイントを作成できるのは誰ですか? オーナー、管理者、クリエイター。 API トップバーにアイテムが表示されていません。管理者は、以下の手順でユーザーに対してアイテムを有効にできます。 アカウント → 権限エンドポイントを共有する相手は、どのプランでもQuery Streamsアカウントさえあれば問題ありません。
4つのステップで設定できます
-
クエリを保存します
で クエリビルダー Nile接続を選択し、公開したいSELECT文を記述して一度実行し、行を確認してください。呼び出し元が必要とする列のみを指定してください。エンドポイントはクエリが返すものと全く同じものを返します。
保存されたクエリ · 顧客セレクト テナントID、顧客ID、名前、都市 フロム 一般のお客様 注文 による 名称 リミット 100;
呼び出し元がフィルタリングできるようにする必要がある場合は、たとえば動的フィルタを追加します。
WHERE name = @name。 それぞれ変数ステップ3でAPIパラメータになります。 セーブ そしてクエリに名前を付けます。その名前がエンドポイントの表示名になります。 -
エンドポイントを作成します
開く API 上部のバーをクリックして 新しいエンドポイント魔法使いには4つのステップがあります。 クエリを選択する, 設定, パラメータをロックする そして シェア。 の上 クエリを選択する先ほど保存したクエリをクリックします。エージェントがオフラインのクエリはグレー表示されます。 次のページ.
ショートカット。 クエリビルダーから開いているクエリを直接表示できます。ウィザードは次の場所から始まります。 設定 既に選択されたクエリを使用しています。
-
パラメータを設定してロックする
の上 設定 デフォルト設定は最初のエンドポイントには適切です。 表示名 クエリから入力された、 寿命 永久(選択) 期限切れ (一時的なシェアの場合) 応答モード 静的(JSONレスポンス1つ、選択可能) ストリーミング配信 プランの静的行数上限を超える結果については、 内部フォーマット JSON。レスポンスモードとフォーマットは作成後に固定されるため、ここで決定してください。クリック 次のページ.
の上 パラメータをロックする クエリ内のすべての動的フィルターが一覧表示されます。呼び出し元が設定できるものはそのままにしておきます。 呼び出し可能 そしてそれぞれに クエリ文字列名; チェック 必須 呼び出し時にそれがなければ失敗する可能性がある。呼び出し元が変更してはならない値を固定する。 ロック済みまたは、次のようなデートのシナリオ 月初め. 隠れた クエリのデフォルト値を保持し、それを設定しようとする試みを拒否します。 次のページ.
-
シェアしてキーを手に入れよう
の上 シェア 招待できます 人々 メールで、または追加 サービスキー サーバーまたは自動化ツールを選択するか、両方とも今はスキップしてください。 キーを作成して取得する成功画面にはエンドポイント URL とキーが表示されます。キーは 49 文字の文字列で、
qsapi_コピーしてください。後でエンドポイントから再度表示できます。 共有 タブとして保存されるため、画面を閉じても失われることはありません。クリック 送信 コンソールで、ポータル自体から最初の呼び出しを行います。応答ペインには、 ステータス, 時間 そして サイズ、 体 タブには JSON が表示され、呼び出しは 活動 数秒後にタブキーを押す。
それでおしまい。 これで、Nileデータベースは、あなたが渡したキーに対して、読み取り専用のURLで応答するようになりました。何もインストールされず、ポートも開かれず、SQLはあなたのアカウント内に保持されます。
どこからでも電話できます
コンソールのURLバーからエンドポイントIDを自分のものに置き換えて、 qsapi_YOUR_KEY キーを使用して。呼び出し可能なパラメータはGETのクエリ文字列に含まれます。ここでは保存されたクエリが公開されます。 名称:
curl "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19?name=Seattle" \ -H "X-API-Key: qsapi_YOUR_KEY"
{
「列」: [ { "名前": 「テナントID」, "タイプ": "整数" }, { "名前": 「顧客ID」, "タイプ": "弦" }, { "名前": "名前", "タイプ": "弦" } ],
「行」: [
{ 「テナントID」: 1042, 「顧客ID」: 「ノースウィンド・トレーダーズ」, "名前": 「シアトル」 },
{ 「テナントID」: 1057, 「顧客ID」: 「アルパイン・アウトフィッターズ」, "名前": 「デンバー」 },
{ 「テナントID」: 1063, 「顧客ID」: 「ハーバーフーズ」, "名前": 「ハリファックス」 }
],
「メタ」: { 「行数」: 3, 「agent_duration_ms」: 41, 「リクエストID」: "req_7Hq2mKd9" }
}行は列名をキーとするオブジェクトとして返され、列リストと メタ 行数、結果が切り捨てられたかどうか、およびサポートのために引用できるリクエスト ID を示すブロック。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": {"name": "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キーブラウザのコードから使用します。
プラグを差し込む場所
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分あたりの通話数、キーあたりの通話数 |
|---|---|---|---|---|---|---|
| 無料 | 1 | 2 | 1 | 250 | 250 | 3 |
| 個人的な核心 | 2 | 3 | 2 | 5,000 | 250,000 | 15 |
| パーソナルプラス | 5 | 5 | 5 | 10,000 | 500,000 | 30 |
| ビジネスコア | 5 | 10 | 10 | 50,000 | 1,000,000 | 300 |
| ビジネスプラス | 10 | 20 | 25 | 100,000 | 5,000,000 | 600 |
| ビジネスマックス | 25 | 30 | 50 | 250,000 | 10,000,000 | 600 |
| エンタープライズコア | 50 | 50 | 100 | 500,000 | 25,000,000 | 1,000 |
| エンタープライズプラス | 100 | 100 | 250 | 1,000,000 | 50,000,000 | 1,000 |
| エンタープライズマックス | 250 | 200 | 500 | 2,500,000 | 100,000,000 | 1,500 |
すべての呼び出しには、60秒の固定クエリタイムアウトと8MiBの応答上限が設定されており、返されるバイト数は、ExcelやGoogleスプレッドシートのアドインと同じ、プランの月間データ許容量にカウントされます。無料プランではエンドポイントが1つ、月間5MBまで利用できますが、これは1日に何度も呼び出される小さなテーブルであれば十分対応できます。 価格ページをご覧ください プランごとの手当について。
無料とは、あなたが守り続けるプランのことです。 これは期限付きのトライアルではありません。その内容については、 価格ページ.
安全に保つ
SQLはあなたのものです
呼び出し側は行データを受け取ります。クエリ、テーブル名、接続の詳細を見ることはなく、エンドポイントが実行する処理を変更することもできません。
鍵は1つ、エンドポイントは1つ、呼び出し元も1つ。
1つのキーは、正確に1つのエンドポイントに対してのみ有効です。各ユーザーまたはツールにそれぞれ専用のキーを割り当てれば、すべての呼び出しがそのキーに関連付けられてログに記録されます。いずれかのキーを失効させても、他のキーは引き続き機能します。失効は約5分以内に反映されます。
読み取り専用、壁の向こう側
エージェントは、保存されたSELECT文のみを、ネットワーク内部から独自の外部接続経由で実行します。ポートを開放する必要も、インターネット上に認証情報を送信する必要もありません。
台帳に記録されたすべての通話
の 活動 タブには、拒否されたものも含め、時間、受信者、ステータス、行数、バイト数、期間の各呼び出しが表示されます。 期限切れ 一時的な共有の有効期間と、エンドポイントが指定された日付に自動的にオフになる期間。
何かがうまくいかないとき
| ステータス | コード | 何をするか |
|---|---|---|
| 401 | APIキー必須 / APIキー無効 | ヘッダーが欠落しているか、キーが間違っています。送信 X-API-Key: qsapi_…49文字すべてです。キーはエンドポイントの「共有」タブから再度コピーできます。 |
| 403 | API_KEY_ENDPOINT_MISMATCH | 別のエンドポイントで使用されている有効なキー。各キーは1つのエンドポイントに属します。 |
| 403 | APIキーが取り消されました / APIエンドポイントの有効期限が切れました | キーが失効したか、エンドポイントの有効期限が切れました。新しいキーを作成するか、エンドポイントを復元してください。 |
| 400 | API_PARAM_NOT_OVERRIDABLE | 送信されたパラメータは、所有者が呼び出し可能としてマークしていません。本文には、許可されている名前が一覧表示されています。 |
| 414 | APIクエリが大きすぎます | GETクエリ文字列は8KB、または200個のリスト値を渡しました。同じパラメータをPOST JSONボディとして送信してください。 |
| 413 | API_出力サイズが大きすぎます | 結果が8MiBの上限を超えました。クエリを絞り込むか、エンドポイントをストリーミングに切り替えてください。 |
| 429 | API_RATE_LIMITED | キーまたはエンドポイントへの呼び出しが今この瞬間多すぎます。 再試行後 秒、または上げる レート制限 API設定 → プラン内のデフォルト設定をご覧ください。 |
| 429 | API_DATA_REALM_EXHAUSTED | 所有者の月間データ容量を使い切りました。データ容量は請求月ごとにリセットされます。容量を増やすにはアップグレードしてください。 |
| 503 | APIエージェントが接続されていません | Nileデータベースの背後にあるエージェントがオフラインになっています。データ → データエージェントで確認してください。再接続され次第、呼び出しは再び成功します。 |
| 504 | APIクエリタイムアウト | クエリの実行に60秒以上かかりました。フィルタまたはインデックスを追加するか、より絞り込んだクエリを保存してください。 |
すべてのエラーボディは、 {"error": {"code": "…", "message": "…"}} そしてすべての反応には X-QSリクエストID ヘッダー。サポートに問い合わせる際は、IDを引用してください。
人々が尋ねる質問
私のデータはクエリストリームにコピーされますか?
いいえ。エージェントはデータが存在する場所でクエリを実行し、呼び出しで要求された行のみを送信します。その間に同期やキャッシュは行われず、呼び出しごとにクエリが実行されます。
呼び出し側はSQLを変更したり、他のテーブルを要求したりできますか?
いいえ。エンドポイントは保存されたクエリを1つ実行します。呼び出し元は、マークしたパラメーターのみを設定できます。 呼び出し可能、そして値は安全にバインドされます。テキストは引用符で囲まれ、エスケープされ、数値は範囲チェックされ、リストは展開されます。
これをパートナーに渡すにはどうすればいいですか?
エンドポイントの 共有 タブを選択 人々 そして、メールアドレスを入力します。魔法のリンクが送られてくるので、そのアドレスでサインインし(無料アカウントでも構いません)、独自のキーを作成します。アクティビティ タブで、その通話が名前で表示されます。サーバーまたは自動化ツールの場合は、 APIキー 代わりにラベルを付ける。
保存済みのクエリを編集するとどうなりますか?
エンドポイントは次の呼び出しで新しい SQL を実行し、その OpenAPI 仕様が再生成されます。URL とキーは変更されません。フィルタを追加または削除した場合は、 パラメータをロックする 発信者は正しいパラメータを確認できる。
無料プランで本当にこれがカバーされるのですか?
はい。無料プランは、期限切れの試用版ではなく、継続して利用できるプランです。1つのエンドポイント、2つのキー、1回の呼び出しにつき250行が含まれます。含まれる内容の詳細は、 価格ページ.
エンドポイントはNileのSQL方言に対応していますか?
はい、なぜならそのSQLはあなたが作成したものだからです。クエリビルダーでNileデータベースに対してSQL文を作成し、実行しました。エンドポイントは、Nileが想定する形式でパラメータ値をバインドし、同じ接続を介してそのSQL文をそのまま実行します。
私のNileデータベースはインターネットからアクセス可能である必要がありますか?
いいえ。エージェントだけが、インターネットに接続された常時稼働のコンピュータからアクセスする必要があります。エージェントはQuery Streamsに一度だけ発信接続を行い、呼び出し元はapi.querystreams.comと通信するだけで、お客様のサーバーと通信することはありません。
関連ガイド
すべてのガイド Nile
あなたの設定とは少し違いますか?
- 自分のサーバーやコンピューターでPostgreSQLを実行するには、PostgreSQLカードを使用してください → PostgreSQL
Setup trouble?
- Want the Agent to sign in with a login that can only read? Create a read-only database user, with copy-paste SQL for each database → Create a read-only database user
- Agent shows Offline, or Test connection and Browse are greyed out? Check that the Agent is online → Is the Agent online?

