QlikView 迁移至 Power BI ― 从选型到上线指南

Table of Contents
QlikView 迁移至 Power BI:从选型到上线的完整指南
本指南的目标
- 准确理解 QlikView 的支持现状,避免误判
- 在 Qlik Cloud 与 Power BI 之间做出有依据的选择
- 掌握加载脚本、QVD、集合分析三大核心资产的迁移方法
- 提前规避中文环境中常见的数据问题
- 了解 Pulse Convert 如何自动化转换(初始自动转换准确率 70%~90%)
- 联系邮箱:Admin@innovationalofficesolution.com
一、QlikView 的支持现状
需要先说明:Qlik 并未宣布 QlikView 产品停产。但根据 Qlik 公布的生命周期,每个版本的支持期约为 24 个月:
| 版本 | 支持结束日期 |
|---|---|
| QlikView 12.90(2024 年 5 月) | 2026 年 10 月 31 日 |
| QlikView 12.100(2025 年 9 月) | 2027 年 9 月 30 日 |
这意味着要保持在受支持状态,企业几乎每年都要升级一次。同时,Qlik 的投入方向也很清楚:其 Qlik Analytics Migration Tool 用于把 QlikView 与 NPrinting 内容迁移到 Qlik Cloud。也就是说,即使留在 Qlik 体系内,迁移同样不可避免。
二、Qlik Cloud 还是 Power BI:选型参考
| 考量因素 | 倾向 Qlik Cloud | 倾向 Power BI |
|---|---|---|
| 团队技能 | 开发团队以 Qlik 脚本为主,短期难以转型 | 团队熟悉 Excel、SQL,或已有 Power BI 用户 |
| 办公环境 | 日常办公不依赖 Microsoft 365 | 日常在 Teams、Outlook、Excel 中工作 |
| 数据平台 | 数据主要在 Qlik 生态内处理 | 数据已在 Azure 或计划使用 Microsoft Fabric |
| 部署要求 | 可以接受 SaaS | 需要本地部署时可选 Power BI 报表服务器 |
| 长期成本 | 已有 Qlik 订阅基础 | 希望与 Microsoft 365 许可整合 |
对于大多数已经全面使用 Microsoft 365 的企业,Power BI 在许可整合与用户推广方面优势明显。
三、三大核心资产的迁移方法
1. 加载脚本 → Dataflow Gen2 或 Fabric Notebook
- LOAD、SQL SELECT、JOIN、CONCATENATE → Power Query 合并与追加,或 PySpark DataFrame 操作
- Mapping Load 与 ApplyMap → 映射表与合并查询
- 增量加载 → 增量刷新或 Delta 表的 MERGE
- 变量与 Include 文件 → 管道参数与共享函数
2. QVD 文件 → OneLake 中的 Delta 表
很多 QlikView 环境采用“抽取层 → 转换层 → 应用层”的三层 QVD 架构。迁移时可以直接对应为 Fabric 的 Bronze、Silver、Gold 三层,思路不变,但数据变为开放的 Delta 格式,可同时被 Power BI、SQL 与 Spark 使用。
3. 集合分析 → DAX 度量值
| 集合分析写法 | 含义 | DAX 写法 |
|---|---|---|
| Sum({<年份={2025}>} 销售额) | 2025 年销售额 | CALCULATE([销售额], '日期'[年份] = 2025) |
| Sum({1} 销售额) | 忽略所有选择的总计 | CALCULATE([销售额], ALL('销售')) |
| Sum({<区域=>} 销售额) | 忽略区域选择 | CALCULATE([销售额], REMOVEFILTERS('门店'[区域])) |
| Sum({<年份={$(=Max(年份)-1)}>} 销售额) | 所选最大年份的上一年 | CALCULATE([销售额], SAMEPERIODLASTYEAR('日期'[日期])) |
还有一个看不见的资产:关联模型。QlikView 会自动按同名字段关联表,多年来“能跑”的合成键和循环引用,在 Power BI 的关系模型中会立即暴露。必须先重建星型模型,再转换表达式。
四、分步骤迁移流程
第 1 步:从 QlikView Server 与 Publisher 收集应用、重载任务、QVD 文件和使用日志
第 2 步:下线无人使用的应用,合并内容相近的应用
第 3 步:解析加载脚本,识别合成键与循环引用
第 4 步:设计星型模型与 Fabric 的三层数据结构
第 5 步:转换脚本、QVD 与表达式
第 6 步:把 Section Access 转换为行级安全,把 NPrinting 转换为分页报表与订阅
第 7 步:在相同选择条件下比对 KPI,按部门分批上线
五、中文环境中的常见问题
- 字段名:QlikView 应用中常直接使用中文字段名,同名字段又会触发自动关联。建议在数据层使用规范的英文列名,在 Power BI 中以中文显示名称呈现。
- 编码:从 ERP 导出的文本文件常为 GBK 编码,脚本中可能指定了 codepage 936,迁移后必须显式指定编码。
- 日期:脚本中常见 Date#() 与 MakeDate() 处理多种日期格式,要在 Power Query 或 PySpark 中统一。
- 区域划分:按大区、省区、城市的销售层级,常在脚本中通过 Mapping 表维护,迁移时应整理为维度表。
六、QlikView 与 Power BI / Fabric 对照表
| QlikView | Power BI / Microsoft Fabric |
|---|---|
| 加载脚本 | Dataflow Gen2 / PySpark Notebook |
| QVD 文件 | OneLake 中的 Delta 表 |
| 增量加载 | 增量刷新 / Delta MERGE |
| ApplyMap / Mapping Load | 合并查询 / 映射表 |
| 关联模型 | 星型语义模型 |
| 集合分析 | DAX:CALCULATE、ALL、REMOVEFILTERS |
| 变量与美元符号展开 | DAX 变量 / 字段参数 |
| Section Access | 行级安全(RLS) |
| 工作表与图表 | Power BI 报表页与视觉对象 |
| Publisher 重载任务 | Fabric 管道 / 计划刷新 |
| NPrinting | 分页报表 + 订阅 |
七、案例参考:Emulus Consulting
Emulus Consulting 为一家医药流通企业完成迁移:
- QlikView 应用 260 个,下线与合并 37%
- QVD 文件 2,100 个整合为 Delta 表 310 张
- 集合分析表达式 4,700 个归并为 520 个 DAX 度量值
- Section Access 规则转换为行级安全,覆盖 31 个省区
- 初始自动转换准确率 85%,项目周期 17 周
- 每日重载窗口从 6 小时缩短至 50 分钟,BI 总成本降低 42%
八、Pulse Convert 如何加速迁移
- 脚本解析:逐句解析加载脚本,生成中间表示,识别合成键与循环引用
- 模型设计:自动生成星型模型与三层数据结构建议
- 自动转换:脚本转 Power Query 或 PySpark,QVD 转 Delta 表,集合分析转 DAX,初始自动转换准确率 70%~90%
- 自动对账:PulseQA 在相同选择条件下比对 QlikView 与 Power BI 的 KPI
- 专家补全:剩余 10%~30% 由专家与业务团队共同完成
常见问题(FAQ)
立即开始
- 免费 POC:免费 POC(Pulse Convert)
- 官网:innovationalofficesolution.com
- 邮箱:Admin@innovationalofficesolution.com
将 QlikView 资产迁移至 Power BI 与 Fabric
告别约 24 个月的繁琐升级周期,将加载脚本、QVD 架构、集合分析表达式与 Section Access 迁移至 Fabric 湖仓与 Power BI 语义模型。初始自动转换准确率 70%~90%。