关于sql:SeaTable-新增-SQL-查询接口让数据分析和查询更方便

44次阅读

共计 2782 个字符,预计需要花费 7 分钟才能阅读完成。

SeaTable 开发者版是一款收费易用、可扩大的数据中台产品。它同时联合了协同表格的易用性和数据库弱小的数据处理能力。从 2.3 版本开始,SeaTable 在数据分析方面又有了一个重大的加强,那就是对 SQL 查问的反对。SQL 查问性能能够通过界面的插件来应用(如下图),也能够通过 API 来拜访。上面来具体介绍 SQL 查问。

SQL 查问语句介绍

SeaTable 中的 SQL 查问语句的语法和 MySQL 是统一的,能不便大家疾速上手。语法如下:

SELECT [DISTINCT] fields FROM table_name [WhereClause] [OrderByClause] [GroupByClause] [Limit Option]

查问后果是以 JSON 的格局进行返回。当然目前还有一些限度,次要是不反对多表查问 join 语句。

特色函数

SeaTable 目前次要的利用场景是对数据进行统计分析。所以它反对一些非凡的的函数,不便对数据做统计:

  • STARTOFWEEK(date, weekStart):返回一个日期所属的星期,不便依照星期来统计。
  • Quarter(date):返回一个日期所属的季度,不便依照季度来统计。
  • ISODate(date):返回一个 ISO 格局的日期,如: “2020-09-08″,不便依照天来统计。
  • ISOMonth(date):返回 ISO 格局的月份,如 “07”,不便依照月份来统计。

举一个例子,如果咱们有一个表记录了订单流水,咱们要统计每天的销售额,只须要用以下的查问语句:

select sum(sale) from SalesRecord group by ISODate(SalesTime)

如果咱们想要失去以下统计图须要的数据,也能够用 SQL 语句来轻松失去:

怎么应用查问接口

SeaTable 提供了三种办法,不便你在任何中央通过网络来查问数据,包含:

  • Rest
  • APIPython
  • APISQL 查问插件

Rest API

应用 Rest API 非常简单,你不必再调配和治理用户名、明码,只须要调配一个 API token 就能够。通过网页界面就能够生成一个表格的 API token:

用这个 API token 再获取一个长期的秘钥,而后拜访上面的接口就能够了

POST https://dtable-db.seatable.cn/api/v1/query/<dtable-uuid>

一个例子

curl -X POST \
  https://dtable-db.seatable.cn/api/v1/query/4c4ef1ee-86cf-4a53-bd02-2cb7b1662a11/ \
  -H 'Authorization: Token eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MzAyOTA3NjMsImR0YWJsZV91dWlkIjoiNGM0ZWYxZWUtODZjZi00YTUzLWJkMDItMmNiN2IxNjYyYTExIiwidXNlcm5hbWUiOiJqaXdlaS5yYW5Ac2VhZmlsZS5jb20iLCJpZF9pbl9vcmciOiJXLTAwMDI2IiwicGVybWlzc2lvbiI6InJ3In0.KG5WQEduNsC8-k61oAcby7bhF6seVXrjnG7rGLsHQds' \
  -H 'Content-Type: application/json' \
  -d '{"sql":"select * from Table2 limit 1"}'

返回的后果

{
    "metadata": [{
        "key": "0000",
        "name": "名称",
        "type": "text",
        "data": null
    }, ...
    ],
    "results": [{
        "0000": "fdddf",
        "_creator": "jiwei.ran@seafile.com",
        "_ctime": "2021-07-14T09:10:35.225Z",
        "_id": "JkVwFfWMQ7Sfno1VAxHv8w",
        "_last_modifier": "jiwei.ran@seafile.com",
        "_mtime": "2021-07-23T01:44:32.507Z",
        "_participants": [],
        "qi70": "711776",
        "wcls": "sdf"
    }],
    "success": true
}

Python SDK

下面的 Rest API 曾经在 Python SDK 中做了包装,能够不便的调用;

base.query('select name, price, year from Bill')
base.query('select name, sum(price) from Bill group by name')

别离返回:

[{'_id': 'PzBiZklNTGiGJS-4c0_VLw', 'name': 'Bob', 'price': 300, 'year': 2019},
    {'_id': 'Ep7odyv1QC2vDQR2raMvSA', 'name': 'Bob', 'price': 300, 'year': 2021},
    {'_id': 'f1x3X_8uTtSDUe9D60VlYQ', 'name': 'Tom', 'price': 100, 'year': 2019},
    {'_id': 'NxeaB5pDRFKOItUs_Ugxug', 'name': 'Tom', 'price': 100, 'year': 2020},
    {'_id': 'W0BrjGQpSES9nfSytvXgMA', 'name': 'Tom', 'price': 200, 'year': 2021},
    {'_id': 'EvwCWtX3RmKYKHQO9w2kLg', 'name': 'Jane', 'price': 200, 'year': 2020},
    {'_id': 'BTiIGSTgR06UhPLhejFctA', 'name': 'Jane', 'price': 200, 'year': 2021}
]

[{'SUM(price)': 600, 'name': 'Bob'},
    {'SUM(price)': 400, 'name': 'Tom'},
    {'SUM(price)': 400, 'name': 'Jane'}
]

SQL 查问插件

SeaTable 提供了 SQL 查问插件,用户能够在 UI 层面上间接查问,这样在开发的时候就能够不便地对 SQL 语句做调试。

查问后果会间接以 SeaTable 表格的形式出现:

总结

以上,咱们理解了 SeaTable 的“SQL 查问”的性能及应用,它使得外部剖析数据、内部用户查问数据都变得更加不便。当然,这只是其中一个性能。SeaTable 开发者版作为一款收费、易用、可扩大的企业数据中台产品,具备协同表格的易用性和数据库弱小的数据处理能力,从数据的收集、存储、自动化解决,到可视化、高级统计分析、合作管控等方面都提供了十分好用的性能。

正文完
 0