# 迁移到 Qlik Cloud 时的 QVD 架构最佳实践

Qlik Cloud 支持大文件，并且原生 DataFiles 存储可以处理大型 QVD 文件。然而，在使用大文件时，Qlik Cloud 与 Qlik Sense Enterprise on Windows 相比，架构方面的考量有所不同。

QVD 加载性能在 Qlik Sense Enterprise on Windows 和 Qlik Cloud 之间有所不同：

* 在 Qlik Sense Enterprise on Windows 中，Qlik 引擎直接从本地磁盘存储读取 QVD。当文件存储在本地服务器上时，加载数据时的延迟也极低。

* 在 Qlik Cloud 中，Qlik 引擎会发出网络调用，以从 Web 文件存储中读取文件内容。这会以两种方式增加加载时间。首先，通过网络从 Web 文件存储中读取会增加传输延迟，这是本地磁盘读取所能避免的。其次，合规认证（例如 SOC 2/3 和 HIPAA）所需的加密会增加处理开销。

  信息注释有关安全和合规性的更多详细信息，请参阅[在 Qlik 的信任和安全](https://www.qlik.com/us/trust)。

在 Qlik Cloud 中存储 QVD 文件时，请将文件读取和写入时间纳入您的重新加载策略。在规划您的 QVD 架构时，请考虑以下方法 Qlik Cloud：

* 保持最佳 QVD 大小

* 优化 QVD 加载操作

有关使用 QVD 文件的更多信息，请参阅：

* [使用 QVD 文件](https://help.qlik.com/zh-CN/cloud-services/Content/Sense_Hub/Scripting/work-with-QVD-files.htm)

提示注释

要了解有关 QVD 性能的更多信息，请参阅以下 Qlik 学习课程：

* [QVD 性能基础](https://learning.qlik.com/student/path/3561896-qvd-performance-foundations-on-premises-versus-qlik-cloud) (Free)

* [QVD 性能要点](https://learning.qlik.com/student/path/3564238-qvd-performance-essentials-on-premises-versus-qlik-cloud) (仅限订阅)

## 保持最佳 QVD 大小

虽然 Qlik Cloud 可以处理大型文件，但请保持您的QVD文件足够小，以满足您的性能要求。没有固定的目标大小，因此请验证性能作为数据设计的一部分，并进一步优化以满足您的需求。以下方法可以帮助您的 QVD 文件保持在最佳大小范围内，以便及时加载。

有关使用大量数据优化应用程序性能的更多信息，请参阅：

* [大数据量](https://help.qlik.com/zh-CN/cloud-services/Content/Sense_Hub/Apps/app-performance.htm#LargeData)

### 细分您的数据

通过按自然维度（例如：）对数据进行分段，来减小单个文件的大小。

* 时间范围：按时间范围（例如年份或月份）对数据进行分段。例如，您可以将包含所有数据的 QVD 拆分为两个 QVD：

  * 包含最近两年数据的 QVD。

  * 一个包含两年以上历史数据的 QVD。

* 类别：按逻辑类别（例如）细分数据：

  * 国家或地区。

  * 产品组。

  * 部门。

  例如，您可以将包含所有数据的 QVD 按国家/地区或二级行政区域（例如州或省）进行拆分。

* 聚合级别：将您的数据聚合到更高的级别以创建更小的数据集。例如：

  * 将每日数据汇总为每月摘要。

  * 将个人客户数据汇总为区域摘要。

### 降低数据的基数

降低 QVD 文件中数据的基数可以提高压缩率并减小 QVD 文件大小。请考虑以下方法：

* 四舍五入：当具有分析意义时，对高基数数值进行四舍五入。这减少了唯一值的数量，从而导致更小的数据集和更快的符号表处理。

* 拆分时间戳：将时间戳字段拆分为独立的日期和时间字段。这显著降低了基数，并提高了压缩率。

* 优化文本字段：文本字段可能具有高基数，特别是包含长描述的字段。为了优化您的 QVD 文件，请避免在多个 QVD 文件中包含这些文本字段。将它们移动到专用的QVD文件中，以保持主数据QVD文件精简。如果单个文本 QVD 仍然性能不佳，请进一步分段。

### 审查 QVD 层策略

QVD 文件可能会随着时间增长，并且可能不再针对其原始用例进行优化。审阅您的层策略，并确定您是否可以采用更精细的结构。使用更多、更小的文件可以限制文件加载的影响。

例如，按年份将销售数据拆分为 QVD 可以加快重新加载时间，并使应用程序在只需要最近几年数据点时读取更少的数据。

有关构建和存储 QVD 层级的更多信息，请参阅：

* [通过增量加载加载新记录和更新记录](https://help.qlik.com/zh-CN/cloud-services/Content/Sense_Hub/LoadData/use-QVD-files-incremental-load.htm)

## 优化 QVD 加载操作

在Qlik Cloud中从 QVD 文件加载数据时，请优化您的加载操作。以下方法有助于减少读取 QVD 文件时的加载时间。

### 最小化存储读取

避免在单个加载脚本中多次加载相同的 QVD 文件。为了减少开销，请将数据一次性加载到临时表中，并通过 RESIDENT 加载重新利用它。

有关数据加载和驻留表的更多信息，请参阅：

* [Qlik Sense 中的数据加载](https://help.qlik.com/zh-CN/cloud-services/Content/Sense_Hub/Scripting/data-loading.htm)

### 利用优化的负载

对于未优化的场景，例如具有复杂 WHERE 子句的加载或数据转换，请考虑首先以其优化格式将 QVD 加载到临时表中。然后，您可以通过驻留加载将必要的处理和筛选操作执行到您的最终目标表，从而将处理负担从加载QVD转移到引擎内存。

有关优化和标准 QVD 加载模式的更多信息，请参阅：

* [QVD 文件](https://help.qlik.com/zh-CN/cloud-services/Content/Sense_Hub/Scripting/QVD-files-scripting.htm)

## 备用文件存储解决方案

如果将 QVD 存储在 Qlik Cloud 中的治理开销导致读写性能问题，请考虑测试具有可配置安全级别选项的其他文件存储解决方案。

警告注释Qlik 无法就替代文件存储提供具体建议。在任何公共基于云的存储位置存储业务数据时，请考虑本地 IT 安全策略。

对于 Qlik Cloud-支持的文件存储解决方案，请参阅 [Qlik Web 存储提供程序连接器](https://help.qlik.com/en-US/connectors/Subsystems/Web_Storage_Provider_Connectors_help/Content/Connectors_StorageProvider/Introduction/Web-Storage-Provider-Connectors-Introduction.htm) （仅提供英文版本）。为了最大程度地减少延迟问题，请确保您的备用文件存储解决方案尽可能靠近您的Qlik Cloud区域的租户。

有关管理数据文件的更多信息，请参阅：

* [管理数据文件](https://help.qlik.com/zh-CN/cloud-services/Content/Sense_Hub/Spaces/manage-data-files-spaces.htm)

* [管理租户和分析管理员的数据文件](https://help.qlik.com/zh-CN/cloud-services/Content/Sense_Hub/Admin/mc-administer-data-files.htm)