Power BI 自定义示例数据生成器

2026-09-26 16:43:06
1,495
7分钟28秒

一、背景

很早以前笔者写过写过一篇文章《赠送 300 家门店 260 亿销售额的零售企业 Power BI 实战示例数据》当时使用 Access/VBA 实现的,在分发的过程中,发现其实有很多同学其实是没有装 Access,用起来不是很方便,另外当时受限于 VBA 的效率,如果需要模拟大型数据,非常耗时。

所以笔者将 Power BI 自定义示例数据生成器 使用 Go 重构,一键生成符合真实零售业务场景的 Power BI 学习/演示示例数据,产物为 UTF-8 (含 BOM) 的 CSV 与 开箱即用的 PBIP 示例工程,任何工具皆可直接读取,大型示例数据生成也能在10秒左右完成,速度上提升了100倍。单文件绿色运行,开箱即用,无需安装。

生成器界面
生成器界面

二、使用手册

1. 下载与运行

从 Releases 下载 Windows 压缩包,解压后双击运行 Power BI Custom Sample Data.exe。程序为单文件绿色应用即可,无需安装。

国内用户若在前序链接无法下载请使用:https://gitee.com/jiaopengzi/power-bi-custom-sample-data/releases/latest 下载。

2. 界面参数

参数 默认值 说明 取值范围
开始日期 今天 - 1600 天 数据时间窗口起点 早于结束日期,窗口至少 60 天
结束日期 今天 数据时间窗口终点 晚于开始日期
产品数量 666 生成的 SKU 数量 (原 N0) 1 – 10000
门店数量 55 生成的门店数量 (原 N1) 1 – 10000
入库周期 22 入库间隔最大天数 (原 N3) 5 – 180
存放目录 用户主目录下 PowerBISampleData 产物输出目录 通过 指定存放目录 选择

日期可手动输入 YYYY-MM-DD,也可点击右侧按钮用日历选择 (支持年份切换与今日/年初/月初/月末/年末快捷选择); 数量可直接输入或用+-微调。

产物目录结构

<存放目录>
├── data/                    # 11 张 CSV 产物 (UTF-8 BOM)
└── pbip/                    # PBIP 示例工程
    ├── demo.pbip            # 工程入口,Power BI Desktop 直接打开
    ├── demo.Report/         # 报表 (页面/视觉对象/主题)
    └── demo.SemanticModel/  # 语义模型 (表结构/关系/度量值,Path 参数已指向 ../data)
文件名 说明 行数规模
T00_产品表.csv 产品 (SKU) 产品数量 (原 N0)
T01_门店表.csv 门店 (含开/关店日期、经纬度) 门店数量 (原 N1)
T02_客户表.csv 客户 (按门店规模注册) 与门店营业期相关
T03_入库信息表.csv 入库流水 与订单/入库周期相关
T04_订单主表.csv 订单主 (下单/送货/渠道/客户) 数据量最大
T05_订单子表.csv 订单明细 (价格/折扣/数量/金额) 数据量最大
T06_销售目标表.csv 按省份的月度销售目标 省份数 x 目标月份数
D00_大区表.csv 六大区 6
D01_省份表.csv 省份 34
D02_城市表.csv 城市 ~370
D03_区县表.csv 区县 ~2700

3. 操作流程

  1. 点击 指定存放目录,选择产物输出目录 (默认在用户目录下的 PowerBISampleData)。

  2. 设置日期区间与三个数量参数。

  3. 点击 生成示例数据,等待进度完成 (数据量越大耗时越长)。若目录已有数据会弹窗确认覆盖。

  4. 产物落在 <存放目录>/data (11 张 CSV) 与 <存放目录>/pbip (PBIP 工程),点击 打开存放目录 查看,结果表格会列出各表行数与大小。

  5. 用 Power BI Desktop (需支持 Power BI 项目的版本) 打开 <存放目录>\pbip\demo.pbip 即可。

    存放目录
    存放目录

    打开demo
    打开demo

  6. 此时会发现数据全是空白的,需要点击右上角立即刷新,片刻后可以看到数据刷新完成。

    空白数据
    空白数据

  7. 等待刷新后可以看到数据已经加载完成。

    数据记载完成
    数据记载完成

4. 增量更新

  • 若目录中没有基础数据,会提示先执行 生成示例数据。
  • 开始日期必须等于 "事实数据截止日期 + 1 天": 界面会显示事实数据的截止日期 (增量按钮旁),起始日期不符合要求时会提示应填的日期。
  • 点击 增量更新,系统会复用已有的产品/门店/客户维度,追加该区间的订单与入库数据。
  • 增量完成后会依据全部实绩重建 T06_销售目标表: 目标区间随事实区间扩张,增量前已生成且实绩未变的月份目标值保持不变。
  • PBIP 工程的日历表年份范围会只扩张不缩小 (起年取较小值,止年取较大值),保证已有数据的日期不被裁掉; 其余 PBIP 内容不变。
  • 若日期区间与现有订单区间冲突,会提示现有数据的日期范围,请调整后重试。

5. 清空数据

点击 清空数据 (红色危险按钮,仅在目录已有数据时可用),确认后删除 <存放目录>/data 下的全部 CSV 与整个 <存放目录>/pbip 目录; 存放目录本身及其中的其他文件保留。

三、总结

  • 本项目 License 使用 MIT 开源,如果对您有帮助,可以在开源仓库点上一个star。
  • 更多的表格结构和相关介绍见:https://jiaopengzi.com/p/1035912423145473
  • 后续笔者会根据本套数据做更多的教学和课程,有需要的朋友可以关注。

推荐

为了更好地记录学习,笔者开发的博客笔记系统(效果见博主的主站)已经发布。有兴趣的朋友可以在:https://jiaopengzi.com/p/7691892531658753 了解。

Power BIVueGopbippowerbi