You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Palantir Foundry REST API数据集查询端点调用404错误求助

Palantir Foundry REST API数据集查询端点调用404错误求助

我之前也碰到过类似的情况,Foundry有些实用的API端点确实藏得比较深,你遇到的404问题大概率是用错了查询端点,咱们一步步来排查解决:

首先,你当前使用的/api/v2/datasets/{dataset_rid}/transactions/query这个端点是不存在的,Foundry中执行SQL查询数据集的正确入口是SQL API的/api/sql/v1/query,这个端点专门用来提交SQL查询(支持单/多数据集),是官方实际可用的端点之一。

然后,你的SQL语句里引用数据集的方式也有问题,不能直接写dataset,必须用数据集的完整RID来指定,有两种常用写法:

  1. 把RID用双引号包裹:SELECT Column1, Column2 FROM "ri.foundry.main.dataset.xxxx" LIMIT 1000
  2. 使用Foundry内置的dataset()函数:SELECT Column1, Column2 FROM dataset('ri.foundry.main.dataset.xxxx') LIMIT 1000

另外还要确认你的API Token有对应的权限:需要拥有该数据集的查看权限,以及foundry-sql-query这个权限(可以在Foundry的Token管理页面检查权限范围)。

下面是修正后的完整代码:

import requests

foundry_token = "api_token"
foundry_base_url = "https://example.palantirfoundry.com"
dataset_rid = "ri.foundry.main.dataset.xxxx"

def query_foundry_dataset(base_url, token, dataset_rid):
    headers = {
        "Authorization": f'Bearer {token}',
        "Content-Type": 'application/json'
    }

    # 用RID正确引用数据集的SQL语句
    query_payload = {
        "sql": f'SELECT Column1, Column2 FROM "{dataset_rid}" LIMIT 1000'
    }

    # 替换为正确的SQL查询端点
    url = f"{base_url}/api/sql/v1/query"

    response = requests.post(url, headers=headers, json=query_payload)

    if response.status_code == 200:
        return response.json()
    else:
        print(f"Query Failed: {response.status_code}")
        print(response.text)
        return None

result = query_foundry_dataset(
    base_url=foundry_base_url,
    token=foundry_token,
    dataset_rid=dataset_rid
)

print(result)

如果还是遇到问题,可以再检查这几点:

  • 确认你的Foundry实例base_url没有额外的路径后缀(比如不要加/workspace之类的)
  • 如果数据集有多个版本,你可能需要在SQL中用FOR VERSION AS OF语法指定要查询的版本
  • 有些环境下需要启用SQL API的访问权限,可能需要联系Foundry管理员确认

备注:内容来源于stack exchange,提问作者baobobs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 18:39:33