不要重复数据:零拷贝 (Zero Copy)
大多数系统的工作方式是下载数据。你向服务器请求信息,服务器返回数据负载。然后你将这些数据存储在自己的系统中。
这会产生一个问题。你最终会拥有重复的数据。你可以使用一种称为“零拷贝”(Zero Copy)的原则来解决这个问题。
什么是零拷贝?
零拷贝意味着你在不移动数据的情况下访问数据。把它想象成打开一扇窗户。你通过窗户看到数据,但数据留在它原本的地方。你不需要把数据搬到家里才能查看它。
ServiceNow 如何使用它:
运营管理 (Operations Management) 需要来自 SAP、AWS 或 Snowflake 等许多地方的数据。通常,你会使用 ETL 流水线来移动这些数据。这既耗时又容易出错。
ServiceNow 则使用 Virtual Data Fabric Tables。它仅在你请求时才查询数据。系统会临时将数据保存在内存中。一旦你完成任务,数据就会消失。
优势:
• 你不会重复数据。 • 你不需要在系统之间同步数据。 • 你降低了安全风险,因为数据不会存储在第二个位置。
权衡:
• 速度:你依赖网络速度。如果源端很慢,你就得等待。 • 可用性:如果源系统宕机,你将什么也看不到。你没有本地备份。 • 负载:每个用户请求都会向源系统发送实时查询。 • 成本:频繁的 API 调用可能会变得昂贵。 • 报表:你无法对这些数据建立索引,因此难以运行复杂的报表。
何时使用零拷贝:
当移动数据的成本超过存储数据带来的收益时,请使用它。
- 敏感数据:将 PII 或 HIPAA 数据保留在一个地方以降低风险。
- 实时需求:用于 IT 故障排除,因为过时的数据毫无用处。
- 偶尔查询:用于检查单个预算数字,而不是同步整个数据库。
- 海量数据集:用于查看海量日志的摘要,而不是移动 PB 级的数据。
来源:https://dev.to/syncrofosatron/dont-repeat-data-zero-copy-1ff0
可选学习社区:https://t.me/GyaanSetuAi
