1 概述
Smartbi 数据模型提供“直连”和“抽取”两种数据加载模式:
- 直连:是指直接连接用户数据库进行数据的读取
- 抽取:则是将表数据抽取到SmartbiMPP数据库中,提升查询效率,计算速度会更快,数据需要定期更新
2 直连和抽取适用场景
2.2.1 什么样的用户适合适用直连模式
- 实时性需求很高的用户:用户进行业务分析实时性要求很高,直连引擎实时取数,最高实现毫秒级数据刷新。
- 数据安全性要求很高的用户:不希望将数据抽取到第三方软件,可使用新直连版本直连自己的数据库。
- 拥有大数据平台的用户:目前很多企业有较为专业的大数据平台,数据质量很高,通过直连引擎取数,可以在保障数据分析性能的同时避免数据资源冗余。
- 数据量比较小,并觉得抽取要更新数据太过麻烦的用户:直连性能要求较 抽取数据 要高一些,这部分用户数据量小所以使用直连不会有性能方面的担忧。使用直连可以不用更新数据,较为方便。
2.2.2 什么样的用户适合抽取模式
- 联合查询:当相关数据存储在不同数据库或文件内的多个表中时,可以使用数据模型的抽取做联合分析
- 非常适用于企业没有独立数仓或数仓负载过重的情况,用抽取模式可以提高性能
3 直连介绍
直连模式是Smartbi引擎查询的默认模式,所有的查询会发送给底层数据库或数仓执行
- 目前数据模型中支持直连的查询有:数据源表、即席查询、SQL查询、存储在指定数据库的日期表,详参:查询并准备数据
- 注意,除了Smartbi JDBC for Excel、MongoDB、Tinysoft、Smartbi jdbc4Olap这个几个数据库,其他数据库均支持直连模式。
- 打开数据模型默认直连模式,如果不手动切换或者不加入不支持直连的查询类型,将会一致保持直连模式;
1、直连时计算依赖原始数据库或数仓,如果底层数据库或数仓的配置低、性能不好等,会导致取数慢、查询奔溃等问题。
2、若在原始数据库对表结构进行更改(进行了列的增减),那么表结构的变化不会立即更新到在数据模型中。需要对模型中的表进行“同步”操作,“同步”新添加进来的字段,详情可查阅:设置及修改查
3、若直连数据仓库,而数据仓库又是通过ETL作业流进行更新同步的,如果作业流没有执行,直连查询的还是原来的数据。
4 抽取介绍
Smartbi数据模型先把源数据抽取到高速缓存库,然后从高速缓存库中取数;
- 目前导入文件、JAVA查询、脚本查询、ETL高级查询、存储过程查询、生成日期表,含有以上私有查询时,必须使用抽取模式;
- 数据源表、即席查询、SQL查询可以选择抽取还是直连。详参:查询并准备数据
4.1 数据抽取类型介绍
数据抽取分为全量抽取、按次抽取两种抽取方式。
4.1.1 全量抽取
每次抽取的时候将表数据全部抽取至MPP数据库,是全量覆盖抽取.
全量覆盖抽取:每次抽取,对数据库的全部数据进行抽取,并覆盖MPP数据库已有的数据,如下图所示:
4.1.1 按次抽取
“按次抽取”是结合用户的登录生成的Session及查询的参数组合进行抽取。
“按次抽取”使用场景:
- 有些客户希望实时数据,但又无法使用直连模式(如数据模型中含有存储过程模型表)或者是参数进行数据过滤情况。
- 数据模型中一部分数据和用户信息密切相关(如权限等),但又不能使用直连模式。