跨越多个不同数据源的交叉查询分析,主要包含以下两种情况:同源异库
、跨源查询
。
同源异库
同源异库是指同一个数据源中的不同数据库,例如 MySQL 中的数据库A
和数据库B
之间的跨库查询。除了 MySQL,Sugar BI 中目前还支持 Presto
数据源中的跨 catalog、schema 的同源异库查询。下面以 MySQL 为例进行说明:
如果您使用 MySQL 数据源创建的数据模型,那么在数据模型编辑时,就可以看到添加同源异库的按钮:
点击上图中「添加同源异库」后,即可选择您要跨库查询的 MySQL 数据库:
如上图添加同源异库sugar_demo
后,数据表的列表中也会列出sugar_demo
中的数据表,如下图:
这时,您就可以拖拽不同数据库中的多个表进行同源异库之间的多表JOIN
交叉建模了,如下图将主库中的car_sale
表和sugar_demo
库中的car_type
表进行的交叉建模:
Presto 的跨 catalog 和 schema
和上面的 MySQL 类似,Presto 支持使用同源异库的方式来跨 catalog、schema 的数据查询,在添加同源异库时,您可以填写相应的 catalog、schema,如下图:
跨源查询
跨源查询是指,多个不同的数据源之间的交叉查询,如一个 MySQL 数据源和一个 Excel 数据源之间的数据交叉分析。目前Sugar BI 中支持跨源查询的数据源类型包括:
- Excel/CSV
- 数据填报的内置数据源
- MySQL
- MariaDB
- SQL Server
- Oracle
- PostgreSQL
下面将按步骤说明如何使用跨源查询功能(私有部署下需要在安装部署时开启跨源查询功能):
1、数据源开启跨源查询
首先需要在数据源管理中,开启对应数据源的跨源查询功能,如下:
如上图对某个数据源「开启跨源查询」后,「跨源状态」会变为 待生效
,目前 Sugar BI 中的生效时间大约需要 24小时
,所以您开启跨源查询后,建议隔天确认一下状态变为 已生效
之后再进行下面的操作步骤。另外,跨源查询肯定是两个或多个数据源之间的跨源查询,所以多个需要跨源查询的数据源,都需要「开启跨源查询」功能。
2、数据模型中添加多个数据源
在数据模型编辑时,可以添加其它的数据源,如下图:
在弹出的数据源选择框中,即可选择添加的数据源:
如上图添加了一个Excel数据
,数据表的列表中也会列出Excel数据
中的数据表,如下图:
这时,您就可以拖拽不同数据源中的多个表进行跨源之间的多表JOIN
交叉建模了,如下图将 MySQL 中的car_sale
表和Excel数据
中的car_type
表进行的交叉建模:
3、跨源查询时的计算字段
Sugar BI 中跨源查询使用的presto
引擎,在跨源查询时如果要使用计算字段,也需要使用presto
对应的 SQL 语法和函数,presto
支持的函数详见:https://prestodb.io/docs/current/functions.html