GeoMesa 時空數據管理

劉鈞文、梁超、俞自生

  • 出版商: 人民郵電
  • 出版日期: 2023-06-01
  • 售價: $479
  • 貴賓價: 9.5$455
  • 語言: 簡體中文
  • 頁數: 237
  • ISBN: 7115609837
  • ISBN-13: 9787115609830
  • 相關分類: 地理資訊系統 Gis
  • 立即出貨

  • GeoMesa 時空數據管理-preview-1
  • GeoMesa 時空數據管理-preview-2
GeoMesa 時空數據管理-preview-1

買這商品的人也買了...

商品描述

這是一本專門為智慧城市開發和管理人員打造的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