具体描述
产品特色
内容简介
本书是面对当前大数据应用、可视分析研究和应用的新形势,专门为数据科学与大数据技术、智能科学与技术、计算机、数据处理等专业本科生开设数据可视化课程而编写的一本教材。该书将教学之严谨和科研之创新有机地结合,全面诠释了大数据可视化的内涵与外延,详细介绍了大数据可视化概述、可视化的类型与模型、数据可视化基础、数据可视化的常用方法、大数据可视化的关键技术、可视化交互、大数据可视化工具、大数据可视化系统――魔镜以及大数据可视化的行业案例等内容。为了便于学习,每章都附有习题。
作者简介
中国传媒大学南广学院专职教授,高级工程师,曾率队支援2008年汶川地震的绵竹市广电的灾后重建工作,援建工作时间长达1个多月。智能科学与技术和电子信息工程专业负责人,传媒科技研究所常务副所长。主持或参与省部级科研项目6项,国家广电总局部级社科项目3项,江苏省高校自然科学研究面上项目3项、校级科研项目10多项项目,成果得到采纳应用,有力推动了行业发展。取得软件著作权1项,国家发明专利1项(合作),编写规划教材、专著7本。中国广播电影电视社会组织联合会技术工作委员会委员,江苏省广播电影电视协会监测专业委员会会员、某市政府智库专家。指导学生多次获得江苏省大学生实践创新项目立项,获得江苏省计算机设计大赛特等奖、***三等奖。作为产业导师已培养研究生十多名。作为**完成人曾获得江苏省广播电影电视局科技创新奖等,主持研发的某型数字电视机顶盒产品获省级高新技术奖。多年专注神经网络、模式识别、人工智能、数字通信、广播电视宽带网络、智慧媒体等相关研究。
目录
第1章 大数据可视化概述 1
1.1 大数据可视化的概念 1
1.1.1 科学可视化 4
1.1.2 信息可视化 5
1.1.3 数据可视化 5
1.2 数据可视化的作用与意义 5
1.2.1 数据可视化的作用 5
1.2.2 数据可视化的意义 6
1.3 数据可视化的应用领域 9
1.3.1 在“工业4.0”中的应用 9
1.3.2 在智能交通中的应用 11
1.3.3 在新一代人工智能领域的应用 16
1.3.4 在其他领域的应用 16
1.4 与相关学科的关系 19
1.4.1 与计算机图形学的关系 20
1.4.2 与计算机视觉的关系 20
1.4.3 与计算仿真的关系 20
1.4.4 与人机交互的关系 21
1.4.5 与数据库的关系 21
1.4.6 与数据分析和数据挖掘的关系 21
习题 22
参考文献 23
第2章 可视化的类型与模型 24
2.1 可视化的类型 24
2.1.1 科学可视化 24
2.1.2 信息可视化 30
2.2 可视化的模型 39
2.2.1 顺序模型 39
2.2.2 分析模型 40
2.2.3 循环模型 41
习题 43
参考文献 43
第3章 数据可视化基础 45
3.1 光与视觉特性 45
3.1.1 光的特性 45
3.1.2 三基色原理 46
3.1.3 黑白视觉特性 47
3.1.4 彩色视觉特性 52
3.2 可视化的基本特征 55
3.3 可视化流程 56
3.3.1 可视化的基本步骤 56
3.3.2 可视化的一般流程 57
3.4 可视化设计组件 60
3.4.1 可视化设计模型 60
3.4.2 可视化设计原则 60
3.4.3 可视化的数据 61
3.4.4 可视化的原材料 62
3.4.5 可视化的基本图表 62
3.5 可视化中的美学因素 64
3.6 可视化框架设计整体思路 65
3.6.1 可视化框架的构成 66
3.6.2 数据图形映射的流程 66
习题 67
参考文献 68
第4章 数据可视化的常用方法 70
4.1 视觉编码 70
4.1.1 视觉感知 71
4.1.2 视觉通道 72
4.1.3 数据分类 73
4.1.4 常用的复杂数据处理方法 74
4.2 统计图表可视化方法 74
4.2.1 柱状图 75
4.2.2 条形图 77
4.2.3 折线图 78
4.2.4 饼图 79
4.2.5 散点图 79
4.2.6 气泡图 79
4.2.7 雷达图 80
4.3 图可视化方法 80
4.3.1 图的类型 80
4.3.2 图论可视化 81
4.3.3 思维导图 81
4.4 可视化分析方法的常用算法 83
4.4.1 可视化分析方法 84
4.4.2 可视分析研究的特点 85
4.4.3 可视分析的应用实例 86
4.4.4 主成分分析 88
4.4.5 聚类分析 90
4.4.6 因子分析 91
4.4.7 层次分析法 91
4.5 可视化方法的选择 92
4.5.1 百度地图开发 93
4.5.2 城市人流走势 93
4.5.3 商圈人流对比 94
4.5.4 D3.js和Echarts选择上的建议 94
4.5.5 优秀的数据可视化作品欣赏 94
习题 95
参考文献 95
第5章 大数据可视化的关键技术 97
5.1 大数据架构 97
5.1.1 系统协调者 100
5.1.2 数据提供者 100
5.1.3 大数据应用提供者 100
5.1.4 大数据框架提供者 102
5.1.5 数据消费者 103
5.1.6 安全和隐私 103
5.1.7 管理 103
5.2 大数据核心技术 104
5.2.1 数据收集 104
5.2.2 数据预处理 104
5.2.3 数据存储 105
5.2.4 数据处理 107
5.2.5 数据分析 108
5.2.6 数据治理 110
5.3 可视化关键技术 110
5.4 大数据可视化渲染 112
5.4.1 图像相关概念 112
5.4.2 渲染技术概述 114
5.4.3 基于CPU的渲染 115
5.4.4 基于GPU的渲染 116
5.4.5 集群渲染技术 118
5.4.6 云渲染 122
习题 123
参考文献 124
第6章 可视化交互 125
6.1 可视化交互方法分类 125
6.1.1 平移+缩放技术 126
6.1.2 动态过滤技术 127
6.1.3 概览+细节技术 128
6.1.4 焦点+上下文技术 129
6.1.5 多视图关联协调技术 130
6.2 可视化交互空间 131
6.2.1 可视化交互空间查询 131
6.2.2 可视化交互空间分析 132
6.2.3 交互空间分类 133
6.3 可视化交互模型 134
6.3.1 交互式信息可视化的用户界面模型 135
6.3.2 支持信息多面体可视分析界面模型(IMFA) 138
6.3.3 交互式可视化的关联规则挖掘模型 138
6.3.4 基于Web的交互式数据可视化模型 140
6.3.5 基于交互技术的知识可视化模型 142
6.4 交互硬件与软件 145
6.4.1 交互硬件 145
6.4.2 交互软件 147
6.4.3 交互系统 148
习题 151
参考文献 152
第7章 大数据可视化工具 153
7.1 Excel 153
7.1.1 Power Map简介 153
7.1.2 Power Map的使用 153
7.1.3 数据可视化示例 155
7.2 Processing 155
7.2.1 Processing开发环境简介 156
7.2.2 Processing绘制功能 156
7.2.3 Processing应用程序的结构 158
7.2.4 数据可视化举例 159
7.3 NodeXL 161
7.3.1 NodeXL简介 161
7.3.2 系统界面 162
7.3.3 数据获取与编辑 163
7.3.4 数据可视化 163
7.3.5 图形分析与数据过滤 164
7.4 ECharts 165
7.4.1 ECharts架构及特点 165
7.4.2 基本组成 166
7.4.3 引入ECharts 167
7.4.4 图表绘制 167
7.5 Tableau 174
7.5.1 Tableau简介 175
7.5.2 Tableau的使用 175
7.5.3 Tableau数据可视化实例 178
习题 181
参考文献 182
第8章 大数据可视化系统――魔镜 183
8.1 魔镜简介 183
8.2 系统架构与技术流程 184
8.3 数据处理与分析 185
8.4 数据可视化 188
习题 193
参考文献 193
第9章 大数据可视化的行业案例 194
9.1 电商行业销售数据分析 194
9.1.1 背景分析 194
9.1.2 需求分析 194
9.1.3 大数据分析过程 194
9.1.4 分析结论 202
9.2 广告投放效果分析 202
9.2.1 背景分析 202
9.2.2 需求分析 203
9.2.3 大数据分析过程 203
9.2.4 分析结论 208
9.3 金融行业贷款数据分析 209
9.3.1 背景分析 209
9.3.2 需求分析 209
9.3.3 大数据分析过程 209
9.4 能源行业油井数据分析 223
9.4.1 背景分析 223
9.4.2 需求分析 223
9.4.3 大数据分析过程 224
习题 236
参考文献
附录A
前言/序言
《大数据可视化》的特色。本书与国内外同类书比较,最大的特点是突出大数据可视化这一艺术与科技融合的特点,教材融合数字信号处理,人的视觉特性,可视分析学、大数据可视化渲染等基本理论,展示了大数据技术概貌,构建了大数据可视化的知识逻辑,同时强调实践,具有鲜明的理论与实践并重的特色。本书强调大数据可视化的基础性原理同时,融入真实案例分析,教材具有实用性,读者通过举一反三,真正学会大数据可视化的工具,运用大数据思维,解决工作中实际问题。把握大数可视化应用的趋势,教材强调多视图整合,强调所有数据视图交互联动,除了原有的饼状图、柱形图、热图、地理信息图等数据展现方式,还可以通过图像的颜色、亮度、大小、形状、运动趋势等多种方式在一系列图形中对数据进行分析,通过交互挖掘数据之间的关联,利用数据推动决策。
《大数据可视化》的教学建议。本书共9章,内容包括大数据可视化概述、可视化的类型与模型、数据可视化基础、数据可视化的常用方法、大数据可视化的关键技术、可视化交互、大数据可视化工具、大数据可视化系统——魔镜以及大数据可视化的行业案例内容。本书可作为大学本科计算机或相关专业的三、四年级学生的数据可视化课程的教材,建议课程总学时是48个(理论32个+实践16个)。具体分配方案是:第1章至第6章每章4个学时;第7章至第9章每章2个学时,加上16个学时实践环节。学期末的2个学时安排期末的大作业答辩。授课可采用多媒体投影教学方式,辅助以大量的案例分析、视频材料和互动演示。本书的附属资料(电子课件、作业、数据、在线资源、视频和图像)将实时更新。
大数据的底层逻辑:数据采集、存储、处理与分析的体系构建 随着信息技术的飞速发展,我们正身处一个数据爆炸的时代。从社交媒体上的每一次互动,到智能设备上的每一次传感,再到企业运营中的每一次交易,海量的数据以前所未有的速度生成、流动并累积。这些数据蕴藏着巨大的价值,它们是洞察趋势、优化决策、驱动创新的关键。然而,要真正释放大数据的潜力,我们首先需要构建一个坚实、高效且可扩展的数据基础设施。本书旨在深入剖析大数据的底层逻辑,系统性地阐述数据从源头采集到最终分析的全生命周期管理,为高级大数据人才的培养奠定坚实的技术基石。 第一部分:数据采集的基石——全方位、高效率的数据获取 在信息时代的洪流中,数据是原材料。如何高效、准确、全面地采集到这些“原材料”是大数据体系构建的第一步,也是至关重要的一步。本部分将深入探讨数据采集的各个维度,从源头的多样性到技术的创新性,为读者构建一个清晰的采集蓝图。 第一章:数据源的生态多样性与识别 数据并非凭空而来,它们根植于现实世界的各种活动与载体。本章将带领读者穿越数据海洋的表层,认识并理解数据的丰富来源。我们将详细梳理各类典型数据源,包括: 结构化数据: 传统关系型数据库(如MySQL, PostgreSQL, Oracle)中的用户注册信息、交易记录、产品目录等,以及Excel、CSV等格式的表格数据。理解其严谨的模式定义、关系约束以及常见的导出和导入机制。 半结构化数据: XML、JSON格式的数据,广泛应用于Web服务、API接口、配置文件等场景。重点分析其灵活的嵌套结构、键值对表示以及解析工具(如Jackson, Gson)的应用。 非结构化数据: 文本(新闻报道、社交媒体评论、文档)、图像(照片、医疗影像)、音频(语音记录、播客)、视频(监控录像、用户生成内容)等。深入探讨其信息密度高但结构化程度低的特点,以及如何利用自然语言处理(NLP)、图像识别、语音识别等技术进行初步的特征提取和信息抽取。 流式数据: 实时生成并不断更新的数据流,如物联网设备传感器数据(温度、湿度、位置)、应用日志、金融交易流、用户点击流等。理解其时效性强、量级大、连续不断的特点。 除了数据的形态,本章还将重点关注数据源的特性分析,包括数据的时效性、完整性、准确性、一致性以及数据发布的频率和粒度,这些都将直接影响后续的采集策略和处理流程。 第二章:主流数据采集技术与方法论 了解了数据源,接下来就是如何有效地将它们“搬运”到我们的数据处理平台。本章将详细介绍业界广泛采用的数据采集技术和方法论,并根据不同场景提供最优实践。 批量数据采集(Batch Processing): ETL(Extract, Transform, Load): 详细讲解ETL的工作流程,包括数据抽取(从源系统读取数据)、数据转换(清洗、规范化、聚合、计算等)、数据加载(导入目标系统)。重点介绍常用的ETL工具(如Informatica, Talend, Kettle)的功能与应用,以及其在数据仓库建设中的核心地位。 ELT(Extract, Load, Transform): 阐述ELT模式与ETL的区别,尤其是在云数据仓库等场景下的优势,即先加载到数据湖或数据仓库,再进行转换,从而利用目标系统的计算能力。 数据同步工具: 介绍一些专门用于数据库之间、文件系统之间同步数据的工具,如Sqoop(用于Hadoop与关系型数据库之间的数据导入导出)、DistCp(Hadoop分布式文件系统之间的数据复制)。 实时数据采集(Stream Processing): 消息队列(Message Queues): 深入剖析Kafka、RabbitMQ、Pulsar等消息队列的作用,它们作为数据采集和下游处理的缓冲层,解决生产者和消费者之间的异步解耦、削峰填谷问题。重点讲解Kafka的分布式架构、高吞吐量、容错性和持久化特性。 流处理引擎: 介绍Apache Flink, Apache Storm, Spark Streaming等流处理框架,它们能够实时地接收、处理和分析数据流,实现低延迟的数据洞察。分析其工作原理、窗口机制、状态管理和容错策略。 日志采集工具: 讲解Filebeat, Fluentd, Logstash等日志收集代理,如何采集服务器、应用程序产生的日志文件,并将其传输到中央日志管理系统或消息队列。 API数据抓取: Web Scraping: 介绍使用Python库(如BeautifulSoup, Scrapy)或专门的爬虫工具从网页提取数据的方法,以及相关的法律和伦理规范。 RESTful API调用: 讲解如何通过HTTP请求调用第三方服务提供的API接口获取数据,包括请求方法(GET, POST)、参数传递、认证机制(API Key, OAuth)以及响应解析(JSON, XML)。 数据采集中的挑战与应对: 数据质量问题: 缺失值、异常值、重复数据、格式错误等,以及如何通过数据清洗、校验规则、去重算法来解决。 网络中断与数据丢失: 设计鲁棒的采集机制,如断点续传、重试机制、数据校验。 数据隐私与安全: 了解GDPR、CCPA等法规,在采集过程中进行数据脱敏、加密处理。 性能与吞吐量: 优化采集策略、使用分布式采集工具、并行处理。 第三章:数据存储的基础——海量数据的容纳与管理 采集到的海量数据需要一个稳定、可靠、高效的存储系统来容纳。本章将深入探讨大数据存储的多种模型和技术,以及如何在不同场景下选择合适的存储方案。 关系型数据库(RDBMS): 回顾传统关系型数据库的原理,了解其ACID特性,适用于结构化数据存储和事务性应用。分析其在应对海量数据时的局限性(如扩展性、成本)。 NoSQL数据库: 介绍NoSQL数据库家族的出现背景和核心优势,即“Not Only SQL”,旨在解决传统RDBMS在高并发、大数据量、多样化数据模型下的扩展性和性能瓶颈。 键值存储(Key-Value Stores): 如Redis, Memcached。讲解其简单高效的键值查找机制,常用于缓存、会话管理。 文档数据库(Document Databases): 如MongoDB, Couchbase。分析其以JSON/BSON等文档形式存储数据,灵活的模式,适合半结构化数据,如用户配置、内容管理。 列族存储(Column-Family Stores): 如HBase, Cassandra。重点讲解其按列族存储数据,适合海量、稀疏、读写密集型应用,如物联网数据、日志分析。 图数据库(Graph Databases): 如Neo4j, ArangoDB。介绍其以节点和边来表示数据之间的关系,适合社交网络、推荐系统、知识图谱等场景。 分布式文件系统(Distributed File Systems): Hadoop Distributed File System (HDFS): 深入解析HDFS的架构(NameNode, DataNode),了解其高吞吐量、容错性、可扩展性,是Hadoop生态系统的基石,适合存储PB级别的大规模数据集。 对象存储(Object Storage): 如Amazon S3, Ceph, MinIO。讲解其将数据作为对象存储,通过API接口访问,具备极高的可扩展性、持久性和成本效益,常用于数据湖、备份归档。 数据仓库(Data Warehouses): 概念与原理: 讲解数据仓库的定义,其面向主题、集成、非易失、时变的特点,以及与数据湖的区别。 OLAP(Online Analytical Processing): 介绍OLAP的查询模型,如多维分析(MOLAP, ROLAP, HOLAP),以及星型模型、雪花型模型等数据建模方法。 MPP(Massively Parallel Processing)数据仓库: 如Greenplum, Teradata, Amazon Redshift, Snowflake。分析其并行处理能力,实现高效的复杂查询。 数据湖(Data Lakes): 概念与价值: 强调数据湖作为原始数据存储库的优势,能够存储各种类型的数据(结构化、半结构化、非结构化),为后续的数据探索、机器学习提供源源不断的原材料。 数据湖架构: 结合HDFS、对象存储、Hive、Spark等技术,构建灵活、成本效益高的数据湖解决方案。 数据湖与数据仓库的协同: 探讨如何构建“数据湖仓一体”的解决方案,结合两者的优势。 存储层面的关键考虑: 数据持久化与容错: 副本机制、数据校验、备份策略。 数据访问性能: 索引、分区、缓存、数据压缩。 成本效益: 冷热数据分层存储、选择合适的存储介质。 数据生命周期管理: 数据归档、删除策略。 第二部分:数据处理的引擎——从批量到实时的计算革新 有了充足的数据和强大的存储,接下来就是如何对这些数据进行加工、转换和分析,以提取有价值的信息。本部分将聚焦大数据处理的核心技术,从传统的批量处理到前沿的实时处理,为读者揭示数据处理的强大引擎。 第四章:批处理计算的体系与框架 批处理是最常见的数据处理方式,适用于对历史数据进行周期性分析和报告。本章将深入解析批处理计算的核心概念、框架与应用。 MapReduce编程模型: 深入剖析MapReduce的原理,理解Map和Reduce两个核心操作如何将复杂的计算任务分解到分布式集群上执行。详细讲解Shuffle、Sort、Combine等中间过程,以及其在 Hadoop 生态中的地位。 Apache Spark: Spark Core: 介绍Spark的RDD(Resilient Distributed Datasets)抽象,理解其不可变、分区、容错特性。讲解Spark的内存计算优势,以及其比MapReduce更快的执行速度。 Spark SQL: 阐述Spark SQL如何通过DataFrame和Dataset API,实现结构化数据的处理,以及与Hive等数据仓库的集成。 Spark Streaming/Structured Streaming: 介绍Spark处理实时数据流的能力,理解其微批处理(Micro-batching)或事件驱动(Event-driven)的工作模式。 Spark MLlib: 概述Spark的机器学习库,如何利用Spark进行大规模机器学习模型的训练。 Apache Hive: Hive on Hadoop: 讲解Hive如何将SQL语句转换为MapReduce或Spark作业,使得非编程人员也能方便地查询HDFS上的数据。 HiveQL: 介绍Hive特有的查询语言,以及其与标准SQL的异同。 Hive的优化: 讲解分区表、分桶表、索引、压缩等技术如何提升Hive的查询性能。 其他批处理框架: Apache Flink (Batch Mode): 简单介绍Flink在批处理场景下的应用。 Dremio, Presto/Trino: 介绍这些分布式SQL查询引擎,它们能够直接查询多种数据源(包括数据湖),提供交互式分析能力。 批处理作业的调度与管理: Apache Oozie, Apache Airflow: 详细介绍工作流调度工具,如何定义、调度、监控和管理复杂的批处理作业链。 第五章:流处理计算的实时洞察 在瞬息万变的市场和环境中,实时的数据分析变得越来越重要。本章将深入探讨流处理计算的核心技术,帮助读者构建能够即时响应的智能系统。 流处理的挑战: 乱序事件、迟到事件、状态管理、 exactly-once语义的实现。 Apache Flink: 核心概念: DataStream API,事件时间(Event Time)与处理时间(Processing Time),水位线(Watermarks),窗口(Windows)操作(滚动窗口、滑动窗口、会话窗口),状态管理(Managed State),检查点(Checkpointing),保存点(Savepoints)。 Flink的优势: 强调Flink在低延迟、高吞吐量、精确一次(Exactly-Once)处理方面的领先地位,以及其在状态管理和容错方面的强大能力。 Flink SQL/Table API: 介绍Flink如何支持SQL和声明式API进行流处理,降低开发门槛。 Apache Kafka Streams: 概念与架构: 讲解Kafka Streams如何利用Kafka作为消息队列和存储,构建轻量级的流处理应用。 流处理操作: 介绍Filter, Map, Reduce, Join等流处理操作。 Apache Storm: 讲解Storm作为早期的分布式实时计算系统,其概念(Topology, Spout, Bolt)及其在特定场景下的应用。 流处理的应用场景: 实时监控与告警: 监测系统性能、网络流量、设备状态,实时触发告警。 欺诈检测: 实时分析交易行为,识别异常模式。 实时推荐: 根据用户实时行为,动态调整推荐内容。 物联网数据处理: 实时采集、分析传感器数据。 第六章:流批一体的处理模式 现代大数据处理正朝着“流批一体”的方向发展,即能够统一处理批处理和流处理任务,简化架构,提高效率。 Apache Spark Structured Streaming: 再次强调Structured Streaming如何以统一的API处理静态数据和流式数据,将流处理看作不断增长的表。 Apache Flink的统一API: 介绍Flink如何通过DataStream API和Table API/SQL统一支持批处理和流处理,实现“一次开发,处处运行”。 Delta Lake, Apache Hudi, Apache Iceberg: 介绍这些开源项目如何为数据湖带来事务性、Schema演进、ACID等特性,从而实现更可靠的流批一体数据处理。 流批一体的架构优势: 减少技术栈复杂度,便于维护;实现实时与离线分析的无缝衔接。 第七章:数据处理中的性能优化与调优 无论采用何种处理框架,性能优化都是至关重要的环节,直接影响数据处理的效率和成本。 资源管理与调度: YARN, Mesos, Kubernetes在资源分配和任务调度中的作用。 数据倾斜的诊断与解决: 分析数据倾斜的根本原因,并提供如增加Reduce数量、数据过滤、使用Broadcast Join、自定义Shuffle等多种解决方案。 并行度设置: 合理设置作业的并行度,避免资源浪费或处理瓶颈。 数据格式选择: Parquet, ORC等列式存储格式在压缩率和查询性能上的优势。 算法优化: 选择高效的算法,减少计算复杂度。 代码级优化: 优化SQL查询、Spark作业的代码实现。 监控与日志分析: 利用监控工具和日志分析,及时发现和定位性能问题。 结论: 本书围绕“大数据底层逻辑”的核心主题,系统性地介绍了数据采集、存储和处理的方方面面。从数据源的识别到采集技术的应用,从多样化的存储模型到强大的处理引擎,我们力求为读者提供一个全面、深入的学习视角。掌握这些底层逻辑,是每一位 aspiring to become an advanced big data talent 必备的基础。只有构建起坚实的数据基础设施,才能为后续的数据分析、机器学习、人工智能等高级应用提供强有力的支撑,最终挖掘出数据中蕴含的巨大价值。 本书的写作风格力求严谨、详实,旨在为读者提供 actionable insights and practical guidance,而非仅仅停留在理论层面。我们相信,通过对本书内容的深入学习和实践,读者将能够更自信地应对大数据技术栈中的各种挑战,并在各自的职业道路上取得更大的成就。