博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《大数据系统构建:可扩展实时数据系统构建原理与最佳实践》一第3章 大数据的数据模型:示例...
阅读量:5957 次
发布时间:2019-06-19

本文共 1048 字,大约阅读时间需要 3 分钟。

本节书摘来自华章出版社《大数据系统构建:可扩展实时数据系统构建原理与最佳实践》一书中的第3章,第3.1节,南森·马茨(Nathan Marz) [美] 詹姆斯·沃伦(JamesWarren) 著 马延辉 向 磊 魏东琦 译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

第3章

大数据的数据模型:示例

本章内容

Apache Thrift
使用Apache Thrift实现图模式
序列化框架的局限性
在第2章中,你知道了形成一个数据模型的原则—原始数据的价值、处理语义规范化和不变性的至关重要作用。你知道了图模式可以满足所有这些属性,并了解了SuperWebAnalytics.com的图模式。
本章是第一个示例章节,将使用现实世界的工具演示前一章的概念。你可以只阅读本书的理论章节,学习整个Lambda架构,但示例章节展示了将理论转换为真正代码的细微差异。在本章中,我们将使用Apache Thrift实现SuperWebAnalytics.com的数据模型—Apache Thrift是一个序列化框架。你会看到,即使在一个类似写模式的简单任务中,理想化的理论和实践中的实现之间也是有冲突的。

3.1 为什么使用序列化框架

许多开发人员都曾将原始数据写为无模式的格式,如JSON。这是有吸引力的,因为它很容易入门,但这种方法很容易会导致问题。无论是由于错误还是不同开发人员之间的误解,数据损坏会不可避免地发生。根据经验,数据损坏错误是调试起来最耗时的错误之一。

数据损坏问题很难调试,因为你很难知道损坏是如何发生的。通常只有当处理的下游出现错误时,你才会注意到这一问题—在损坏的数据已经写入很长一段时间之后。例如,由于必需字段的丢失,你可能会得到一个空指针异常。你很快就会意识到这是由一个丢失的字段引起的,但绝对不会第一时间知道数据为什么会这样。
当创建一个可实施的模式时,你会在写数据时获得错误—返回完整的关于数据如何以及为什么变得无效的上下文(类似堆栈跟踪)。此外,错误阻止了程序通过写入这些数据来损坏主数据集。
序列化框架是一种能实现可实施模式的简单途径。如果你曾使用过面向对象和静态类型语言,那么会很快熟悉序列化框架的使用方法。序列化框架可以生成任何你希望用来读、写和验证可匹配模式的对象的代码。
然而,当谈到实现全面严格的模式时,序列化框架是有局限性的。讨论完如何将序列化框架应用到SuperWebAnalytics.com数据模型之后,我们将讨论这些局限性及其解决方法。

转载地址:http://augxx.baihongyu.com/

你可能感兴趣的文章
怎么删除html中的节点标签,在lxml中如何从节点中删除标签?
查看>>
Apache2月9日邮件:Tomcat请求漏洞(Request Smuggling)
查看>>
WPF外包技术分享—WPF的MVVM架构解析(分享)
查看>>
数字签名与数字证书
查看>>
GHOST -BATCH 参数的妙用
查看>>
控制反转 (Inversion of Control, IoC)
查看>>
Catalyst 3850 Series Switch Recovery
查看>>
让Python删除window下文件
查看>>
python datetime模块的timedelta
查看>>
Spark笔记整理(二):RDD与spark核心概念名词
查看>>
定制带RAID阵列卡驱动的WINPE3.0系统
查看>>
Microsoft Office 2010 Service Pack 2
查看>>
简化的 Microsoft 安全法规遵从性管理器: 安全设置
查看>>
Python 学习笔记 - Memcached
查看>>
SharePoint 2013 的体系结构
查看>>
Linux下分析SYN flood***案例
查看>>
清明时节夜登泰山
查看>>
iOS 应用上传所需 Icon图片大小
查看>>
WebService-03-使用CXF开发服务端和客户端
查看>>
IBM AIX Shell编写遭遇错误一2
查看>>