在过往Excel催化剂定位的轻量级Excel PowerBIDesktop的解决方案中,已经做过了近乎完美的PowerBIDesktop数据模型数据导出到Excel工作表的应用,这也是个人版数据应用的重要的刚需功能,由Excel催化剂免费奉献给PowerBI社区作完结。此篇再次带领大家进入高地,企业级的应用场景,绝对地蕴含巨大商业价值。
其他相关文章
第3波-与PowerbiDesktop互通互联 第5波-使用DAX查询从PowerbiDeskTop中获取数据源 第6波-导出PowerbiDesktop模型数据字典
背景介绍
在企业级的BI数据解决方案中,让分析服务数据模型里的数据重新回流到关系型数据库,供其他数据分析、应用程序所消费。这个需求Excel催化剂早有解决方案。只是一直等待着真正项目上的需要时可大招拳脚。
最近在无意中查看国外Azure Analysis Services的资料过程中,发现了Sqlserver一大绝妙方式,直接通过T-SQL,一键零代码开发成本即可完成DAX数据查询结果直接生成到Sqlserver数据库内存储,大快人心。
为表示对社区的前辈的感激之情,不敢独占,再次拿出给广大数据领域爱好者,特别是微软系的技术拥戴者,让社区因分享更美好。
众所周知,微软这样的重量级企业,是制作标准的娇娇者,花大量精力去开发各种数据接口,让数据的获取更轻松、门槛更低,特别是自身微软系的产品,更是无缝连接,所以分析服务Analysis Service,同样属于微软系,同样是Sqlserver的组成部分,所以,就有了下文的可能,直接通过T-SQL,即可完成读取分析服务的数据源(分析服务可扩展为PowerBIDesktop、Azure Analysis Service等,用的原理一样)。
实现方式
说重点来了,Sqlserver的T-SQL,提供了一些函数,可以读取外部的异构数据,如Excel文件、csv文件、Oracle数据库、MySQL数据库等。
这些函数如:OPENDATASOURCE OPENQUERY OPENROWSET OPENXML,具体有兴趣可详细查看文档说明,今天用到的是OPENQUERY 函数。
使用此函数,可以在构建好链接服务器的情况下,通过此函数,直接发出不同数据库要求的SQL语句进行查询,最终返回了查询数据到Sqlserver的会话中,再加个Select * Into 新表名 ,查询出来的数据就可以直接写到数据库表中。
关键要素
构建SSAS分析服务的链接服务器,通过以下命令完成,微软一贯的优秀之作,直接界面配置完成,人人都能掌握。
新建链接服务器 选择Oledb provider for Analysis Services提供程序,数据源根据服务器地址自行设置,目录为分析服务数据库,链接服务器名自行随意取名。
主要参数
按自身的情况选择当前上下文还是直接输入用户、密码,此为Windows 活动目录的AD用户,SSAS只认AD帐号体系,对应的Azure的是AAD帐号。
登录用户信息 见证奇迹的时候到了,完美使用了DAX查询,返回了数据结果到Sqlserver的当前会话上。
取查询结果
再次让PowerBI群体嗨一下,PowerBIDesktop的数据模型,一样能行。了解过Excel催化剂连接PowerBIDesktop的原理的朋友们,一定不陌生,PowerBIDesktop本质上在本地开启了SSAS服务,只是此服务需要带上一个变动的端口号才能访问正确当次打开的Pbix文件。
用个大家喜爱的方法,获取端口号吧,用DAXSTUDIO,可以轻松获得端口号(当然喜欢用Excel催化剂获得,也是很容易的事)
DAXSTUDIO获取端口号
Excel催化剂获取端口号 跟着微软爸爸走,永远不吃亏,这次来个T-SQL执行大法,连界面都不用填,直接用生成过的链接服务器,自动生成T-SQL语句,小改一下即可完成。
T-SQL法生成链接服务器
直接读取pbix文件模型成功
DAXSTUDIO读取效果
Excel催化剂读取效果
结语
好东西越分享越香,Excel催化剂从来不吝啬自己从其他渠道所学习到的有用知识,特别是一些同样是社区里的热心人士所分享的,尽自己微博之力,再加工后,若有自己的一些独特见解就更好,再次给大家二次分享。
有实力,不怕被超越,也欢迎后浪推前浪,让技术社区更加兴旺,让技术造福世界。希望此篇的分享能够带给大家一些思路启发和应用场景的拓展。
至于如何交互式地生成动态DAX查询,这个就需要一些简单二次开发的过程,自动化永远是有代价的,有时为了一些自动化的效果,花上一些代价也是值得,欢迎有企业需求的可以对接笔者,一起造就双赢的美好局面。
Excel催化剂将在接下来的日子里,更多分享高阶的数据应用技术如PowerBI/Sqlserver/Azure等领域,欢迎继续关注。