Power BI学习笔记第18篇:面试题汇总 · 第一篇:基础概念篇
面试官问的每一道基础题,都是在试探你对 Power BI 全貌的理解有多深。答不上来?要么是你没动手做过,要么是你没想过为什么要这么做。
第 1 题:Power BI 的整体架构是怎样的?
参考答案:
Power BI 由四大核心组件构成:
| 组件 | 作用 |
|---|---|
| Power BI Desktop | 本地报表开发工具,用于数据连接、建模、可视化设计 |
| Power BI Service | 云端 SaaS 平台(app.powerbi.com),用于发布、分享、管理报表 |
| Power BI Gateway | 本地数据与云端之间的桥梁,支持定时刷新和混合部署 |
| Power BI Mobile | iOS/Android 移动端,用于随时随地查看报表 |
加分回答:Power BI Desktop 是免费的,Power BI Service 的 Pro 许可证允许发布和分享,Premium 容量则提供更大的算力和分发能力。
第 2 题:Power BI 与 Excel Power Query、Power Pivot 的关系是什么?
参考答案:
三者同属 Microsoft 的 Power BI 工具家族,但定位不同:
- Power Query:ETL 引擎,负责数据的提取、转换、加载(数据准备层)。在 Excel 中叫"查询与连接",在 Power BI 中是独立的 M 语言编辑器。
- Power Pivot:数据建模引擎,负责在内存中创建数据模型,支持关系建立、度量值编写(DAX)。在 Excel 中是Power Pivot插件,在 Power BI 中是内置的建模视图。
- Power BI:三者的整合与延伸,增加了云端发布、协作、实时刷新、移动端等企业级能力。
核心区别:Excel Power Query + Power Pivot 是单机版,Power BI 是云端协作版,两者在 M 语言和 DAX 语法上高度一致。
第 3 题:Power BI 中的数据流(Data Flow)是什么?它和数据集(Datasets)有什么区别?
参考答案:
- Data Flow:将清洗好的数据存放在 Azure Data Lake Storage 中,作为共享数据源,支持多个报表复用。常用于企业级的统一数据准备。
- Dataset:Power BI Service 上的数据模型实例,报表连接 Dataset 进行可视化。
核心区别:
| Data Flow | Dataset | |
|---|---|---|
| 存储位置 | Azure Data Lake(云端) | Power BI Internal / AS |
| 复用性 | 多个 Dataset 共享 | 同一报表独享 |
| 数据量 | 支持大规模增量刷新 | 受 Premium 容量限制 |
| 适用场景 | 企业级数据治理 | 报表级建模 |
第 4 题:介绍一下 Power Query 中的 M 语言基础语法。
参考答案:
M 语言是 Power Query 的公式语言,核心结构如下:
// 数据源引用 Source = Sql.Database("ServerName", "DatabaseName"), // 筛选行 FilteredRows = Table.SelectRows(Source, each [Status] = "Active"), // 选择列 SelectedCols = Table.SelectColumns(FilteredRows, {"ID", "Name", "Revenue"}), // 更改类型 ChangedType = Table.TransformColumnTypes(SelectedCols, { {"ID", Int64.Type}, {"Revenue", Currency.Type} })关键点:
- 每一步都是一个"查询",以逗号分隔,最终返回 Table
each关键字用于行级过滤条件- M 是函数式语言,没有语句顺序依赖,每一步都是表达式
- 常用函数:
Table.SelectRows、Table.SelectColumns、Table.Group、Table.Pivot
第 5 题:什么是增量刷新(Incremental Refresh)?如何配置?
参考答案:
增量刷新只刷新指定时间段或符合条件的新增/变更数据,大幅提升大数据量场景下的刷新效率。
配置步骤:
- 在 Power Query 中定义参数(
RangeStart和RangeEnd,类型为 DateTime) - 在查询中对日期字段应用参数过滤:
[Date] >= RangeStart and [Date] < RangeEnd - 在数据集设置中启用增量刷新
- 配置存储策略:历史数据范围(如保留 3 年)和增量刷新范围(如每天)
注意事项:
- 仅支持 Pro 许可证的 Streaming Dataset,或 Premium 容量
- 需要 Gateway 支持,且 Gateway 版本 >= 2020.3 月版
- 参数过滤必须在数据源层完成,不能在 Power BI 内部过滤
第 6 题:Power BI 中有哪些数据类型?各自的使用场景是什么?
参考答案:
| 数据类型 | 说明 | 常见场景 |
|---|---|---|
| Text / String | 字符串,最大 32,768 Unicode 字符 | 名称、描述、分类 |
| Whole Number | 整数,范围 ±9,000 万亿 | 计数、主键、ID |
| Decimal Number | 64位浮点,最多 17 位精度 | 金额、比率(金融) |
| Fixed Decimal Number | 固定4位小数,精度更高 | 货币(财务) |
| Date / DateTime / DateTimeZone / Time | 日期时间系列 | 时间维度、时效性数据 |
| Boolean | True / False | 开关、状态标识 |
| Binary | 二进制,存储图片等 | 不常用,通常不上传 |
避坑提醒:Power BI 默认自动检测数据类型,但有时会把日期误识别为文本。建议导入后逐一核实,尤其是财务相关字段,精度不够会导致四舍五入误差。
第 7 题:描述一下 Power BI 报表的发布流程。
参考答案:
- 本地开发:在 Power BI Desktop 中完成数据连接、建模、可视化
- 保存为 .pbix 文件:包含数据模型和报表定义(不含原始数据源凭据)
- 发布:点击"发布"按钮,选择目标 Workspace
- 配置数据源凭据:在 Power BI Service 中为数据集设置 Gateway 和凭据
- 设置刷新计划:配置定时自动刷新(Pro 手动 / Gateway 自动)
- 分享:通过 Workspace 协作、App 分发,或直接共享给指定用户
常见失败原因:Gateway 未配置、凭据过期、刷新超时(数据量超出限制)。
第 8 题:Power BI Pro 和 Premium 的区别是什么?
参考答案:
| 功能 | Power BI Pro | Power BI Premium |
|---|---|---|
| 个人使用 | ✅ | ✅ |
| 分享/协作 | ✅(同租户内) | ✅(跨租户分发) |
| 发布到 Workspace | ✅ | ✅ |
| 报表/数据集容量 | 共享容量(限速) | 独立容量(专属算力) |
| 增量刷新 | ❌ | ✅ |
| 大规模数据 | ❌ | ✅(最高 400GB/模型) |
| 自动刷新频率 | 每 8 小时(共享) | 每 8 次/天 ~ 48次/天 |
| 成本 | ¥66/用户/月 | 按容量计价(¥5,000+/月起) |
实际建议:如果团队不超过 10 人且数据量不大,Pro 足够;中大型企业且有 BI 平台建设需求,上 Premium。
第 9 题:什么是 Power BI Gateway?有哪些类型?
参考答案:
Gateway 是本地数据源与 Power BI Cloud 之间的数据传输桥梁。
两种模式:
| 模式 | 用途 | 特点 |
|---|---|---|
| 个人模式(On-premises data gateway (personal mode)) | 单用户场景 | 仅支持 Power BI,支持用户直接用自己的凭据连接 |
| 标准模式(On-premises data gateway (standard mode)) | 团队/企业场景 | 支持多个数据源和服务(Power BI、Power Apps、Logic Apps 等),管理员集中管理 |
支持的常见数据源:SQL Server、Oracle、MySQL、PostgreSQL、Excel、CSV、SharePoint、Azure 系列、SAP 等。
第 10 题:Power BI 中的视觉对象级别筛选器和页面筛选器有什么区别?
参考答案:
Power BI 提供四个层级的筛选器,范围从宽到窄:
| 筛选器层级 | 范围 | 覆盖情况 |
|---|---|---|
| Visual-level filter | 单个视觉对象 | 最窄,仅影响该图表 |
| Page-level filter | 当前报表页 | 影响该页所有视觉对象 |
| Report-level filter | 整个报表所有页 | 最宽,全局生效 |
| Drillthrough filter | 钻取目标页 | 从源页传递特定上下文 |
优先级:视觉对象筛选器 > 页面筛选器 > 报表筛选器 > Drillthrough
常见误区:以为页面筛选器会影响所有页——实际只影响当前页。跨页全局筛选必须用报表筛选器。
第 11 题:什么是书签(Bookmark)?它有什么实际应用?
参考答案:
Bookmark 记录当前报表页的视觉状态(筛选、切片器位置、视觉对象可见性等),可作为导航按钮跳转到指定状态。
常见应用场景:
- 自定义导航:代替切片器做多页跳转(点击按钮切换视图)
- 筛选状态保存:保存一组筛选条件为书签,一键恢复
- 隐藏/显示视觉对象:配合"选择"窗格,实现同一页面内切换内容(报表内切换)
- 教程/演示:分步骤展示数据故事
性能注意:书签数量过多会增加.pbix文件大小,且运行时需要更多内存。建议最多控制在 20-30 个以内。
第 12 题:Power BI 报表的常见性能优化方法有哪些?
参考答案:
| 优化方向 | 具体措施 |
|---|---|
| 数据模型 | 减少列数、使用聚合表、删除不必要的隐藏列 |
| DAX | 避免使用 VALUES() 替代 CALCULATE 上下文转换、使用变量、避免 FILTER 嵌套 |
| 视觉对象 | 限制每页视觉对象数量、避免在视觉对象级别使用复杂筛选 |
| 数据加载 | 使用增量刷新、启用"后台数据加载" |
| 查询压缩 | Power BI 的 VertiPaq 引擎会自动压缩,但 cardinality(基数)越高压缩效果越差 |
| Gateway | 使用标准模式 Gateway、确保 Gateway 机器 CPU/内存充足 |
| 发布策略 | Pro 用户避免在同一 Workspace 堆积过多大报表 |
性能分析工具:Power BI Desktop 内置 Performance Analyzer(视图 → 性能分析器),可量化每个视觉对象的刷新时间。
第一篇 · 基础概念篇 · 共三篇