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 开发者版作为一款收费、易用、可扩大的企业数据中台产品,具备协同表格的易用性和数据库弱小的数据处理能力,从数据的收集、存储、自动化解决,到可视化、高级统计分析、合作管控等方面都提供了十分好用的性能。