查看类别

Nile REST API:将 SQL 查询转换为端点

REST API · 尼罗河到端点

转动 尼罗河 SQL 查询结果 REST API 端点

在查询构建器中保存查询,然后单击 新端点这样,您就拥有了一个位于 api.querystreams.com 的 URL,它带有自己的密钥。SQL 语句在已部署到您的 Nile 数据库的代理上以只读方式运行;调用者会收到 JSON 或 CSV 数据,而不会看到 SQL 语句、数据库架构或密码。无需托管任何服务器,也无需开放任何端口。从保存查询到执行大约需要 90 秒,免费套餐即可满足您的第一个端点需求。

从已保存的查询算起大约需要 90 秒 没有服务器可供托管 凭证将一直随您保留 每个来电者一个密钥,可随时撤销
遇到任何问题?尽管问我们。 打开 支持 请在“查询流”(右上角菜单 → 支持)中给我们发送消息。我们会安排专人阅读您的消息,“我不知道这个屏幕需要什么”就是一个很好的问题。

你最终会得到什么

尼罗河标志网址 api.querystreams.com 它会将您保存的 Nile 查询结果以 JSON 或 CSV 格式返回给任何拥有密钥的人,在您共享之前,请先在门户网站的控制台中进行测试。例如:

邮政api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19
钥匙价值描述
名字 字符串 选修的西雅图从已保存的查询中调用过滤器
X-API密钥qsapi_AB••••••••••你的秘密令牌
{
  “姓名”: “西雅图”
}
标题价值描述
X-API密钥qsapi_AB••••••••••您的秘密令牌。每位来电者限用一个,可随时撤销。
内容类型application/json参数以 JSON 正文的形式传递。
接受application/json返回 JSON 格式;请求 text/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"}'
现状 200 OK时间 84毫秒尺寸 412 B截断 不
{
  “列”: [ { “姓名”: "租户ID", “类型”: 整数 }, { “姓名”: "customer_id", “类型”: “细绳” }, { “姓名”: “姓名”, “类型”: “细绳” } ],
  “行”: [
    { "租户ID": 1042, "customer_id": “北风贸易公司”, “姓名”: “西雅图” },
    { "租户ID": 1057, "customer_id": “高山装备店”, “姓名”: “丹佛” },
    { "租户ID": 1063, "customer_id": “港口食品”, “姓名”: “哈利法克斯” }
  ],
  “元”: { 行数: 3, "agent_duration_ms": 41, "request_id": "req_7Hq2mKd9" }
}
标题价值描述
内容类型application/json; charset=utf-8正文选项卡上的信封
内容长度412返回的字节数;上方“大小”徽章
只读:仅保存一个查询,没有其他内容 SQL 永远不会离开您的帐户 “活动”选项卡上的每次通话

Nile 将您的数据存储在云端,由其服务提供商运营。其他人想要在他们的应用程序、仪表板或脚本中使用部分数据,而通常的解决方案都会带来过多的依赖:例如,一个比项目生命周期更长的数据库登录信息、一个第二天早上就过时的夜间导出数据,或者一个需要有人运行和维护的小型 API 服务器。Query Streams 将端点简化为一个已保存的查询和一个密钥。已部署在您的 Nile 数据库中的代理会运行该查询,api.querystreams.com 会检查密钥和速率限制,然后调用者即可获取数据行。SQL 语句、模式和凭据始终保留在您的帐户中。

特工奔跑的地方任何始终在线且联网的计算机或服务器您的尼罗河数据库凭证保留在此处查询流代理运行已保存的查询api.querystreams检查钥匙HTTPS · 仅行,绝不涉及 SQL持有钥匙的人你的应用、控制面板、合作伙伴、脚本使用 X-API-Key 进行 GET 或 POST 请求JSON、CSV 或 NDJSON 返回
代理程序会访问您的数据并执行查询。api.querystreams.com 会检查密钥和速率限制,并将数据行传递给 api.querystreams.com。调用方无需访问您的网络。

你需要准备什么

查询流帐户

每个套餐都提供 REST API。免费套餐提供一个端点、两个键,每次调用最多可发送 250 行数据,足以构建本指南。立即注册! my.querystreams.com.

在任何始终在线的计算机上安装代理,并添加 Nile 连接。

它只需要连接互联网即可。

查询生成器中已保存的查询

该端点仅封装一个已保存的查询。编写 SELECT 语句,运行一次,然后保存。添加动态筛选器( @variable 在 WHERE 子句中)如果调用者应该能够进行筛选。

谁可以创建端点? 所有者、管理员和创建者。如果 API 您的顶部栏缺少某个项目,管理员可以为您的用户启用它。 账户 → 权限任何与您共享端点的人只需要一个 Query Streams 帐户,任何套餐均可。

分四步完成设置

  1. 保存查询

    在 查询生成器 选择你的 Nile 连接,编写要发布的 SELECT 语句,然后运行一次以查看结果行。确保只包含调用者需要的列;端点会返回查询语句的全部内容。

    已保存查询 · 客户
    选择 租户ID、客户ID、姓名、城市
    从 公共客户
    命令 经过 名字
    限制 100;

    如果呼叫者需要能够进行筛选,请添加动态筛选器,例如 WHERE name = @name。 每个 @variable 在步骤 3 中,它会成为一个 API 参数。点击 节省 并为查询命名;该名称将成为端点的显示名称。

  2. 创建端点

    打开 API 点击顶部栏并单击 新端点该向导有四个步骤: 选择查询, 配置, 锁定参数 和 共享。 在 选择查询单击您刚刚保存的查询;代理离线的查询会显示为灰色。单击 下一页.

    捷径。 您可以从查询构建器直接显示已打开的查询;然后向导将从此处开始。 配置 查询语句已选定。

  3. 配置并锁定参数

    在 配置 对于第一个端点来说,默认值是正确的: 显示名称 根据查询结果填写, 寿命 永久(选择) 即将到期 (临时份额) 响应模式 静态(一个 JSON 响应;选择) 流媒体 对于超出计划静态行上限的结果), 内页格式 JSON。响应模式和格式一旦创建就固定不变,因此请在此处决定。点击 下一页.

    在 锁定参数 查询中的每个动态筛选器都会列出。保留调用者可能设置的筛选器。 可调用 并给每个人一个 查询字符串名称; 打钩 必需的 如果调用没有指定该值,则调用应失败。固定一个调用者不得更改的值。 已锁定或者类似这样的约会场景 月初. 隐 保留查询自身的默认值,并拒绝任何设置默认值的尝试。点击 下一页.

  4. 分享即可获得您的钥匙

    在 共享 你可以邀请 人们 通过电子邮件或添加 服务密钥 可以是服务器或自动化工具,或者暂时两者都跳过。点击 创建并获取我的密钥成功屏幕会显示端点 URL 和您的密钥:一个以“.”开头的 49 个字符的字符串。 qsapi_复制它。稍后您可以从端点再次显示它。 共享 标签页,这样即使关闭屏幕也不会丢失。

    点击 发送 在控制台中,从门户本身发出第一个调用。响应窗格显示 现状, 时间 和 尺寸, 这 身体 标签页显示 JSON 数据,调用信息显示在标签页上。 活动 几秒钟后按下 Tab 键。

就是这样。 您的 Nile 数据库现在通过 URL 以只读方式响应您提供的密钥。无需安装任何软件,无需打开任何端口,SQL 代码也保留在您的帐户中。

无论从哪里拨打电话

将端点 ID 替换为控制台地址栏中的您自己的端点 ID, qsapi_YOUR_KEY 使用您的密钥。可调用参数放在 GET 请求的查询字符串中;这里保存的查询会公开 名字:

GET · 查询字符串中的参数
curl "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19?name=Seattle" \ -H "X-API-Key: qsapi_YOUR_KEY"
响应 · 200 OK · application/json
{
  “列”: [ { “姓名”: "租户ID", “类型”: 整数 }, { “姓名”: "customer_id", “类型”: “细绳” }, { “姓名”: “姓名”, “类型”: “细绳” } ],
  “行”: [
    { "租户ID": 1042, "customer_id": “北风贸易公司”, “姓名”: “西雅图” },
    { "租户ID": 1057, "customer_id": “高山装备店”, “姓名”: “丹佛” },
    { "租户ID": 1063, "customer_id": “港口食品”, “姓名”: “哈利法克斯” }
  ],
  “元”: { 行数: 3, "agent_duration_ms": 41, "request_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": {"name": "Seattle"}}'
格式=csv
格式为 CSV 而非 JSON,包含表头行。 接受:文本/CSV 也一样。流式端点返回 NDJSON(每行一个 JSON 对象),并以结尾结尾。 {"_summary": true, "row_count": N} 检查最后一行。
?sample=true
最多五排,不计费。适合给客户接线。
压缩=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 节点中,并进行调度。每个工具都有自己的密钥,因此您可以撤销其中一个工具的密钥而不会影响其他工具。

这些计划允许什么?

计划终点每个端点的键每个端点的人数每次调用行数(静态)每次调用(流式传输)的行数每分钟按键通话次数
免费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
企业版 Max2502005002,500,000100,000,0001,500

每次调用都有固定的 60 秒查询超时时间和 8 MiB 的响应大小上限,返回的数据量会计入您套餐的每月数据流量限额,与 Excel 和 Google Sheets 插件使用的限额相同。免费套餐只有一个端点,每月 5 MB 流量,足以满足每天多次调用的小型表格的需求。 请查看定价页面 按计划发放津贴。

免费是一种你可以坚持的计划。 这不是一份会过期的试用期。请查看以下内容,了解具体包含哪些内容。 定价页面.

确保安全

SQL 代码仍然归您所有。

调用者只能获取数据行。他们看不到查询语句、表名或连接详情,也无法更改端点运行的内容。

一个密钥,一个端点,一个呼叫者

一个密钥只能对应一个终端。给每个人或工具分配一个密钥,每次调用都会被记录到该密钥下。撤销其中一个密钥,其他密钥仍然有效;撤销操作大约会在五分钟内生效。

只读,在你这边的墙里

代理程序仅运行已保存的 SELECT 查询,不会执行其他任何操作,它在您的网络内部,通过自身的出站连接运行。无需打开任何端口,也无需在互联网上提供任何凭据。

账簿中的每一次通话

这 活动 该标签页显示每次呼叫的时间、接收方、状态、行数、字节数和持续时间,包括被拒绝的呼叫。设置一个 即将到期 临时共享的生命周期以及端点会在指定日期自动关闭。

当某些事情不起作用时

现状代码该怎么办
401API密钥已要求 / API密钥无效缺少标头或密钥错误。发送 X-API-Key:qsapi_…全部49个字符。密钥可以从终端的“共享”选项卡中再次复制。
403API_KEY_ENDPOINT_MISMATCH在不同的端点上使用的有效密钥。每个密钥都属于一个端点。
403API密钥已撤销 / API端点已过期密钥已被撤销或端点已过期。请生成新密钥或恢复端点。
400API_PARAM_NOT_OVERRIDABLE您发送了一个参数,但其所有者未将其标记为可调用。请求体列出了允许的名称。
414API 查询过大GET 请求字符串传递了 8 KB 或 200 个列表值。请将相同的参数作为 POST 请求的 JSON 正文发送。
413API 输出过大结果超过了 8 MiB 的上限。请缩小查询范围,或将端点切换为流式传输。
429API_RATE_LIMITED这分钟内对密钥或端点的呼叫过多。请稍候。 重试后 秒,或举 利率限制 在 API 设置 → 套餐默认设置下。
429API_DATA_REALM_EXHAUSTED用户每月的数据流量已用完。流量将在下个月结算时重置;如需更多流量,请升级套餐。
503API代理未连接您的 Nile 数据库背后的代理已离线。请在“数据”→“数据代理”下检查;代理重新连接后,调用将再次成功。
504API 查询超时查询耗时超过 60 秒。请添加筛选条件或索引,或者保存更精确的查询语句。

每个错误体都有其形状 {"error": {"code": "…", "message": "…"}} 每个回应都包含一个 X-QS-请求-ID 邮件头。在联系客服时,请将 ID 号括起来。

人们提出的问题

我的数据会被复制到查询流吗?

不。代理程序会运行查询,查找您的数据,并仅发送调用请求的行。期间不会进行任何同步或缓存;每次调用都会运行查询。

用户能否修改 SQL 语句或要求添加其他表?

不。一个端点只会运行一个已保存的查询。调用者只能设置您标记的参数。 可调用并且这些值被安全地绑定:文本被引用和转义,数字被范围检查,列表被展开。

我该如何把这个交给我的搭档?

在端点上 共享 选择标签 人们 然后输入他们的邮箱地址。他们会收到一个神奇的链接,使用该地址登录(免费账户即可),并生成自己的密钥;您可以在“活动”选项卡上按名称查看他们的调用记录。对于服务器或自动化工具,请创建一个 API密钥 改为贴上标签。

当我编辑已保存的查询时会发生什么?

该端点会在下次调用时运行新的 SQL 语句,并重新生成其 OpenAPI 规范。URL 和键值不会改变。如果您添加或删除过滤器,请重新访问该端点。 锁定参数 这样,来电者就能看到正确的参数。

免费套餐真的包含这些吗?

是的。免费版是永久有效的,不是会过期的试用版。它包含一个端点、两个密钥,每次调用最多可处理 250 行数据。请查看具体包含内容。 定价页面.

该端点是否支持 Nile 的 SQL 方言?

是的,因为 SQL 语句是你自己写的。你是在查询构建器中针对 Nile 数据库编写并运行的;这个端点会通过同一个连接运行完全相同的语句,参数值也按照 Nile 预期的方式绑定。

我的 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?
更新 2026 年 9 月 27 日

Powered by BetterDocs