是否可以通过RESTAPI从元数据库MBQL/SQL查询中获取原始数据?
是否存在接受MBQL/SQL查询并返回原始数据的Metabase REST API 我可以在两步流程中通过API执行MBQL查询,即通过Metabase web app UI创建问题,然后查询问题,但我还没有想到如何在一个步骤中将MBQL与REST API结合起来 我希望通过在API请求中使用MBQL而不是UI生成的问题来完成以下几项:是否可以通过RESTAPI从元数据库MBQL/SQL查询中获取原始数据?,sql,rest,metabase,Sql,Rest,Metabase,是否存在接受MBQL/SQL查询并返回原始数据的Metabase REST API 我可以在两步流程中通过API执行MBQL查询,即通过Metabase web app UI创建问题,然后查询问题,但我还没有想到如何在一个步骤中将MBQL与REST API结合起来 我希望通过在API请求中使用MBQL而不是UI生成的问题来完成以下几项: 更好的版本管理,因为MBQL查询可以通过代码检入源代码管理 更好的隔离,因为API调用不会依赖于可以更改的问题 以下是有关如何执行两步流程的一些信息 二步法 这
:问题id
是一个整数
- Web UI端点:
GET/question/:问题id
- API端点:
POST/API/card/:card id/query/:导出格式
是Web UI URL中的:卡id
:问题id
:导出格式可以是
或其他格式json
有没有一种方法可以通过一步发送API请求中的MBQL/SQL查询来直接执行此操作,而不需要预先存在问题/卡片?通过原始SQL查询和MBQL都可以通过
POST/API/dataset/
API使用。端点的文档提到了查询
请求定义,但没有对其进行定义
最后,我在Metabase话语论坛上做了更多的研究和提问。以下示例由发布
原始SQL查询
我能够使用SDK成功地进行本机SQL查询,以发出以下请求:
POST /api/dataset
Content-Type: application/json
X-Metabase-Session: <sessionId>
{
"database": 1,
"native": {
"query": "SELECT COUNT(*) FROM orders"
},
type: "native"
}
注:
X-Metabase-Session
请参阅如果你分享你如何做第二部分,你的问题将对其他人更有帮助。谢谢你的反馈。我已经更新了这个问题,介绍了如何使用两步方法实现这一点,以及为什么我更喜欢使用一步方法。非常感谢!我在想我必须使用
GET/api/embed/card/:token/query
端点,并且很难确定从何处获取令牌。非常感谢!顺便问一下,你试过这个吗?它被描述为创建一张新卡,所以您可能可以通过两个步骤来完成,但都是通过api完成的。感谢@YakovL的注释。这确实是一种自动创建卡片的方法,值得注意,因此我将其添加到上面的主要问题中。在某些情况下,这可能是一个不错的选择。就我的特殊情况而言,使用信用卡没有任何好处,因此基于上述原因,我希望避免使用信用卡。
POST /api/dataset
Content-Type: application/json
X-Metabase-Session: <sessionId>
{
"database": 1,
"type": "query",
"query": {
"source-table": 2,
"breakout": [
[
"binning-strategy", ["field-id", 14], "default"
]
],
"aggregation": [["avg", ["field-id", 17]]]
}
}