数据与重新加载
上次更新日期:2026/10/14QV2QS 可转换 QlikView UI,并且可以使用 Auto-binary 选项自动将数据加载到转换后的应用程序中。在向导中或命令行上启用 Reload 和 Auto-binary,QV2QS 将自动处理数据传输。如果未使用 Auto-binary,转换后的应用程序必须单独重新加载以填充数据。
QV2QS 将 QlikView UI 元数据 (PRJ XML) 转换为 Qlik Sense JSON,并直接在 Qlik Cloud 租户上构建应用程序。转换过程处理工作表布局、可视化对象、表达式和样式。如果未重新加载,构建步骤完成后生成的 Qlik Sense 应用程序将不包含任何数据。
若要将数据填充到已转换的应用程序中,必须重新加载该应用程序。可以通过以下三种方法:
- 自动二进制加载 — QV2QS 将原始 QVW 文件上传到 Qlik Cloud,并在构建期间使用
Binary语句加载数据。这种方法是在转换后立即查看带有数据的正常运行应用程序的最快方式。有关详细信息,请参阅下文的自动二进制加载。 - 手动重新加载 — 如果已在 Qlik Cloud 中创建数据连接且 QVD 文件或数据源可访问,则可以在调整加载脚本后重新加载应用程序。QV2QS 会应用基本的加载脚本路径规范化,但连接名称和数据源路径可能需要手动更新。
- 触发重新加载 — 使用
--reload标志作为部署的一部分触发重新加载。重新加载按原样执行加载脚本。仅当加载脚本中引用的数据连接和数据源已在 Qlik Cloud 环境中可用时,重新加载才会成功。
两个标志控制不同阶段的数据。--noData 标志会在构建步骤中跳过数据,以便无需等待重新加载即可测试应用程序结构。--exportQvfNoData 标志会在构建完成后导出不包含数据的 QVF,从而生成更小的文件以便共享。这些标志可以单独使用,也可以组合使用。
自动二进制加载
自动二进制加载会将原始 QVW 文件上传到 Qlik Cloud,使用 Binary 语句将数据加载到转换后的应用程序中,然后删除上传的文件。转换后的应用程序接收与原始 QlikView 相同的数据,而无需手动配置数据连接。
要启用自动二进制加载,请在命令行中使用 --autoBinary 或在用户界面中启用 自动二进制。
启用自动二进制加载时,QV2QS 执行以下步骤:
- 将 QVW 文件作为临时应用程序上传至 Qlik Cloud。
- 在转换后的应用程序加载脚本前添加
Binary [<appId>];语句和Exit Script;语句。 - 构建应用程序(如果指定了
--reload则重新加载),该应用程序会从上传的 QVW 中加载数据。 - 从 Qlik Cloud 删除临时上传的应用程序。
- 恢复 Qlik Cloud 应用程序中的原始加载脚本,删除 Binary 和 Exit 脚本语句。
清理后,Qlik Cloud 应用程序包含已加载的数据,但加载脚本不再引用临时应用程序。
上传步骤受 Qlik Cloud 文件大小限制。大型 QVW 文件可能会超出租户订阅层级的上传限制。如果上传失败,请将应用程序部署到启用了大型应用程序支持的空间,或使用 --binaryAppId 参数引用 Qlik Cloud 中已存在的应用程序。有关租户资源限制的详细信息,请参阅 Qlik Cloud 资源限制。
失败时清理
如果在上传 QVW 文件后构建或重新加载步骤失败,QV2QS 会在退出前自动尝试清理。清理包括从 Qlik Cloud 中删除临时上传的应用程序,并在本地和云应用程序中恢复原始加载脚本。
如果清理本身失败(例如,由于网络中断),临时应用程序可能会保留在 Qlik Cloud 租户中。孤立的临时应用程序命名为 QV2QS_Binary_YYYYMMDD_HHMMSS(例如 QV2QS_Binary_20260219_143025)。检查目标空间中与此模式匹配的应用程序,并手动将其删除。构建目录中的本地 script.qvs 文件也可能包含临时的 Binary 语句。重新运行转换以重新生成它。
自动二进制加载需要 --reload 标志和 --qvw 路径。如果缺少任一要求,QV2QS 将拒绝该命令并以退出代码 1 退出。
本地计算机上的原始 QVW 文件绝不会被修改或删除。数据加载完成后,仅删除 Qlik Cloud 中的临时副本。
使用区域权限的应用程序不支持自动二进制加载。Qlik Cloud 重新加载引擎无法针对源 QVW 文件中的区域权限表进行身份验证。当 QV2QS 在源应用程序中检测到区域权限时,将跳过二进制上传和重新加载步骤,并记录一条警告。应用程序部署时不包含数据。要加载数据,请创建 Qlik Cloud 数据连接并手动更新加载脚本,或者从源 QVW 的副本中删除区域权限并使用 --autoBinary 重新运行。
当 --preserveTargetAppScript 与 --reload 结合使用时,重新加载将执行目标应用程序中的现有加载脚本,而不是转换后的脚本。当目标应用程序已具有可正常工作的 Qlik Cloud 数据连接且只需要更新 UI 层时,这很有用。有关详细信息,请参阅 重用现有应用程序。