You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power BI Desktop如何实现SQL Server事实表的增量数据导入?

Power BI Desktop 事实表增量导入解决方案

一、官方增量刷新(推荐方案)

这是Power BI自带的增量刷新功能,能自动保留历史数据并仅导入新增数据,无需手动维护历史文件,稳定性更高。

  1. 开启增量刷新
    打开Power Query编辑器,选中目标事实表,点击顶部「主页」选项卡的「增量刷新」按钮,弹出配置窗口。

  2. 配置刷新规则

    • 勾选「启用增量刷新」
    • 设置「存档数据起始日期」:比如设为1年前,确保模型保留足够的历史数据
    • 设置「增量刷新范围」:建议设为7天(避免因数据延迟导致漏导)
    • 可选:勾选「仅刷新完整时间段」,确保只导入已结束的日期数据
  3. 修改M代码适配参数
    系统会自动生成RangeStart和RangeEnd两个参数,替换你原代码中的StartDate,修改筛选条件如下:

let
    Source = Sql.Database("10.Xx.Xx.Xx", "MY_DB"),
    dbo_fact_table = Source{[Schema="dbo",Item="fact_table"]}[Data],    
    filteredRows = Table.SelectRows(dbo_fact_table, each [date] >= RangeStart and [date] < RangeEnd)
in
    filteredRows
  1. 完成刷新
    关闭Power Query编辑器,回到主界面点击「刷新」,此时Power BI只会读取RangeStart到RangeEnd区间的新增数据,并追加到现有模型中,不会清除原有1000万行数据。

二、手动M代码实现追加(特殊场景适用)

如果不想用官方增量刷新,可以通过追加查询+去重逻辑实现,需依赖唯一键(如主键ID)避免重复导入。

  1. 导出历史数据到本地
    先将模型中现有1000万行数据导出为CSV/Parquet文件,作为历史数据存储(仅第一次操作需要)。

  2. 创建新数据查询
    修改原有查询,动态获取上次刷新日期作为筛选起点(比如取当前日期前一天),确保只拉取新增数据:

let
    Source = Sql.Database("10.Xx.Xx.Xx", "MY_DB"),
    dbo_fact_table = Source{[Schema="dbo",Item="fact_table"]}[Data],
    LastRefreshDate = DateTime.LocalNow() - #duration(1,0,0,0), // 动态计算昨天的日期
    filteredRows = Table.SelectRows(dbo_fact_table, each [date] >= LastRefreshDate)
in
    filteredRows
  1. 合并历史数据与新数据
    在Power Query编辑器中新建查询,将本地历史数据和上述新数据查询进行合并,同时添加去重逻辑:
let
    // 加载本地历史数据
    HistoricalData = Csv.Document(File.Contents("C:\你的历史数据文件路径.csv"), [Delimiter=",", Encoding=1252, QuoteStyle=QuoteStyle.Csv]),
    // 加载新数据(调用上面创建的新数据查询)
    NewData = 新数据查询名称,
    // 追加数据
    CombinedData = Table.Combine({HistoricalData, NewData}),
    // 根据唯一键去重(假设id是主键)
    RemovedDuplicates = Table.Distinct(CombinedData, {"id"})
in
    RemovedDuplicates

为什么原有方法会清除数据?

你之前的M代码直接返回筛选后的新数据,Power BI默认会用查询结果替换模型中的全部数据,而非追加。只有通过增量刷新或手动追加逻辑,才能实现保留历史数据+新增数据的效果。

内容的提问来源于stack exchange,提问作者Boris EKUE-HETTAH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 08:42:47