Back to essays
Power Platform · BI · Automation

Power BI DirectLake × Power Apps/Automate:当数据可以自己动手

2026-07-27 · 14 min read · 系列文章 #2 of 3
Power BI DirectLake
Audio version · MiniMax TTS · male-qn-jingying

一、从"看数据"到"动数据"的鸿沟

数据进了 OneLake 之后,下一步是什么?

大部分团队会停在这里:Power BI 出了一堆报表,决策层看了两眼,邮件转发,结束。

但真正的价值在报表之外 —— 让业务团队能够直接在数据上动手

这就是 Power Platform (Power BI + Power Apps + Power Automate) 的真正威力 —— 数据从"被看"变成"被做"

这篇文章拆解这套组合拳在生产环境的三种典型场景。

二、DirectLake:性能与新鲜度的最优解

在讲场景之前,先说一个关键技术 —— DirectLake

2.1 Power BI 三种数据模式的对比

┌────────────────────────────────────────────────────────────────────┐
│                                                                    │
│   Import Mode              DirectQuery            DirectLake       │
│   ──────────               ────────────           ───────────      │
│                                                                    │
│   OneLake ──── ETL ────▶   Power BI               Power BI        │
│                            Vertipaq               ────────────────▶│
│   特点:                    特点:                  直接读 Delta   │
│   • 性能最佳               • 数据实时              特点:          │
│   • T+1 刷新               • 性能最差              • 性能≈ Import │
│   • 占用内存大             • 查询压数据库          • 新鲜度秒级    │
│   • 适合报表               • 适合实时仪表盘        • 适合决策驾驶舱│
│                                                                    │
└────────────────────────────────────────────────────────────────────┘

DirectLake = Import 的性能 + DirectQuery 的新鲜度。

它的原理很简单:Power BI 不再 import 数据,而是直接读 OneLake 上的 Delta/Parquet 文件。Delta 写入即查询,数据从源到 BI 报表延迟可以压到秒级。

2.2 DirectLake 的硬性条件

条件说明
Fabric Capacity必须有 Fabric Premium 或 F Capacity(P SKU 不够)
OneLake Delta 格式数据必须是 Delta Lake 格式(不是 CSV)
Vertipaq 内存单模型建议 ≤ 30 GB(过大时刷新慢)
语义模型设计字段命名清晰、关系简单,不要超过 50 张表

三、场景一:前线 BP 现场调价审批

3.1 痛点

某零售企业的前线 BP 在客户现场发现一个老客户长期下单金额低于标准价。调价流程过去是这样的

BP 发现问题
    │
    ▼
打电话给主管(经常打不通)
    │
    ▼
发邮件申请(格式不规范经常被打回)
    │
    ▼
主管审批 → 抄送区域经理
    │
    ▼
IT 改系统报价(1-2 天)
    │
    ▼
客户已经流失

2-3 天,客户已经走了。

3.2 方案

┌──────────────────────────────────────────────────────────────┐
│                                                              │
│   Power Apps Canvas         Power Automate                   │
│   (BP 移动端)               (审批流)                          │
│   ────────────              ────────────                     │
│   ┌──────────┐   提交   ┌─────────────────────────────┐     │
│   │ 表单:    │ ───────▶ │ 1. 写 OneLake 调价申请表     │     │
│   │ • 产品    │          │ 2. Teams Card 通知主管        │     │
│   │ • 客户    │          │ 3. 主管 Adaptive Card 审批   │     │
│   │ • 新价格  │          │ 4. 批准 → 调用 BigQuery 更新 │     │
│   │ • 原因    │          │ 5. 通知 BP:调价已生效        │     │
│   │ • 影响    │          │ 6. 触发 Power BI Alert        │     │
│   └──────────┘          └─────────────────────────────┘     │
│                                                              │
└──────────────────────────────────────────────────────────────┘

3.3 关键技术点

Power Apps 表单设计

screen: PricingRequestScreen
controls:
  - type: ComboBox
    name: ProductPicker
    items: |
      'LH_BigQuery_Mirror_Products'  # Power Apps 直接连 OneLake Delta
    fields: ["product_id", "product_name", "current_price"]
    displayFields: ["product_name", "current_price"]

  - type: ComboBox
    name: CustomerPicker
    items: 'LH_BigQuery_Mirror_Customers'
    filter: 'Region = "Shanghai"'  # 数据源预过滤

  - type: NumberInput
    name: ProposedPrice
    validation: |
      ProposedPrice >= ProductPicker.Selected.current_price * 0.7
    errorMessage: "新价不能低于现价 70%"

  - type: Button
    name: Submit
    onSelect: |
      SubmitRequest.Run(
        ProductPicker.Selected.product_id,
        CustomerPicker.Selected.customer_id,
        ProposedPrice.Text,
        ReasonDropdown.Selected.value
      )

3.4 效果

指标过去现在
调价周期1-2 天30 分钟
BP 申请等待时间4-6 小时即时
主管审批路径邮件/电话Teams 内 1 键
客户流失率显著下降

四、场景二:新产品 Launch 自动立项

4.1 痛点

每个新产品 Launch 都要做"市场规模 / 定价 / 风险评估"——过去是分析师手动跑 5 个 SQL、写 1 份 PPT、跨部门协调 3 天

4.2 方案

┌─────────────────────────────────────────────────────────────────┐
│                                                                 │
│  Trigger (Power Automate)                                        │
│  ERP 系统新产品立项单创建                                          │
│      │                                                          │
│      ▼                                                          │
│  ┌──────────────────────────────────────────┐                   │
│  │ Data Pipeline (Fabric)                   │                   │
│  │ 1. 读 BigQuery 市场规模 / 竞品价 / GMV    │                   │
│  │ 2. 读 OneLake Monte Carlo 模拟结果        │                   │
│  │ 3. 用 Power BI Paginated Report 出 PDF   │                   │
│  └──────────────────────────────────────────┘                   │
│      │                                                          │
│      ▼                                                          │
│  ┌──────────────────────────────────────────┐                   │
│  │ Distribution                              │                   │
│  │ • 邮件给管理层(PDF 附件 + OneDrive 链接) │                   │
│  │ • Teams 频道通知                          │                   │
│  │ • 写回 OneLake「Launch_Decisions」表      │                   │
│  └──────────────────────────────────────────┘                   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

4.3 效果

指标过去现在
立项报告耗时1 天1 小时
数据口径一致性各分析师自己跑 SQL统一从模型算
跨部门协调3-5 次会议邮件 + Teams 自动通知
历史可追溯散落邮件OneLake 集中归档

五、场景三:定价异常自动告警

5.1 痛点

GMV 异常下跌时,谁发现?往往是月度复盘时,已经过去 30 天了。

5.2 方案

┌──────────────────────────────────────────────────────────────┐
│                                                              │
│   Power BI Data Alert (每日 09:00)                            │
│   ────────────────────────                                   │
│   条件:任何产品过去 7 天 GMV 跌幅 > 15%                        │
│      │                                                       │
│      ▼                                                       │
│   Power Automate                                             │
│   ────────────                                               │
│   1. 拉相关产品上下文(客户 / 渠道 / 区域)                     │
│   2. AI 摘要:发生了什么、影响多大                             │
│   3. 推送到 Teams 渠道 + 邮件给定价团队                        │
│   4. 自动开 ticket #4521                                      │
│   5. 通知:@PricingTeam 这款产品需要关注                        │
│                                                              │
└──────────────────────────────────────────────────────────────┘

5.3 Power BI Alert 配置

data_alert:
  name: "GMV 跌幅 > 15%"
  semantic_model: PricingDecisionModel
  measure: |
    GMV_7d_drop_rate =
      VAR current = [GMV_Last7Days]
      VAR previous = [GMV_Previous7Days]
      RETURN DIVIDE(current - previous, previous)
  condition: GMV_7d_drop_rate < -0.15
  scope: Products (per product)
  schedule: daily_09:00
  trigger_action: PowerAutomate_Flow_GMVAlert

5.4 效果

指标过去现在
异常发现时间30 天(月度复盘)当日 09:00
团队响应邮件 + 会议Teams 直接处理
ticket 流程手动自动开

六、Power Platform 的局限

再好的工具也有边界。Power Apps + Automate 不适合的场景:

❌ 复杂的领域逻辑

如果你的业务规则超过 20 个分支条件,写 Power Automate 就像写意大利面代码。该写代码就写代码(Azure Functions / Logic Apps Standard)。

❌ 高并发写入

Power Apps 每个表单提交触发一个 Flow,1000 个并发写入会撞限流。批量场景用 Fabric Data Factory。

❌ 长期持久状态机

调价审批、合同审批这种多步状态机,建议直接用 Dataverse + Power Automate + 自定义 Workflow,别硬塞 Flow

❌ 跨租户数据共享

Power Platform 的连接器默认同租户,跨租户要么开 B2B、要么走中间层 API

七、整体架构:一份语义模型 → 四个消费者

这套方案最值钱的设计原则是 "一份模型多端复用"

                    Power BI Semantic Model
                    "PricingDecisionModel"
                              │
        ┌─────────────────────┼─────────────────────┐
        │                     │                     │
        ▼                     ▼                     ▼
   Power BI            Power Apps            Copilot Studio
   Desktop/Service     (前线 App)            (AI 问答)
        │                     │                     │
        ▼                     ▼                     ▼
   决策层周会报表      现场调价 / 数据录入       Teams / Outlook
   Paginated          Power Automate           智能问答
   Report
        │
        ▼
   Excel 透视 / 月度归档

你维护一份语义模型,4 个场景用。这就是 Power Platform 真正的杠杆 —— 不是单个工具强,是协同强。

八、给数据团队的三条建议

如果你正在评估或已经用 Power Platform,结合生产经验给出三条:

1. 从"决策层"切入,不要从"一线 App"开始

很多团队一开始就做前线 App,结果一线 BP 不会用、用不起来。正确的顺序是:先做决策层报表(管理层用),证明数据可信;再做自动化流程(提效有数字);最后才是一线 App

2. 把语义模型当一等公民

模型即接口。模型建不好,所有下游都烂。投入懂业务 + 懂 DAX 的人来建模型,比堆报表更重要。

3. DirectLake 不是银弹

它性能好但对模型设计要求高。如果你的模型超过 50 张表、嵌套关系复杂,先用 Import 跑稳,再考虑 DirectLake。

九、总结

Power BI DirectLake 解决了数据新鲜度和性能的经典矛盾;Power Apps 让业务团队可以动手;Power Automate 把洞察变成动作

三件套组合起来,让数据团队从"出报表的"变成"业务操作系统设计者"。


下篇预告:《Copilot Studio × Teams / Outlook:让 GenAI 真正落到前线工作流里》
AI 不再是 PPT,而是前线 BP 每天 @ 一个 Bot 就能拿到答案。