在日常工作中,很多客户都遇到过这样的困扰:就像家里有两个不同的大仓库,一个仓库(MySQL)里存放着客户的订单信息,另一个仓库(Oracle)里存放着客户的会员等级信息。现在想要知道每个会员等级对应的订单总金额,这就需要从两个仓库里分别拿出数据,再把它们拼到一起分析,这就是我们常说的跨库取数。接下来,我通过几个常见场景,带你轻松搞懂跨库取数的实现方法。
数据是在同一个数据库,不同的catalog中
1、V11已经支持多catalog,比如MySQL,连接数据库时只指定了某个catalog,在数据库表管理,可以加入其他catalog的数据:
加入其他的catalog表中,显示的也是在同一个库中:
2、在数据模型中,可以直接加入多catalog中的表:
这种方式不需要抽取,可直连。
比如:一个(MySQL)里存放着客户的订单信息,另一个仓库(Oracle)里存放着客户的会员等级信息
1、创建数据模型,加入不同数据库中的:
2、通过抽取,多个库的表或者查询都能正常关联关系:
3、保存数据模型并抽取,可基于该报表创建可视化报表查询。
注意:使用数据模型的其他查询,比如SQL查询、可视化SQL查询等都可以实现上面的效果。
1、在数据模型中创建”ETL高级查询“:
2、在"ETL高级查询"中通过拖拽数据源节点,选择不同的数据库,实现关联查询,如下图:
注意:如果需要俩个表之间固定关联关系,比如一定要inner join,可以通过ETL高级查询实现,并且在ETL高级查询,还可以实现各种数据处理,比如转换、过滤、元数据处理等,最终输出大宽表。
1、创建自助ETL,具体可查看:自助ETL操作
2、通过自助ETL关联查询,并把大宽表落到目标表中:
2、创建模型,并基于大宽表建模,如下图,还可以与其他维表进行关联: