ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

为什么可变性对于实时数据分析至关重要

2022-10-31 16:09:47  阅读:279  来源: 互联网

标签:函数 网站 数据 清晰度 工作 解决方案


可变数据和不可变数据之间的差异

在我们讨论为什么可变性是实时分析的关键之前,了解它是什么很重要。

可变数据是存储在表记录中的数据,可以使用较新的数据擦除或更新。例如,在员工地址数据库中,假设每条记录都有人员的姓名及其当前居住地址。如果员工将住所从一个地方搬到另一个地方,则当前地址信息将被覆盖。

传统上,这些信息将存储在事务数据库中 - Oracle Database,MySQL,PostgreSQL等 - 因为它们允许可变性:存储在这些事务数据库中的任何字段都是可更新的。对于当今的实时分析,我们需要可变性还有许多其他原因,包括数据扩充和回填数据。

不可变数据正好相反——它不能被删除或修改。更新不是覆盖现有记录,而是仅追加。这意味着更新入到不同的位置,或者您被迫重写新旧数据以正确存储它。稍后会详细介绍其缺点。不可变数据存储在某些分析方案中非常有用。

不变性的历史用处

数据仓库普及了不变性,因为它简化了可扩展性,尤其是在分布式系统中。通过在 RAM 或 SSD 中缓存频繁访问的只读数据,可以加速分析查询。如果缓存的数据是可变的并且可能发生变化,则必须根据原始源不断检查它,以避免过时或错误。这将增加数据仓库的操作复杂性;另一方面,不可变的数据不会造成这样的麻烦。

不变性还降低了意外删除数据的风险,这在某些用例中是一个显着的好处。记录医疗保健和患者健康记录。像新的医疗处方这样的东西将被添加,而不是写在现有或过期的处方上,这样你总是有一个完整的病史。

最近,公司试图将Kafka和Kinesis等流发布系统与不可变的数据仓库配对进行分析。事件系统捕获物联网和 Web 事件,并将其存储为日志文件。这些流日志系统很难查询,因此通常会将所有数据从日志发送到不可变的数据系统(如 Apache Druid)以执行批处理分析。

数据仓库会将新流式处理的事件追加到现有表。由于过去的事件在理论上不会改变,因此一成不变地存储数据似乎是正确的技术决策。虽然不可变数据仓库只能按顺序写入数据,但它确实支持随机数据读取。这使得分析业务应用程序能够随时随地高效地查询数据。

不可变数据的问题

当然,用户很快发现,由于许多原因,数据确实需要更新。对于事件流尤其如此,因为多个事件可以反映真实对象的真实状态。此外,网络问题或软件崩溃可能会导致数据延迟交付。延迟到达的事件需要重新加载或回填。

公司也开始接受数据丰富,将相关数据添加到现有表中。最后,公司开始不得不删除客户数据,以满足GDPR等消费者隐私法规及其“被遗忘权”。

标签:函数,网站,数据,清晰度,工作,解决方案
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有