分析

电源查询-介绍

Istock 1267191201

背景

在21世纪,数据是任何企业最宝贵、最关键的资产。为了将这些数据转化为知识,需要对数据应用分析过程。每一级管理都需要对数据进行分析,但其背景各不相同。以前的数据分析主要是由企业ERP本身使用编程语言和SQL查询完成的。但这种方法需要技术知识。因此,这就产生了对技术含量较低的数据分析脚本语言的需求,这对于没有技术背景的人来说很容易学习。更多地关注数据转换以获得快速结果。

电源查询思想

Power Query是微软针对上述行业需求的解决方案。Power Query的核心是Mashup引擎具有ETL (提取- >转换- >加载).Mashup引擎有自己的脚本术语M语言脚本。它是基于GUI的工具,具有自动生成转换脚本的能力。大部分的转换可以通过可用的工具栏完成。只有少数场景需要通过编辑器窗口手动调整M脚本。

概览

功率查询ETL图

图片中使用的所有图标都是为了教育目的1)微软公司和Salesforce.com对图片中使用的各自产品图标保留独家所有权2)开源图标的信誉icons8.com

提取

Power Query支持从大量数据源(大约75个以上)提取数据。目前存在一些ETL解决方案,它们支持从如此多的数据源查询数据。因此,一些流行的来源逻辑分类如下

  • 数据库(如SQL Server, MySQL, PostgreSQL, Oracle Server, IBM DB2等)
  • 文件(Excel, CSV, PDF, JSON, XML等)
  • ERP / CRM (Salesforce, Dynamics 365, Quickbooks, Zoho等)
  • 大数据(如Azure Bricks, Parquet, Apache Spark, Hadoop等)
  • 外部脚本(Python, R脚本)
  • 社交媒体和在线消息(链接销售,谷歌分析等)
  • Misc (Web, ODBC, Sharepoint, OData等)

电源查询数据来源

变换

变换或数据整形是M引擎的关键任务。M引擎库有很多函数(大约250多个),这些函数已经根据其类型进行了逻辑分类。函数遵循category_name的语法。function_name与。net库风格类似。将每一步的转换结果存入变量中,然后由下一步以线性方式引用该变量。它允许用户既基于GUI的界面(对于基本用户)和原始编辑器窗口(对于高级用户)编写M代码进行转换。

电源查询截图

负载

转换后的Power Query的最后一个作用是将输出返回给为ETL服务调用Power Query的主要服务/软件。下面是目前Microsoft使用Power Query引擎的一些比较流行的服务/产品:

  • 权力BI:Power BI是一个支持DAX查询的数据分析和可视化工具。但它的模型中的基本数据来自Power Query,这是它不可或缺的一部分。

  • 擅长:Power Query作为Excel 2010/2013的扩展发布。但随着使用的增加,微软将其嵌入到excel中以方便使用。Excel中用于功率查询的数据源连接器数量有限。

  • 权力的应用:Power Apps也通过数据流支持基于Power Query的ETL,可以自动调度。它用于方便地在Dataverse或公共数据服务中插入/更新数据。

  • Azure数据工厂:Data Factory是Azure产品的ETL工具。它也支持Power Query作为其任务的转换工具之一。

优点

  1. 嵌入式/插拔模块:Power Query不是作为一个独立的软件分发的,而是作为一个插件嵌入到主解决方案中。与Excel 2010/2013一样,Power Query作为一个可选的Excel扩展进行分发。从Office 2016年开始,微软将其嵌入到Excel中。Azure数据工厂本身就是一个ETL解决方案。但它也包含电源查询插入其中,以进行转换。

  2. 逐步转换/结果评估:在现实生活中,我们将任何长或复杂的任务分解为多个更小的可划分的任务,以便于管理解决方案和万无一失的结果。Power Query也遵循相同的规则。每个转换操作都被视为一个步骤,显示该步骤的结果后处理以进行评估。

  3. 与源无关的转换:在ETL中,数据可以来自不同的来源。因此,来自两个不同来源的数据在结构上很有可能完全不同,就像Tabular和Tree结构一样,造成了关联的困难。传统上,表格和树形结构的转换语言不同于首选的表格SQL,而对于树形结构,则主要使用XPath / XQuery。Power Query消除了了解所有这些语言的负担。

  4. 对象的结构:Power Query支持从对象(即键值)类型的源提取数据。随着基于web的解决方案的不断发展,JSON是广泛用于数据交换的格式。Power Query提供了对此类对象类型转换的支持,从而减少了为此类数据类型转换编写代码的麻烦。

  5. 可重用的脚本:Power Query支持将部分脚本转换为可重用的函数,从而减少了编写脚本的工作量。它支持类似于软件开发语言的功能。

  6. 扫描层次递归:许多ETL解决方案通常不支持递归,而递归通常是数据源的树形结构所需要的,其中解码层次结构在很多时候是至关重要的。Power Query支持递归调用M Language函数来扫描树。

  7. 自动生成SQL:Power Query支持在选择直接查询模式(仅适用于选定的RDBMS)时,基于转换步骤生成SQL查询,以选择底层数据库服务器支持的转换操作。对于非技术背景的人来说,这是一个受欢迎的特性,因为他们可能会发现编写SQL查询有点困难。

缺点

  1. 缺乏优化:Power Query在达到一定的数据量阈值时性能良好。但在庞大的数据集下,它就落后了。Database Server利用索引技术优化输出,这是Power Query所缺乏的。此外,在Power Query中也缺少结果的缓存&它会多次重新计算相同的转换(就像Excel)。直接查询模式(使用数据库端优化Power Query)的支持也有限。

  2. 内存占用率高:Power Query尝试在内存中以最小的磁盘使用量执行计算。当数据大小从小到中等时,这将提高性能。但是随着数据量的增加,它会消耗大量的系统内存(RAM),最终剥夺其他应用程序的内存。

  3. 正在进行的文档:微软的所有产品/服务都有官方网站MSDN(微软开发者网络),包含了健壮的文档和示例。Power Query部分文档目前正在进行中,开发人员需要依靠Power BI社区平台来深入了解任何功能。

关于“权力查询-导论”的思考

留言回复

您的电邮地址将不会公布。

这个网站使用Akismet来减少垃圾邮件。了解如何处理您的评论数据

Dhananjay Gokhale

Dhananjay是一名BI开发人员,在企业数据库和MIS报告方面有超过8年的经验。他喜欢开发开源项目,用Excel培训过1000多人。

更多来自作者

订阅每周博客文摘:

报名
类别
关注我们
推特 Linkedin 脸谱网 Youtube Instagram