通过将 GPU 加速应用于 Kinetica 数据库,实现根据位置进行大规模分析。
在我们生活的世界中,数据正以指数级速度生成。物联网 (IoT) 系统可以跟踪数百万个传感器,每个传感器以频繁的时间间隔报告状态。这些数据集通常包含时间和位置信息,这在查看地图时可以提供非常有用的背景信息。
然而,对大型空间数据集进行分析和可视化却是一项挑战。当今的空间数据库无法用于分析如此大的数据量,它们完全无法提取和分析大型的位置感知型流式数据。
要对大型数据集进行任何形式的交互性分析,对数百万或数十亿的记录进行可视化,然后对其进行过滤和分析,您需要一个可以应对以下两个基本挑战的系统:
- 大部分数据库无法在合理的时间内执行大规模的地理空间分析。
想象一下尝试对数百万条客户购买记录进行分析,并根据距离零售店的特定的远近程度对这些记录进行汇总。这类多边形相交计算成本很高。再乘以数百万或数十亿的记录,查询一次可能需要您等待一周时间。如果您只需要操作一次,这可能不是问题,但如果您需要反复地对数据进行临时查询,这就让人难以接受。
- 很难通过网络交互地可视化大型地理空间数据集。
浏览器处理超过几千个要素就会非常吃力,而通过网络发送大量数据需要时间。向浏览器发送几千个以上的点或一千个以上的多边形时,速度将会非常缓慢。最终,会有一个阈值,即无法通过网络发送数据供浏览器整理。
GPU 加速的空间数据库
通过依靠 GPU 进行并行处理,可以应对性能挑战。Kinetica 是最快的 GPU 加速数据库,可以跨几千个 GPU 节点、多个显卡和多台计算机展开空间计算。在对大型流式地理空间-时间数据集进行高级分析,需要进行高强度计算时,Kinetica 非常有优势。
Kinetica 也非常擅长管理高速流式数据,例如,您可能从社交媒体源、移动的车辆、智能仪表和传感器获取的数据。Kinetica 集群中的每个节点都可以共享数据提取负载,由于需要的索引操作很少,数据在到达的那一刻便可供查询。
地理空间数据集要求更高。虽然任何数据库都可以将地理空间坐标作为数字存储,但需要一个独立的系统来检索这些记录、将其转换为几何对象以及对查询进行求解。该过程速度缓慢且效率低下,并且会随着数据集的增长而成为主要瓶颈。
“空间感知型数据库”内置有几何引擎,并且具有一些原生功能,可用于对地理空间数据进行过滤和处理。Kinetica 将原生地理空间功能与 GPU 加速结合在一起,从而提供一个可以处理大量地理空间数据集并可计算形状与对象之间关系的数据库,所有这些功能都集中在一个系统中。
Kinetica 提供了一组在数据库中原生运行的地理空间功能。因此,可以快速获得查询结果,具体如下:
大型数据集的地理空间可视化流程
如何通过交互来实现大型数据集的可视化的挑战仍然存在。如果您将几千个以上的点或多边形通过网络发送到映射的客户端,速度往往会非常之慢。
Kinetica 可以解决这个问题,因为其原生地理空间网络服务器可以使用 GPU 来快速动态渲染基于矢量的地图可视化。这些动态地图可视化可以与 OGC 兼容的任何网络映射 API 进行集成,从而实现与要素的交互。
Kinetica 可视化 API 提供了多个工具,可用于与这些地图上的各个点和形状进行交互,以及对其进行深入分析和探索。这些点和形状可以覆盖在来自 ESRI、Google、Bing、Mapbox 等的底图之上。
我们来探究一个 Twitter 事件的示例历史数据集,该数据集包含约 40 亿条独一无二的记录。以下屏幕截图以热图可视化形式显示所有这些推文,其中大部分集中在北美地区。所有这些点为动态渲染,所用渲染时间不到 500ms。任何内容都未提前缓存或渲染。
我们提供一些文本搜索条件来对结果进行过滤,从而进一步探索数据。
下图是在 NLP 文本过滤器应用到“organic”(有机的)一词后更新的地图结果截图。数据集出现了显著变化,所有这些发生在不到 300 毫秒的时间内。显示的结果数量从超过 40 亿个变为大约 289,000 个。
以下是数据集中洛杉矶地区的众多结果之一,通过推文文本的属性可以确认 NLP 文本搜索对结果进行了正确过滤。
Kinetica 通过 RESTful API 类型模板(从 Java、Python、C++、JavaScript、NodeJS 等中选择您偏好的类型模板)展示其各种功能,例如,地图渲染、查询功能和地理空间功能。这意味着,如果您已投资传统企业平台,可以轻松将 Kinetica 的各种功能集成到这些现有系统、应用程序和服务中。
如果您现有的应用程序或服务基于 ESRI、MapBox 或传统开源选项(例如 GeoServer),Kinetica 地图通过 OGC 兼容服务来支持开放标准。这意味着,在您的 GIS 生态系统中实时集成对数百万/十亿/万亿空间要素的 Kinetica 地图可视化就像集成单个 URL 字符串一样简单。
亲自尝试
如果想了解可以在 Kinetica 中对地理空间数据执行哪些操作,可以参考 Kinetica 演示,观看数个大型数据集的分析操作。
高级可视化选项
可视化图层还包含一些更高级的功能,其中包括颜色编码过滤功能。为了了解 Kinetica 的功能,下图显示了按推文创建年份进行排序的推文。
高级分析和机器学习技术助力地理空间数据
用户定义函数 API 是一个支持自定义代码在数据库中运行的接口,通过该接口可以进一步扩展地理空间分析。通过 UDF,几乎可以进行任何类型的分析。即使是高度自定义的地理空间运算,也不需要将数据集提取到单独的系统中进行分析,而是可以将模型引入数据中,以便“在数据库中”运行。
这就引发了各种可能 – 自定义代码甚至可以调用机器学习库(例如,TensorFlow),从而进行高级地理空间预测。因此,如果由于交通、天气或其他指标而使送货不可能按时到达,或许可以对送货进行标记。保险公司可以根据驾驶行为更好地分析最有可能肇事的驾驶员;也可以根据天气模型计算资产面临的风险。
您可以使用此数据库构建什么?
通过将实时流式查询、原生地理空间运算符和基于地图的高级可视化结合在一起,让企业可以执行以前无法或难以实现的分析。
美国邮政管理局使用交互地理空间分析来跟踪包裹、人员和路线规划。其 200,000 多台设备每分钟发送一次位置,每天捕获和分析的事件总量超过 2.5 亿。USPS 并行集群每天提供 15,000 个会话,因此,服务经理和分析人员可以立即了解其职责范围内发生的情况。
其他客户使用 Kinetica 来为基础设施、物流、客户调查等绘图。
有关详细信息,可参加 NVIDIA 和 Kinetica 即将在 10 月 5 日上午 10 点(太平洋时间)举办的网络研讨会:“Advanced Analytics and Machine Learning with Geospatial Data: A world of possibilities”(高级分析和机器学习技术助力地理空间数据:一个充满可能性的世界)。在此注册。