书籍详情
GeoMesa时空数据管理
作者:刘钧文、梁超、俞自生
出版社:人民邮电出版社
出版时间:2023-06-01
ISBN:9787115609830
定价:¥79.90
购买这本书可以去
内容简介
这是一本专门为智慧城市开发和管理人员打造的GeoMesa学习图书。本书的重点不仅包括宏观的行业环境,还包括对GeoMesa内部原理的剖析,力图帮助读者搭建GeoMesa以及时空数据高效管理的完整知识体系和技能树。本书首先从GeoMesa的历史及上手教程入手。然后,为了加强读者对入门代码中内容的理解,本书对GeoTools的基本概念进行介绍。接着,为了进一步引导读者对时空数据管理建立认知,本书详细阐述GeoMesa核心的时空索引。除了理论方面的介绍,本书还介绍GeoMesa数据写入、数据查询、数据统计、数据分析、数据工作流以及数据存储方案的使用方法和原理,以及GeoMesa对分布式计算的扩展。后,作者针对实际操作时遇到的典型问题,给出详细的解决方案。
作者简介
刘钧文 哈尔滨工业大学建筑学硕士,科技算法研究员,中国计算机学会(CCF)会员。负责时空数据引擎的开发和时空数据产品的研发工作。研究兴趣包括:时空数据的管理、时空数据库、数据库优化器的原理及其实现、分布式计算以及城市计算。 梁超 人文地理与城乡规划专业,广东国地资源与环境研究院研究员,中国计算机学会(CCF会员)。擅长机器学习与GIS空间分析。研究兴趣包括:城市大数据与机器学习、时空数据挖掘以及城市计算。 俞自生 西安电子科技大学计算机本硕,中国计算机学会(CCF)会员,城市算法研究员,主要参与时空数据引擎的设计与开发,以及时空算法落地与实现等工作,研究兴趣包括:城市计算、时空数据管理与分析、分布式数据库以及复杂网络等。
目录
第 1章 GeoMesa的前世今生 1
1.1 时空数据背景 1
1.1.1 时空数据简介 1
1.1.2 时空数据处理过程 2
1.1.3 时空数据库的产生 3
1.2 传统时空数据库的瓶颈 4
1.2.1 无法支持海量数据 4
1.2.2 无法进行弹性扩展 5
1.2.3 流式数据的支持受限 5
1.2.4 改造成本较高 5
1.3 GeoMesa概述 5
1.3.1 GeoMesa横空出世 5
1.3.2 GeoMesa设计思想 6
1.3.3 GeoMesa核心特性 8
1.4 GeoMesa生态圈 9
1.4.1 GeoMesa支持的第三方组件 9
1.4.2 使用GeoMesa的产品 10
1.5 本章小结 10
第 2章 GeoMesa上手教程 11
2.1 下载、安装以及配置 12
2.1.1 下载和安装 12
2.1.2 GeoMesa-HBase的配置 13
2.2 通过命令行使用GeoMesa-HBase 16
2.2.1 环境和状态命令 16
2.2.2 数据模式相关命令 17
2.2.3 数据编辑命令 20
2.2.4 查询导出命令 21
2.2.5 分析命令 23
2.2.6 定义SimpleFeatureType 25
2.2.7 日志异常处理 25
2.2.8 GeoMesa Scala控制台 26
2.2.9 GeoTools 命令行工具 28
2.3 快速入门 30
2.4 通过Java API使用GeoMesa-HBase 33
2.4.1 Maven的配置与使用 33
2.4.2 Java API的使用示例 33
2.5 本章小结 35
第3章 GeoTools基本概念 36
3.1 空间矢量数据概述 36
3.1.1 矢量数据简介 36
3.1.2 OpenGIS规范 37
3.1.3 GeoTools概述 38
3.2 DataStore 40
3.2.1 DataStore简介 40
3.2.2 DataStore使用 40
3.3 SimpleFeatureType 41
3.3.1 SimpleFeatureType概念 42
3.3.2 SimpleFeatureType使用 43
3.4 SimpleFeature 44
3.4.1 SimpleFeature概念 44
3.4.2 SimpleFeature使用 45
3.5 GeoTools的内部逻辑 45
3.5.1 获取DataStore实例 46
3.5.2 创建Schema 46
3.5.3 数据写入 47
3.5.4 数据读取 50
3.6 本章小结 51
第4章 GeoMesa的时空索引 52
4.1 时空索引概述 52
4.1.1 索引的基础知识 53
4.1.2 传统的空间索引 54
4.1.3 空间填充曲线 56
4.1.4 Google S2索引与Uber H3索引 64
4.2 GeoMesa的索引实现 66
4.2.1 GeoMesa中索引的类型 66
4.2.2 GeoMesa索引具体的使用方法 67
4.3 GeoMesa的索引查询 69
4.3.1 条件分解 69
4.3.2 索引选择 70
4.4 GeoMesa的索引配置 72
4.4.1 配置FeatureID编码方式 72
4.4.2 配置Geometry序列化 72
4.4.3 配置列族 73
4.4.4 自定义创建索引 74
4.4.5 配置“Z”索引分片个数 74
4.4.6 配置“Z”索引时间间隔 74
4.4.7 配置“XZ”索引精度 75
4.4.8 配置ATTR索引分片个数 75
4.4.9 配置ATTR字段基数 75
4.4.10 配置索引分区 76
4.4.11 配置索引拆分策略 76
4.4.12 配置查询拦截器 76
4.4.13 配置统计缓存 77
4.4.14 配置时间优先级 77
4.4.15 配置混合几何类型 78
4.5 本章小结 78
第5章 数据写入 79
5.1 数据写入概述 79
5.1.1 数据写入流程 79
5.1.2 使用示例 80
5.2 生成ID信息 82
5.2.1 用户指定 82
5.2.2 随机生成 82
5.3 获取写入对象 84
5.3.1 写入表的对象 84
5.3.2 写入分区表的对象 85
5.4 写入存储引擎 87
5.4.1 获取转换器 88
5.4.2 构建索引 89
5.4.3 数据写入 92
5.5 更新统计信息 94
5.5.1 构造统计查询条件 94
5.5.2 执行统计操作 97
5.6 数据组织方式 98
5.6.1 元数据管理 98
5.6.2 实体数据管理 99
5.7 本章小结 100
第6章 数据查询 101
6.1 数据查询概述 101
6.2 查询准备 102
6.2.1 获取对应的DataStore对象 102
6.2.2 获取SimpleFeatureType信息 104
6.2.3 查询校验 105
6.3 查询计划生成 106
6.3.1 准备查询计划 106
6.3.2 结合索引生成查询范围 110
6.3.3 获取底层表信息 114
6.3.4 构造存储引擎查询信息 115
6.4 执行并获取数据 119
6.4.1 执行查询 120
6.4.2 获取数据 120
6.5 本章小结 122
第7章 数据统计 123
7.1 数据统计概述 123
7.2 统计功能 124
7.3 统计信息获取方法 125
7.3.1 通过Hints来获取统计信息 125
7.3.2 通过接口来获取统计信息 126
7.4 执行流程 127
7.4.1 流程概述 127
7.4.2 命令解析 128
7.4.3 执行统计 129
7.4.4 统计信息的序列化和反序列化过程 130
7.5 本章小结 136
第8章 数据分析 137
8.1 空间数据分析 137
8.1.1 空间数据分析概述 137
8.1.2 GeoMesa中对空间数据分析操作 139
8.2 热力图分析操作 140
8.2.1 热力图分析概述 140
8.2.2 GeoMesa中热力图分析功能的使用方法 141
8.3 KNN查询操作 143
8.3.1 KNN概述 143
8.3.2 GeoMesa中KNN查询功能的使用方法 145
8.4 近似查询操作 146
8.4.1 近似查询概述 147
8.4.2 GeoMesa中近似查询功能的使用方法 148
8.5 本章小结 149
第9章 数据工作流 150
9.1 数据工作流概述 150
9.2 NiFi概述 151
9.2.1 NiFi简介 151
9.2.2 NiFi的特性 153
9.2.3 Processor机制 153
9.3 GeoMesa与NiFi整合 154
9.3.1 NiFi自定义数据处理器 155
9.3.2 GeoMesa扩展结构 160
9.4 GeoMesa NiFi数据处理算子 160
9.4.1 转换器处理器 160
9.4.2 记录处理器 161
9.4.3 Avro 处理器 162
9.4.4 记录更新处理器 162
9.4.5 数据源处理器 163
9.4.6 转换处理器 164
9.5 本章小结 164
第 10章 GeoMesa的数据存储方案 165
10.1 使用HBase存储数据 165
10.1.1 HBase概述 165
10.1.2 GeoMesaHBase DataStore简介 166
10.2 使用Kafka存储数据 168
10.2.1 Kafka概述 168
10.2.2 GeoMesa Kafka DataStore简介 169
10.3 使用Redis存储数据 172
10.3.1 Redis概述 172
10.3.2 GeoMesa Redis DataStore简介 172
10.4 使用CQEngine存储数据 174
10.4.1 CQEngine概述 174
10.4.2 GeoMesa CQEngine DataStore简介 174
10.5 使用FileSystem存储数据 176
10.5.1 FileSystem概述 176
10.5.2 GeoMesa FSDS简介 176
10.6 使用Lambda存储数据 181
10.6.1 Lambda概述 181
10.6.2 GeoMesa Lambda DataStore简介 182
10.7 本章小结 184
第 11章 分布式计算 185
11.1 Spark和Spark SQL 185
11.1.1 Spark概述 185
11.1.2 Spark SQL概述 186
11.2 GeoMesa接入Spark的方式 188
11.2.1 GeoMesa Spark整体架构 188
11.2.2 GeoMesa对RDD的扩展 189
11.2.3 GeoMesa对JTS的扩展 192
11.2.4 GeoMesa对Spark SQL空间能力的扩展 196
11.3 空间数据计算函数 207
11.3.1 空间数据构建函数 207
11.3.2 空间数据信息抽取函数 208
11.3.3 空间数据转换函数 208
11.3.4 空间数据输出函数 209
11.3.5 空间数据关系函数 209
11.3.6 空间数据处理函数 210
11.4 本章小结 210
第 12章 操作时遇到的若干问题 211
12.1 GeoMesa写入数据时出现的问题 211
12.1.1 Region繁忙的问题 211
12.1.2 数据记录过大的问题 216
12.2 GeoMesa查询数据时出现的问题 218
12.2.1 数据采样的问题 219
12.2.2 数据分页的问题 221
12.2.3 利用Spark查询GeoMesa时,无法设置返回数据量上限的问题 225
12.2.4 查询时数据不一致的问题 230
12.3 GeoMesa分析统计时出现的问题 233
12.4 本章小结 237
参考文献 238
1.1 时空数据背景 1
1.1.1 时空数据简介 1
1.1.2 时空数据处理过程 2
1.1.3 时空数据库的产生 3
1.2 传统时空数据库的瓶颈 4
1.2.1 无法支持海量数据 4
1.2.2 无法进行弹性扩展 5
1.2.3 流式数据的支持受限 5
1.2.4 改造成本较高 5
1.3 GeoMesa概述 5
1.3.1 GeoMesa横空出世 5
1.3.2 GeoMesa设计思想 6
1.3.3 GeoMesa核心特性 8
1.4 GeoMesa生态圈 9
1.4.1 GeoMesa支持的第三方组件 9
1.4.2 使用GeoMesa的产品 10
1.5 本章小结 10
第 2章 GeoMesa上手教程 11
2.1 下载、安装以及配置 12
2.1.1 下载和安装 12
2.1.2 GeoMesa-HBase的配置 13
2.2 通过命令行使用GeoMesa-HBase 16
2.2.1 环境和状态命令 16
2.2.2 数据模式相关命令 17
2.2.3 数据编辑命令 20
2.2.4 查询导出命令 21
2.2.5 分析命令 23
2.2.6 定义SimpleFeatureType 25
2.2.7 日志异常处理 25
2.2.8 GeoMesa Scala控制台 26
2.2.9 GeoTools 命令行工具 28
2.3 快速入门 30
2.4 通过Java API使用GeoMesa-HBase 33
2.4.1 Maven的配置与使用 33
2.4.2 Java API的使用示例 33
2.5 本章小结 35
第3章 GeoTools基本概念 36
3.1 空间矢量数据概述 36
3.1.1 矢量数据简介 36
3.1.2 OpenGIS规范 37
3.1.3 GeoTools概述 38
3.2 DataStore 40
3.2.1 DataStore简介 40
3.2.2 DataStore使用 40
3.3 SimpleFeatureType 41
3.3.1 SimpleFeatureType概念 42
3.3.2 SimpleFeatureType使用 43
3.4 SimpleFeature 44
3.4.1 SimpleFeature概念 44
3.4.2 SimpleFeature使用 45
3.5 GeoTools的内部逻辑 45
3.5.1 获取DataStore实例 46
3.5.2 创建Schema 46
3.5.3 数据写入 47
3.5.4 数据读取 50
3.6 本章小结 51
第4章 GeoMesa的时空索引 52
4.1 时空索引概述 52
4.1.1 索引的基础知识 53
4.1.2 传统的空间索引 54
4.1.3 空间填充曲线 56
4.1.4 Google S2索引与Uber H3索引 64
4.2 GeoMesa的索引实现 66
4.2.1 GeoMesa中索引的类型 66
4.2.2 GeoMesa索引具体的使用方法 67
4.3 GeoMesa的索引查询 69
4.3.1 条件分解 69
4.3.2 索引选择 70
4.4 GeoMesa的索引配置 72
4.4.1 配置FeatureID编码方式 72
4.4.2 配置Geometry序列化 72
4.4.3 配置列族 73
4.4.4 自定义创建索引 74
4.4.5 配置“Z”索引分片个数 74
4.4.6 配置“Z”索引时间间隔 74
4.4.7 配置“XZ”索引精度 75
4.4.8 配置ATTR索引分片个数 75
4.4.9 配置ATTR字段基数 75
4.4.10 配置索引分区 76
4.4.11 配置索引拆分策略 76
4.4.12 配置查询拦截器 76
4.4.13 配置统计缓存 77
4.4.14 配置时间优先级 77
4.4.15 配置混合几何类型 78
4.5 本章小结 78
第5章 数据写入 79
5.1 数据写入概述 79
5.1.1 数据写入流程 79
5.1.2 使用示例 80
5.2 生成ID信息 82
5.2.1 用户指定 82
5.2.2 随机生成 82
5.3 获取写入对象 84
5.3.1 写入表的对象 84
5.3.2 写入分区表的对象 85
5.4 写入存储引擎 87
5.4.1 获取转换器 88
5.4.2 构建索引 89
5.4.3 数据写入 92
5.5 更新统计信息 94
5.5.1 构造统计查询条件 94
5.5.2 执行统计操作 97
5.6 数据组织方式 98
5.6.1 元数据管理 98
5.6.2 实体数据管理 99
5.7 本章小结 100
第6章 数据查询 101
6.1 数据查询概述 101
6.2 查询准备 102
6.2.1 获取对应的DataStore对象 102
6.2.2 获取SimpleFeatureType信息 104
6.2.3 查询校验 105
6.3 查询计划生成 106
6.3.1 准备查询计划 106
6.3.2 结合索引生成查询范围 110
6.3.3 获取底层表信息 114
6.3.4 构造存储引擎查询信息 115
6.4 执行并获取数据 119
6.4.1 执行查询 120
6.4.2 获取数据 120
6.5 本章小结 122
第7章 数据统计 123
7.1 数据统计概述 123
7.2 统计功能 124
7.3 统计信息获取方法 125
7.3.1 通过Hints来获取统计信息 125
7.3.2 通过接口来获取统计信息 126
7.4 执行流程 127
7.4.1 流程概述 127
7.4.2 命令解析 128
7.4.3 执行统计 129
7.4.4 统计信息的序列化和反序列化过程 130
7.5 本章小结 136
第8章 数据分析 137
8.1 空间数据分析 137
8.1.1 空间数据分析概述 137
8.1.2 GeoMesa中对空间数据分析操作 139
8.2 热力图分析操作 140
8.2.1 热力图分析概述 140
8.2.2 GeoMesa中热力图分析功能的使用方法 141
8.3 KNN查询操作 143
8.3.1 KNN概述 143
8.3.2 GeoMesa中KNN查询功能的使用方法 145
8.4 近似查询操作 146
8.4.1 近似查询概述 147
8.4.2 GeoMesa中近似查询功能的使用方法 148
8.5 本章小结 149
第9章 数据工作流 150
9.1 数据工作流概述 150
9.2 NiFi概述 151
9.2.1 NiFi简介 151
9.2.2 NiFi的特性 153
9.2.3 Processor机制 153
9.3 GeoMesa与NiFi整合 154
9.3.1 NiFi自定义数据处理器 155
9.3.2 GeoMesa扩展结构 160
9.4 GeoMesa NiFi数据处理算子 160
9.4.1 转换器处理器 160
9.4.2 记录处理器 161
9.4.3 Avro 处理器 162
9.4.4 记录更新处理器 162
9.4.5 数据源处理器 163
9.4.6 转换处理器 164
9.5 本章小结 164
第 10章 GeoMesa的数据存储方案 165
10.1 使用HBase存储数据 165
10.1.1 HBase概述 165
10.1.2 GeoMesaHBase DataStore简介 166
10.2 使用Kafka存储数据 168
10.2.1 Kafka概述 168
10.2.2 GeoMesa Kafka DataStore简介 169
10.3 使用Redis存储数据 172
10.3.1 Redis概述 172
10.3.2 GeoMesa Redis DataStore简介 172
10.4 使用CQEngine存储数据 174
10.4.1 CQEngine概述 174
10.4.2 GeoMesa CQEngine DataStore简介 174
10.5 使用FileSystem存储数据 176
10.5.1 FileSystem概述 176
10.5.2 GeoMesa FSDS简介 176
10.6 使用Lambda存储数据 181
10.6.1 Lambda概述 181
10.6.2 GeoMesa Lambda DataStore简介 182
10.7 本章小结 184
第 11章 分布式计算 185
11.1 Spark和Spark SQL 185
11.1.1 Spark概述 185
11.1.2 Spark SQL概述 186
11.2 GeoMesa接入Spark的方式 188
11.2.1 GeoMesa Spark整体架构 188
11.2.2 GeoMesa对RDD的扩展 189
11.2.3 GeoMesa对JTS的扩展 192
11.2.4 GeoMesa对Spark SQL空间能力的扩展 196
11.3 空间数据计算函数 207
11.3.1 空间数据构建函数 207
11.3.2 空间数据信息抽取函数 208
11.3.3 空间数据转换函数 208
11.3.4 空间数据输出函数 209
11.3.5 空间数据关系函数 209
11.3.6 空间数据处理函数 210
11.4 本章小结 210
第 12章 操作时遇到的若干问题 211
12.1 GeoMesa写入数据时出现的问题 211
12.1.1 Region繁忙的问题 211
12.1.2 数据记录过大的问题 216
12.2 GeoMesa查询数据时出现的问题 218
12.2.1 数据采样的问题 219
12.2.2 数据分页的问题 221
12.2.3 利用Spark查询GeoMesa时,无法设置返回数据量上限的问题 225
12.2.4 查询时数据不一致的问题 230
12.3 GeoMesa分析统计时出现的问题 233
12.4 本章小结 237
参考文献 238
猜您喜欢