《大数据系统构建:可扩展实时数据系统构建原理与最佳实践》一2.3 图模式

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介:

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

2.3 图模式

基于事实的模型中的每个事实都捕捉了一段信息。但事实本身不能表达数据背后的结构。也就是说,数据集中没有包含事实类型的描述,也没有它们之间关系的任何解释。本节将介绍图模式—图捕获使用基于事实的模型进行存储的数据集的结构。我们将讨论图模式的元素,以及使得一个模式可实施的需要。
让我们首先将FaceSpace的事实构建成一个图。

2.3.1 图模式的元素

2.2节详细讨论了FaceSpace事实。每个事实都代表一条用户信息或两个用户之间的关系。图2-16描述了一个图模式,用以表示FaceSpace事实之间的关系,针对用户、他们的个人信息和他们之间的关系,它提供了一个有用的可视化。


2a5d3a0519bcff60e64d7d5a532b0832abf86367



图2-16 可视化FaceSpace事实之间的关系
该图强调了图模式的三个核心组件—节点、边和属性:
节点是系统中的实体。在这个例子中,节点是FaceSpace用户,由用户ID表示。再如,如果FaceSpace允许用户将自己看作一边是节点之间的关系。在FaceSpace中,边的含义是显而易见的—用户之间的边代表了FaceSpace朋友关系。以后你可以在用户之间添加额外的边类型,用以标识同事、家人或同学。
属性是关于实体的信息。在这个例子中,年龄、性别、位置和所有其他个人信息都是属性。
节点之间的边是严格的:尽管在图2-16中,属性和节点看起来是连接的,但这些线不是边。它们只是用于辅助说明用户及其个人信息之间的关系。我们用实线代表边、虚线代表属性连接,来表示它们之间的不同。
图模式对数据集包含的所有数据提供了一个完整的描述。接下来将讨论确保数据集内的所有事实都严格遵循该模式的必要性。

2.3.2 可实施模式的必要性

这时,信息被存储为事实,并且用图模式描述了数据集包含的事实的类型。你觉得都准备好了,是吗?不,你还需要确定以什么格式存储事实数据。
一种方法是使用半结构化的文本格式,比如JSON。这种格式可实现简单性和灵活性,基本上允许将任何数据写入主数据集,但在这种情况下,对我们的需求来说有点过于灵活了。
为了说明这个问题,假设你选择使用JSON来表示Tom的年龄:

这对于单个事实的表示是没有问题的,但没有办法确保所有随后的事实都遵循相同的格式。由于人为错误,数据集也可能包含这样的事实:

这些例子都是有效的JSON,但它们格式不一致或丢失了数据。尤其是,2.2节强调了每个事实有一个时间戳的重要性,但文本格式不能执行此要求。为了有效地使用数据,你必须为数据集的内容提供保障。
另一种方法是使用一个可实施的模式来严格定义事实的结构。可实施的模式预先需要做更多的工作,但是它们保证所有必需的字段都存在,并确保所有值是预期的类型。有了这些保证,开发人员将对他们期待的数据充满自信—每个事实都有一个时间戳,用户的名字永远是一个字符串,等等。关键之处在于,当创建一块数据发生错误时,可实施的模式会即刻给出错误提示,而不是稍后有人试图在不同的系统中使用数据时才发现错误。错误越早暴露为bug,就越容易捕捉和修复。
在第3章中,你将看到如何使用序列化框架来实现一个可实施的模式。序列化框架提供了一种与语言无关的方式来定义模式中的节点、边和属性,然后生成代码(可能以很多不同的语言),用来序列化和反序列化模式中的对象,这样它们就可以存储到主数据集并被检索到。
此时你可能很想知道细节,不要担心—最好的学习方式是实践。在2.4节中,我们将在SuperWebAnalytics.com实体中设计基于事实的模型,并在第3章中使用序列化框架来实现它。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
2月前
|
消息中间件 分布式计算 大数据
大数据-166 Apache Kylin Cube 流式构建 整体流程详细记录
大数据-166 Apache Kylin Cube 流式构建 整体流程详细记录
81 5
|
2月前
|
存储 SQL 分布式计算
大数据-162 Apache Kylin 全量增量Cube的构建 Segment 超详细记录 多图
大数据-162 Apache Kylin 全量增量Cube的构建 Segment 超详细记录 多图
67 3
|
7天前
|
存储 分布式计算 安全
MaxCompute Bloomfilter index 在蚂蚁安全溯源场景大规模点查询的最佳实践
MaxCompute 在11月最新版本中全新上线了 Bloomfilter index 能力,针对大规模数据点查场景,支持更细粒度的数据裁剪,减少查询过程中不必要的数据扫描,从而提高整体的查询效率和性能。
|
7天前
|
分布式计算 DataWorks 搜索推荐
DataWorks产品评测:大数据开发治理平台的最佳实践与体验
DataWorks是阿里云推出的一款大数据开发治理平台,集成了多种大数据引擎,支持数据集成、开发、分析和任务调度。本文通过用户画像分析的最佳实践,评测了DataWorks的功能和使用体验,并提出了优化建议。通过实践,DataWorks在数据整合、清洗及可视化方面表现出色,适合企业高效管理和分析数据。
55 0
|
2月前
|
Java 大数据 数据库连接
大数据-163 Apache Kylin 全量增量Cube的构建 手动触发合并 JDBC 操作 Scala
大数据-163 Apache Kylin 全量增量Cube的构建 手动触发合并 JDBC 操作 Scala
38 2
大数据-163 Apache Kylin 全量增量Cube的构建 手动触发合并 JDBC 操作 Scala
|
1月前
|
SQL 存储 算法
基于对象 - 事件模式的数据计算问题
基于对象-事件模式的数据计算是商业中最常见的数据分析任务之一。对象如用户、账号、商品等,通过唯一ID记录其相关事件,如操作日志、交易记录等。这种模式下的统计任务包括无序计算(如交易次数、通话时长)和有序计算(如漏斗分析、连续交易检测)。尽管SQL在处理无序计算时表现尚可,但在有序计算中却显得力不从心,主要原因是其对跨行记录运算的支持较弱,且大表JOIN和大结果集GROUP BY的性能较差。相比之下,SPL语言通过强化离散性和有序集合的支持,能够高效地处理这类计算任务,避免了大表JOIN和复杂的GROUP BY操作,从而显著提升了计算效率。
|
2月前
|
存储 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
44 1
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
|
2月前
|
SQL 存储 算法
基于对象 - 事件模式的数据计算问题
基于对象-事件模式的数据计算是商业中最常见的数据分析任务之一。这种模式涉及对象(如用户、账户、商品等)及其相关的事件记录,通过这些事件数据可以进行各种统计分析,如漏斗分析、交易次数统计等。然而,SQL 在处理这类任务时表现不佳,特别是在有序计算方面。SPL 作为一种强化离散性和有序集合的语言,能够高效地处理这类计算,避免了大表 JOIN 和大结果集 GROUP BY 的性能瓶颈。通过按 ID 排序和分步计算,SPL 能够显著提高计算效率,并支持实时数据处理。
|
2月前
|
分布式计算 大数据 分布式数据库
大数据-158 Apache Kylin 安装配置详解 集群模式启动(一)
大数据-158 Apache Kylin 安装配置详解 集群模式启动(一)
55 5
|
2月前
|
SQL 分布式计算 大数据
大数据-160 Apache Kylin 构建Cube 按照日期构建Cube 详细记录
大数据-160 Apache Kylin 构建Cube 按照日期构建Cube 详细记录
50 2