首页 > 其他分享 >如何调用Metabase开放API

如何调用Metabase开放API

时间:2023-10-23 11:00:58浏览次数:52  
标签:Metabase 调用 api value API key type card

简介:

Metabase是什么?

在传统企业的数据可视化业务中,通常需要从需求到审批,再到安排开发人员和排期,还要开发人员撰写代码最后再做导出。流程繁琐,参与的人员也多,往往需要几天甚至几周的时间! 使用 Metabase 可以大大节省成本,简单易上手,Metabase 把数据分析常用的查询通过一个个易于操作的界面呈现,非常适合不懂SQL的业务人员使用,只需要点几下鼠标,就可以快速得出一个直观的可视化结果。

Metabase 具有如下特性:

  1. 支持的数据源:Postgres、MySQL、Druid、SQL Server、ClickHouse、MongoDB、BigQuery、Oracle、Vertica、Presto、Snowflake、Spark等等;
  2. 人人可用的数据可视化工具,你不需要懂SQL;
  3. 提供了丰富的仪表盘界面,真正颜值在线的工具,支持数据自动刷新;
  4. 支持自定义SQL查询,适合懂SQL的人使用;
  5. 强大的数据透视功能,可以根据数据自动生成仪表板;
  6. 可以进行多表数据的关联分析,并且无需手写SQ

 

 

Metabase快速入门

可快速试用Metabase
开源神器 Metabase,解决数据库的数据可视化难题! - 知乎 (zhihu.com)
Meta提供了开放的API,基本上Metabase页面上能够实现的功能,都可以使用API调通   https://www.metabase.com/docs/latest/api/card https://www.metabase.com/learn/administration/metabase-api https://github.com/orgs/tapdata/projects/2?pane=item&itemId=17413811

 

API使用:

如图所示,Metabase 生成可视化card功能,虽然只能显示当前结果,但是可以用API获取详细数据,每日通过Tapdata同步到某个目标数据库中。可记录周期结果。 以下是调用Card模块接口示例:

postMan文件:

 

      
{
    "info": {
        "_postman_id": "8240e0b3-2fa6-4d00-8933-cccf994125e8",
        "name": "api",
        "schema": "https://schema.getpostman.com/json/collection/v2.0.0/collection.json",
        "_exporter_id": "16923698"
    },
    "item": [
        {
            "name": "TAP_GET_TOKEN session api",
            "protocolProfileBehavior": {
                "disabledSystemHeaders": {}
            },
            "request": {
                "method": "POST",
                "header": [
                    {
                        "key": "Content-Type",
                        "value": "application/json",
                        "disabled": true
                    }
                ],
                "body": {
                    "mode": "raw",
                    "raw": "{\r\n    \"username\": \"{{username}}\", \r\n    \"password\": \"{{password}}\"\r\n\r\n}",
                    "options": {
                        "raw": {
                            "language": "json"
                        }
                    }
                },
                "url": "http://9b2e67c1ed28.c.methodot.com/api/session"
            },
            "response": []
        },
        {
            "name": "TAP_TABLE[allCard](PAGE_NONE)allCard",
            "protocolProfileBehavior": {
                "disableBodyPruning": true
            },
            "request": {
                "method": "GET",
                "header": [
                    {
                        "key": "Content-Type",
                        "value": "application/json",
                        "type": "text"
                    },
                    {
                        "key": "X-Metabase-Session",
                        "value": "{{sessionToken}}",
                        "type": "text"
                    },
                    {
                        "key": "",
                        "value": "",
                        "type": "text"
                    }
                ],
                "body": {
                    "mode": "raw",
                    "raw": ""
                },
                "url": "{{matebaseDomainName}}/api/card"
            },
            "response": []
        },
        {
            "name": "TAP_TABLE[queryExportFormat](PAGE_NONE:data)queryExportFormat",
            "request": {
                "method": "POST",
                "header": [
                    {
                        "key": "X-Metabase-Session",
                        "value": "{{sessionToken}}",
                        "type": "text"
                    },
                    {
                        "key": "Content-Type",
                        "value": "application/json",
                        "type": "text",
                        "disabled": true
                    }
                ],
                "url": {
                    "raw": "{{matebaseDomainName}}/api/card/:card-id/query/:export-format",
                    "host": [
                        "{{matebaseDomainName}}"
                    ],
                    "path": [
                        "api",
                        "card",
                        ":card-id",
                        "query",
                        ":export-format"
                    ],
                    "variable": [
                        {
                            "key": "card-id",
                            "value": "{{card-id}}"
                        },
                        {
                            "key": "export-format",
                            "value": "json"
                        }
                    ]
                }
            },
            "response": []
        }
    ],
    "event": [
        {
            "listen": "prerequest",
            "script": {
                "type": "text/javascript",
                "exec": [
                    ""
                ]
            }
        },
        {
            "listen": "test",
            "script": {
                "type": "text/javascript",
                "exec": [
                    ""
                ]
            }
        }
    ],
    "variable": [
        {
            "key": "username",
            "value": "[email protected]",
            "type": "string"
        },
        {
            "key": "password",
            "value": "-M90q-CrTJX04U",
            "type": "string"
        },
        {
            "key": "matebaseDomainName",
            "value": "http://36.134.131.197:12345",
            "type": "string"
        },
        {
            "key": "sessionToken",
            "value": "5f325571-e1c3-4eeb-b07f-7c269aedb089",
            "type": "string"
        },
        {
            "key": "card-id",
            "value": "",
            "type": "string"
        }
    ]
}

    
  调用API必备参数:username password
  1. 使用username password获得sessionToken

 

 

  1. 通过第一步获得的sessionToken

 

  1. 通过2步得到所有Card的id、name,使用id获得某个Card的详细信息,其中,返回的结果,可选择是json、api、csv等。

 

 

标签:Metabase,调用,api,value,API,key,type,card
From: https://www.cnblogs.com/skeeto/p/17781874.html

相关文章

  • BUG:net::ERR_CONNECTION_REFUSED(前端Vue2、后端FastAPI)
    BUG场景一个前后端分离的项目,前端使用Vue2框架,后端使用FastAPI,前端想要传输图片给后端,使用的相关接口为:'http://10.96.67.161:8081/uploadImg/'后端FastAPI运行的代码为:if__name__=='__main__':uvicorn.run(app="main:app",host="localhost",port=8081,reload=Tr......
  • es RESTfull API
    1.4RESTfullAPI一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。在目前主流的三种Web服务交互方案中,REST相比于SOAP(SimpleObjectAccessprotoco......
  • Python 函数:定义、调用、参数、递归和 Lambda 函数详解
    函数是一段代码块,只有在调用时才会运行。您可以将数据(称为参数)传递给函数。函数可以返回数据作为结果。创建函数在Python中,使用def关键字定义函数:示例defmy_function():print("Hellofromafunction")调用函数要调用函数,请使用函数名称后跟括号:示例defmy_function......
  • QT&TCL1 调用TCL解释器
    TCL作为一种工具语言已经在很多地方得到广泛的应用,在土木方面著名的例子就是ANSYS了。当然作为UCB开发的OpenSees自然也是要用自家的TCL语言了,不过最新的OpenSees源代码中已经增加了对于Python语言的支持。虽然官方尚没有公开Python的使用方式,但是相信应该很快就可以看到使用Python......
  • Python 函数:定义、调用、参数、递归和 Lambda 函数详解
    函数是一段代码块,只有在调用时才会运行。您可以将数据(称为参数)传递给函数。函数可以返回数据作为结果。创建函数在Python中,使用def关键字定义函数:示例defmy_function():print("Hellofromafunction")调用函数要调用函数,请使用函数名称后跟括号:示例defmy_function(......
  • How to fix Fetch API GET request return an opaque response bug All In One
    HowtofixFetchAPIGETrequestreturnanopaqueresponsebugAllInOneStatusCode:302Foundfetch(`https://www.hulu.com/watch/78974b54-1feb-43ce-9a99-1c1e9e5fce3f`,{mode:"no-cors"}).then(function(response){console.log(`response`,r......
  • 11_常用类和基础API
    ......
  • 小白学 Python: 如何在Python中使用ChatGPT API?
    如何在Python中使用ChatGPTAPI?ChatGPT及其必然的应用。日复一日,我们周围的一切似乎都在通过使用不同人工智能和机器学习技术的多个人工智能模型以及使用Python的聊天机器人而变得自动化,聊天GPT的用途及其有用的应用程序之一我们今天将讨论。因此,在讨论其应用程序之前,让我们先......
  • 快速搭建API随心搭,让你的web开发更加高效
    随着互联网的发展,越来越多的应用和服务需要通过API接口来实现。API(ApplicationProgrammingInterface,应用程序编程接口)可以理解为两个软件之间的桥梁,通过API接口,两个软件可以相互交流并进行数据交换。如今,API已经成为许多公司和应用程序的核心,因此快速搭建并管理API接口已成为开......
  • 2023-10-21:用go语言,一共有三个服务A、B、C,网络延时分别为a、b、c 并且一定有:1 <= a <= b
    2023-10-21:用go语言,一共有三个服务A、B、C,网络延时分别为a、b、c并且一定有:1<=a<=b<=c<=10^9但是具体的延时数字丢失了,只有单次调用的时间一次调用不可能重复使用相同的服务,一次调用可能使用了三个服务中的某1个、某2个或者全部3个服务比如一个调用的时间,T=100100的延时......