Power BI 系列 - DAX Studio 工具监控POWER BI,以及数据导出以及浅谈Vertipaq engine - 1

时间:2024-02-15 19:30:51

下载安装 :

1.地址网址: https://daxstudio.org/ 

  目前版本: https://github.com/DaxStudio/DaxStudio/releases/download/2.9.4/DaxStudio_2_9_4_setup.exe

2. 下载安装包进行安装,注意选中 Excel Addin

 

 

 

 3.安装完成以后, 需要在EXCEL 中进行加载, 在excel 菜单栏,选择文件,然后再选择加载项,在管理中选择"COM加载项" 单点"转到"  然后选中DAX Studio Excel Add-in .最后在电子表格菜单栏就出现DAX Studio.

 

 

 

 

为什么选择中 excel add-in  因为excel也有使用POWER Pivot , 也就是使用到 "Vertipaq engine"  列存储运擎,   

安装完毕,点击DAX Studio 运行.

案例1 POWER BI 模型中各个表大小,及哪些列比较大小

1.创建表,通过自定义表达式的方式创建表,而不是连接数据源,  选择"建模"  然后单击 新表,             

          表1 日期及月分表, 总10万条记录 , 

           表2 共万10条记录 , 字段密度比较大,只有 0,1,2,3 

 

 

 

 

 

DAX表达式     

表 = SELECTCOLUMNS(  GENERATESERIES(1,100000,1),"日期",DATE(1980,1,1)+ [Value],"年份", YEAR(DATE(1980,1,1)+ [Value] ))

表 2 = SELECTCOLUMNS(  GENERATESERIES(1,100000,1),"数字",MOD( [Value] ,4))

 

2.打开DAX Studio ,连接POWER BI 选择PBI/SSDT Model , 然后选择打开 的POWER BI文件, 注意  POWER BI 文件一定要打开状态,不然找不到对应模型

 通过DMV过滤掉 不相关的表,   简单的来说. 数据是列存储的, 它会数据转成字典来存储, 如果字典多的话,就会有分段,  下面通过 dictionary_size 来过滤,

输入下面语句点一下 "RUN" 执行 

SELECT dimension_name, attribute_name, DataType,(dictionary_size/1024) AS dictionary_size ,dictionary_size as d
FROM $system.DISCOVER_STORAGE_TABLE_COLUMNS 
WHERE dictionary_size > 0
 and (dimension_name = \'表 2\' or dimension_name = \'表\')

 

 

 可以看出,同样10万条记录 ,日期占用了5M,  而数字也是10条记录,只占了1K多. 所以POWER BI 大小会字段密度有关.  同时加载内存内存开销就大了. 下一节会讲如何查看内存开销.

 

案例2 如何导出全部数据

1.可以通过POWER BI 可视化 导出数据, 试一下. 在... 中,点击,添出点导出   ,导出会出现限制,  当前我的版本 CSV是 3万行,可能后续版本会提高些

  

 

 

 

3. 如何解决需要导出数据,   通过DAX Studio 查询DAX语句把结果输入电子表格 具体操作如下:

       3.1 打开电子表格 在加载中找到DAX Stuio 单击, 注意是在EXCEL中打开

     

 

 

 

3.2 同样连接当前打开的POWE BI文件 如案例1 第2点截图

3.3把OUTPUT 选择 EXCEL 

 

 

 

 

 

 

3.4 写上DAX 语句,并且执行

EVALUAT
\'表\'

 

 

 

 点执行后,就可以把数据写到电子表格上了. 下面我们可以数据全部10万条加载到电子表格了

 

 

 

 

 结论 

        power bi ,tabular, Excel power pivot 使用 都是 "Vertipaq engine\'  它会把数据先地行转码, 例如 红色 ,用1 表示. 然后用 1  作字典,    例如1 对应红色, 它出现多少次. 从开始到哪结束.   等. 所以数据基数 distinct 的值越少 ,数据就少. 它不是根据行的多少来确定大小的.  并且如果在powe bi 导出数据可以借用DAX  Studio.

       下载地址  https://github.com/zengxinwen/PowerBI/tree/master/6_DAX%20Studio