-
忘记你 初学数据Lv2
发表于2019-6-26 11:13
楼主
本帖最后由 忘记你 于 2019-6-26 11:22 编辑
跨库分析顾名思义,就是跨数据库进行数据的联合查询分析。
跨库分析一般做法是:新建多个数据链路,通过sql语句访问不同数据库下的数据;或者通过ETL工具,将不同数据库下的数据库表整合到一个数据库下进行查询。
今天,在这里分享一个极速跨库分析的方法。在亿信ABI一站式数据处理分析平台中,只需要简单的两步,就能完成跨数据库的查询分析。
亿信ABI跨库分析做法详解
这里用两张表做一个简单的示例。两张表分别存放在下面两个不同数据库的连接池中。Oracle数据库中存放汽车销量表(QC_XL),Mysql数据库中存放一张汽车价格表(QC_JG)。
第一步:建立SQL主题表
在数据集中主题表列表界面,点击“新建主题表”,选择SQL语句方式创建主题表。
SQL主题表新建界面,首先选择数据库表所在的数据库连接池,这里选择oracle连接池,然后在sql查询语句处,输入要查询的sql语句。点击右上角的“测试”可以看到sql语句查询的结果集。
下一步之后,在字段属性界面,可以编辑主题表字段的别名、标题、对应维表等。
下一步,设置SQL主题表的特殊属性。
最后设置SQL主题表的标题、名称、缓存时间以及缓存类型等。缓存类型决定了缓存数据存储的位置,缓存时间决定了缓存数据被储存的时间。
缓存类型规则
选择为内存时,系统会将原表数据根据sql生成结果缓存到内存中。
选择为数据库时,会将结果集缓存到系统库中。
选择为不缓存时,则直接访问不同数据库下原始数据库表的数据。
所以,要想实现跨库分析,那么联合分析的所有SQL主题表的缓存类型都要选择内存或者数据库。
缓存时间规则
第一次访问数据后,在缓存时间之内,再次访问数据,得到的是已经缓存的数据。超过缓存时间时,缓存数据在内存或系统库中会被自动清除。如果再访问数据,则重新将原始数据表的数据缓存过来。
所以,设置合适的缓存时间,有助于我们及时获取最新数据。
确定保存后,一张SQL主题表就建好了,同理,我们再根据Mysql库的汽车价格表创建另一个SQL主题。
第二步:建立关联关系
在主题集属性的表关联关系中,新建关联关系。
给之前建立的两个SQL主题表创建关联关系。这里用USERID字段作为连接,连接方式为内连接。
如此一来,就已经可以对它们进行关联查询了。这里简单地使用亿信ABI报表分析做一个联合查询的例子,例如:查询某年各月份的汽车销量及销售价格。
亿信ABI中的这种跨库分析手段,本质上,是通过创建SQL主题表将不同数据库下表的数据缓存到内存或系统库下进行分析展示。不需要编写复杂的sql语句,不需要使用ETL工具,简单的两步就能轻松实现跨库分析。
如此简单快捷的方式,还犹豫什么,赶紧用起来吧!
5个回答
同一个主题集下面的不同跨库主题表(连接池)不一样,建立关联关系后,就可以在一张报表里面进行分析了?(我试了,不可以啊)
-
ESENSOFT官方技术支持 管理员
5#
sgg 发表于 2020-3-7 19:25
辰哥,我试了,怎么不行啊?
您好,您需要再仔细再看看帖子哦,需要将两张不同库表通过sql主题表缓存到系统库,只做一张表是无法跨库分析哦!
ESENSOFT官方技术支持 发表于 2020-3-9 16:06
您好,您需要再仔细再看看帖子哦,需要将两张不同库表通过sql主题表缓存到系统库,只做一张表是无法跨库 ...
报表内关联1张SQL主题表、1张物理主题表的话,是不是只能选择SQL主题表为不缓存模式?缓存的话都会报“表或视图不存在”错误