1. 概述
视频学习请点击:添加基础数据表
SQL 数据集属于基础表,基础表概念请参见:基础表
1.1 版本
FineBI 版本 | JAR 包 |
---|---|
5.1 | 2020-01-15 |
1.2 应用场景
用户可以通过简单的 SQL 语句对数据库中的表处理后再添加到 FineBI 中。
注:添加 SQL 数据集不能创建新的数据表,也不能修改表结构,仅支持将已有数据库中的表通过 SQL 语句取数至 BI 。
1.3 适用人群
数据处理用户
2. 操作步骤
2.1 进入业务包
登录 FineBI ,在数据准备节点下选择一个业务包,如下图所示:
2.2 进入 SQL 编辑界面
1)在业务包配置页面,点击添加表,选择 SQL 数据集。如下图所示:
2)进入 SQL 数据集编辑页面进行 SQL 语句、数据表名等的编辑。如下图所示:
注1:添加 SQL 数据集时,输入的 SQL 语句中不能带分号,否则若在字段设置处修改了字段类型,会导致数据集更新失败。
注2:添加成功的 SQL 数据集若不选择开启 实时数据 ,需要进行 数据更新 才能使用,如创建自助数据集、创建组件等。
2.3 创建普通 SQL 数据集
1)选择数据来源的数据连接为 BI Demo,输入 SQL 语句:select * from DEMO_CONTRACT,在输入 SQL 语句的时候 FineBI 支持 SQL 语句关键词提示。点击右侧的预览按钮,即可出现获取到的「DEMO_CONTRACT」数据表,修改表名为合同表,如下图所示:
注:此时点击预览,会向数据库发送全部 SQL 数据的请求。用户需要使用对应数据库适配的 SQL 查询语句。
2)数据表配置完成后点击「确定」,业务包中即出现刚刚添加的 SQL 数据集。抽取状态下需要点击「更新数据」,然后在数据预览中预览,如下图所示:
注:数据准备界面的数据预览则默认显示 5000 行结果,此条数仅仅是在保存后预览界面的显示数据量,在制作仪表板后使用全部数据。
注:被 BI 识别成日期类型的字段都会自动补全「年月日时分秒」,展示成 yyyy-MM-dd HH:mm:ss (示例:2020-10-15 00:00:00 )
2.4 创建带参数的 SQL 数据集
2.4.1 创建文本类型参数的 SQL 数据集
1)选择数据来源的数据连接为BI Demo ,输入带参数的 SQL 语句:select * from new_dian where 店性质 in ('${店性质}'),在参数设置栏中点击刷新按钮获取参数,获取的参数默认值默认为 1 ,如下图所示:
2)可将参数默认值修改为「自有店」,并点击预览数据,如下图所示:
注:参数的详细命名规则可参见 参数命名规则
注:所有获取的参数初始的参数类型均为文本,默认值均为 1,需要手动修改。
2.4.2 创建日期类型参数的 SQL 数据集
1)若参数类型为日期参数,也可通过修改默认值来取需要的数据。如下图所示:
2)同时可以通过日期面板设置为动态默认值,初始默认值为当前日期。
比如设置参数的动态默认值为 10 天前,在参数类型选择日期后,单击默认值的日期面板,选择动态时间,并设置为相对当前时间的 10 天前,如下图所示:
则该「今天」参数名在使用时的默认值即为当前时间的 10 天前。
注:该日期类参数设置动态默认值的功能,需 2019-01-15 之后的 FineBI5.1 版本支持。
3)参数默认值可以设置为空,配合 if 函数或<parameter>实现参数为空时选择所有值的效果,详情可参见 参数为空选择所有值(实时数据) 。SQL 数据集支持添加参数后传递使用,详情使用介绍请参见 URL参数的传递使用(实时数据) 。
2.5 修改 SQL 数据集
SQL 数据集在添加完成后,点击基础表编辑界面的右上角修改 SQL 按钮,点击可进行 SQL 语句的修改。如下图所示:
注:添加基础表后可进行基础表的编辑操作,详情参见:编辑基础表
3. 支持调用存储过程的数据库
注1:存储过程仅对抽取数据有效,不支持直连数据库使用存储过程。
注2:Oracle数据库没有查询可用的语句,所以在FineBI中,该数据库不支持存储过程。
3.1 存储过程简介
「存储过程」就是存储在数据库中的一组 SQL 语句集。FineBI 在添加 SQL 数据集时,支持调用数据库中的存储过程,从而获得执行了存储过程 SQL 语句集后的表。
什么样的数据库能调用存储过程:可以使用 JDBC 方式连接,并可以通过 JDBC 执行 SQL 语句调用存储过程的数据库。
用户可以使用自检工具,按照 数据库连接失败排查步骤 2.3 节执行,在要查询的 SQL 语句后输入调用存储过程的语句,如果执行成功,即表明可以在 FineBI 调用存储过程。
3.2 调用示例
每种数据库的调用语句不同,针对不同类型的数据库使用对应的存储过程调用语句即可。
3.2.1 MySQL 数据库调用存储过程
在 SQL 语句框中输入call + 存储过程名(),点击「预览」查看调用结果,点击「确定」即可保存该数据集。
若存储过程中有参数,调用方式如下:
使用参数默认值:直接输入call+存储过程名() 调用,例如 call test1()
不使用默认值,传入参数值:call+存储过程名('参数值1','参数值2') ,例如 call test('a','100')
3.2.2 SQL Server 数据库调用存储过程
在 SQL 语句框中输入execute+存储过程名,点击「预览」查看调用结果,点击「确定」即可保存该数据集。
若存储过程中有参数,调用方式如下:
使用参数默认值:直接输入 execute+存储过程名 调用,例如 execute StuCouIN
不使用默认值,传入参数值:execute+存储过程名 '参数值1','参数值2' ,例如 execute StuCouIN '7001','2'
4. 注意事项
4.1 添加数据库视图
有时用户需要在 BI 中添加数据库视图,可以通过添加 SQL 数据集的方式实现。例如 MySQL 数据库中存在视图,可创建 SQL 数据集取数到 BI ,如下图所示:
也可进入管理系统>数据连接>数据连接管理,重新连接数据库并保存,即可通过 添加数据库表 添加视图。