先弄清这是什么
QVD 文件:为什么别的工具打不开
QVD 文件,是 QlikView 与 Qlik Sense 用来存放一张数据表的专有格式文件,扩展名为 .qvd,通常作为数据加载过程中的中间层使用,读取速度明显快于回源取数。
它打不开的原因很简单:格式是 Qlik 私有的,没有公开规范,也没有通用库能解析。于是同一份数据在企业里会出现一个别扭的局面 – 数据明明已经抽好、清好、存成了 QVD,但只有 Qlik 能用它,别的系统要用就得回源再抽一遍。
另一个常被误解的点是 QVX。Qlik 公开的是 QVX 这个交换格式,不是 QVD。KNIME 社区扩展提供的是 QVX 的读写,不是 QVD,而且该扩展停留在 4.6 实验版本,较新版本的更新站点已不可用。所以「用 KNIME 读 QVD」这条路实际走不通,这也是我们自己做这个工具的原因。
关键事实
| 格式归属 | Qlik 专有格式,用于 QlikView 与 Qlik Sense |
| 扩展名 | .qvd |
| 能否用 Excel 直接打开 | 不能,Excel 与常见文本工具均无法解析 |
| QVX 与 QVD 的关系 | QVX 是 Qlik 公开的交换格式,与 QVD 不是同一回事 |
| KNIME 社区扩展 | 提供 QVX 读写而非 QVD;停留在 4.6 实验版本,较新版本更新站点已不可用 |
| 我们的工具 | QVD 文件生成工具,由深圳市卓越方达自主研发 |
| 核心能力 | 不依赖 QlikView 与 Qlik Sense 即可读取与生成 QVD |
| 生成结果的消费端 | 生成的 QVD 可被 QlikView 与 Qlik Sense 读取 |
| 使用方式 | 两种:作为工作流中的输出节点;作为独立跑批工具 |
| 适用场景 | 统一 QVD 数据层建设、跨项目数据资产复用、QVD 转出到其它系统 |
四类典型需求
搜「QVD 怎么打开」的人,要解决的通常是其中一件
01
看一眼里面有什么
接手别人的环境,先要知道这份 QVD 有哪些字段、多少行。
02
转成 Excel 或 CSV
业务方要一份可以打开的文件,或者要导进别的系统。
03
批量生成 QVD
把清洗好的数据直接产出为 QVD,供 Qlik 应用加载。
04
脱离 Qlik 取数
QVD 已是现成的数据层,不想为了取数再买一套授权。
两种用法
工具怎么用
01
作为工作流里的输出节点推荐
在 iModel 工作流中完成取数、清洗、关联之后,末端直接输出 QVD。好处是整条数据准备链路可视、每一步中间结果可查,产出的 QVD 由 Qlik 应用加载。上游怎么做可以看 Qlik 数据准备。
02
作为独立跑批工具
不引入工作流平台,按计划执行的方式生成或读取 QVD,适合已有调度体系、只想补上 QVD 这一环的环境。两种方式可以并存,按项目情况选。
支持的数据来源类型
按来源分四类,覆盖企业里常见的取数口子:
- 文件类:文本文件、XML、Excel、Access、DBF、FoxPro
- 数据库类:MS SQL Server、Oracle、MySQL、PostgreSQL、Firebird、Interbase、SQLite
- 通用接口:ODBC、OLE DB
- Qlik 侧:QVX
需要接入的库不在上面这张单子里时,可以先做可行性确认,不要按「应该能连」推进。同类问题在数据集成那边也是一样的处理方式。
操作层面
QVD 文件,怎么转成 Excel 或 CSV
转出这件事本身不复杂,关键是选对路径。常见的三条路,代价差别很大。
| 做法 | 前提 | 适用与限制 |
|---|---|---|
| 在 Qlik 里加载后导出 | 需要可用的 QlikView 或 Qlik Sense 环境与授权 | 手边有环境时最直接;但导出受界面行数与操作限制,不适合批量与定时 |
| 回源重新取数 | 需要源系统权限与原始取数逻辑 | 数据最新,但等于把已经做过的清洗再做一遍,口径容易和 QVD 里的对不上 |
| 用 QVD 文件生成工具直接读取 | 不需要 QlikView 与 Qlik Sense | 可批量、可调度,读出的内容与 QVD 里的口径一致;转 Excel、CSV 或直接写入数据库都可以 |
一个实际场景
企业里常见的情况是:数据团队早已把口径统一在 QVD 层,但下游要用这批数据的部门没有 Qlik 授权,于是各自回源重抽,同一个指标在三个系统里出现三个值。把 QVD 变成可进可出的格式,比给每个部门配一套 BI 授权便宜得多,也更容易把口径锁在一个地方。常见问题
关于 QVD 的五个问题
能,但需要专门的工具。QVD 是 Qlik 的专有格式,没有公开规范,Excel、文本编辑器和通用数据工具都无法解析。我们自主研发的 QVD 文件生成工具可以在不依赖 QlikView 与 Qlik Sense 的情况下读取其内容。
三条路:在 Qlik 环境里加载后导出、回源重新取数、或用工具直接读取 QVD 再写成 Excel 或 CSV。需要批量或定时执行时只有第三条可行,前两条都依赖人工操作或额外授权。
QVX 是 Qlik 公开的交换格式,QVD 是内部使用的专有格式,两者不能互相替代。市面上一些声称支持 Qlik 格式的开源扩展,实际支持的是 QVX,拿来读 QVD 会直接失败。
可以,生成的 QVD 可被 QlikView 与 Qlik Sense 读取,按常规的加载脚本引用即可。具体环境上线前建议先用一份真实数据做一次加载验证,这对任何新引入的数据层都适用。
因为 QVD 的加载速度和存储效率都优于 CSV,这正是它存在的理由。用 CSV 顶替会让原本几秒的加载变成几分钟,数据量越大差距越明显,所以 QVD 层通常不建议拆掉。
说说你的 QVD 场景,我们判断能不能解
告诉我们数据来源、QVD 的规模与下游要怎么用,就能给出可行性与实施方式。