Google Sheet 如何连接元数据库?

How to connect Metabase with Google Sheet?

我有我们公司大量使用的配置数据库的用户名和密码。每天我都要经常下载 CSV,然后将它们导出到 google 表格以进行报告或分析。有什么方法可以将 Metabase 连接到 Google Sheet 以便工作表自动从 Metabase url 中提取 CSV?

您可以尝试使用 Google Apps 脚本编写脚本来解决您的问题。一个想法是使用 UrlFetchApp.fetch() 方法,该方法允许脚本通过请求获取 URL 与其他应用程序通信或访问网络上的其他资源,在您的情况下是元数据库 URL。

以下代码片段可能会让您大致了解下一步要做什么:

function myFunction() {
  var sheet = SpreadsheetApp.getActive().getSheets()[0];

  var data = {
    // the data that you will be using
  };

  var options = {
    'method': 'post',
    'payload': data
  };

  var response = UrlFetchApp.fetch('https://metabase.example.com/api/card/1/query/json', options);

  var responseData = JSON.parse(response.getContentText());

  sheet.appendRow(responseData);
}

它实际上做了什么:它使用元数据库 API 通过 POST 请求获取你想要的数据(使用 POST 请求的原因是因为根据API Documentation for Metabase v0.32.2 它运行与卡片关联的查询,returns 它的结果作为指定格式的文件)。然后使用 .appendRow().

将请求的响应附加到您的 sheet

此外,您可以在此处阅读有关 UrlFetchApp 和 Apps 脚本的更多信息:

  1. Class UrlFetchApp;

  2. Apps Script;

  3. Spreadsheet App.

我已经实现了 Google Sheets add-on as a solution for this and open-sourced it

我在一家大型组织中将此代码用作 Google 表格插件,到目前为止效果很好,每周有数百名用户,运行 数万名查询。

实际效果如下:

如果您不想将其设置为 Google 表格插件的麻烦,您可以使用该脚本并将其改编为简单的 Apps 脚本。

你可以add a Google Sheet as an external table in Google Big Query, then connect Metabase to Google BigQuery.