页面树结构
转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

« 前一个 版本 12 下一个 »

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 全量抽取

全量抽取模式,

1、如果使用参数进行权限控制,比如华南区域的员工只能查看华南的数据,华北区域员工只能查看华北的数据,那么抽取的时候需要使用管理员的账号进行抽取; 详情可查阅计划任务

2、如果模型的查询是数据源表,并且在源表设置了行权限,全量抽取不会继承源表设置的行权限,需要重新在模型上设置行权限;详参:行权限设置

3、如果模型使用了参数进行数据过滤或者权限控制,在报表层,切换参数无法过滤到数据非默认值的数据,详参:参数管理

每次抽取的时候将表数据全部抽取至MPP数据库,是全量覆盖抽取.

全量覆盖抽取:每次抽取,对数据库的全部数据进行抽取,并覆盖MPP数据库已有的数据,如下图所示:


4.1.2 按次抽取

如果模型里面的查询是数据源表,并且在源表设置了行权限,按次抽取会继承源表设置的行权限; 详参:行权限设置


“按次抽取”是结合用户的登录生成的Session及查询的参数组合进行抽取。

“按次抽取”使用场景:

  • 有些客户希望实时数据,但又无法使用直连模式(如数据模型中含有存储过程模型表)或者是参数进行数据过滤情况。
  • 动态切换参数取数:比如用户查询数据量很大,并且在报表层无法直接使用字段作为筛选器,需要对参数进行加工处理

下面以产品自带的Northwind数据库的northwind_sp_getProductInfo存储过程“根据产品类别动态获取产品信息”为例说明按次抽取的原理:

在数据模型下建模型并把存储过程加入到模型中,并在【参数管理】中映射参数,以及填写默认值和备选值,如下图:

去建仪表盘,并把参数拖入,切换参数,可以根据参数显示数据:

4.1.3 抽取设置

抽取的整体逻辑简单介绍:

  • 先把数据模型每个查询的数据写入到CSV文件
  • 再把CSV文件写入到MPP对应的临时表中
  • 等把所有的查询都数据“拷贝”到MPP中后,再把MPP中每个查询的数据导入到大宽表中(根据模型基数关系生成的大宽表);如果其中一个查询“导入”数据失败,抽取就算失败。


Smartbi数据模型的手工抽取类型有:抽取并建宽表、单个查询的抽取、更新宽表

  • 抽取并建宽表:适用于手动抽取的任意场景下,比如模型的某个字段数据类型改了,别名改了,关系修改了,增加了某个字段等等,点击“抽取并建宽表”都会把整个模型的查询全部重抽并重新生成大宽表。
  • 单个查询的抽取:
    1. 如果模型从来没有抽取过,你点单个查询的抽取,模型仍会运行【抽取并建宽表】的逻辑,因为这时只抽单个查询没有意义,在报表层会报错。
    2. 如果模型的某个查询变动过,比如修改了基数关系或者增加了字段等,你选中其中一个查询进行抽取,也会把已修改的所有查询给抽了,并且更新大宽表。
    3. 如果你很明确只是修改了这个查询,比如只针对这个查询更改了字段别名,那么就可以直接重新抽取这个查询的数并更新大宽表。
  • 更新宽表:如果模型里面的所有查询都没有任何调整,只是查询的数据改变了,那么可以直接用更新宽表的方式减少抽取时间。

  • 抽取参数值:
    • 默认值:如果在参数管理映射了查询的参数,那么默认值以参数管理的为准;
    • 自定义: 如果想快速的更改参数默认值,可以直接在自定义默认值,抽取的是会以自定义的默认值进行抽取,并且不会同步到参数管理的默认值。


4.1.4 抽取计划

设置好查询的抽取方式以及抽取参数值,如果想定时更新模型数据,那么可以适用计划任务进行抽取, 详参:计划任务

模型的抽取计划入口:

点击进入抽取计划界面:


4.1.5 抽取日志

用户查看抽取日志:

  • 可以更好的判断模型是否已经抽取成功
  • 如果模型抽取失败可以在抽取日志中查看抽取失败的原因

入口:

点击进入抽取日志界面:

  • 默认根据显示屏大小,展示一屏的的抽取日志,滚动可以加载更多;
  • 如果模型其中一个查询抽取失败,则整个模型的状态是失败的;如果失败了,可以在“抽取失败信息”列下载日志信息
  • 抽取时间:由于抽取是异步进行,相加每个查询的时间计算出来的时间不会等于“模型(大宽表)“的抽取时间,最终是以为“模型(大宽表)“的抽取时间为准。



  • 无标签