2009年, Kinetica的未来创始人在试图找到一个现有数据库时可能会空虚,该数据库可以使位于贝尔沃堡(弗吉尼亚州)的美国陆军情报与安全司令部(INSCOM)能够实时跟踪数百万种不同信号,评估国家安全威胁。 因此,他们从头开始建立了一个新的数据库,并以大规模并行化为中心,结合GPU和CPU的强大功能来探索和可视化时空数据。 到2014年,他们吸引了其他客户,并在2016年成立了Kinetica。
该数据库的当前版本是Kinetica 7的核心,现在范围已扩展为Kinetica Active Analytics Platform。 该平台将历史和流数据分析,位置智能和机器学习结合在一个高性能,可用于云的程序包中。
作为参考客户,Kinetica除其他外还有Ovo,GSK,SoftBank,Telkomsel,Scotiabank和Caesars。 Ovo使用Kinetica进行零售个性化。 印度尼西亚无线运营商Telkomsel使用Kinetica来获取网络和订户信息。 雪佛龙最近收购的Anadarko使用Kinetica加快了油盆分析的速度,以至该公司不需要对900亿行的调查数据集进行下采样以进行3D可视化和分析。
通常将Kinetica与其他GPU数据库进行比较,例如OmniSci ,Brytlyt,SQream DB和BlazingDB。 但是,据该公司称,它们通常会与范围更广的解决方案竞争,从定制的SMACK(Spark,Mesos,Akka,Cassandra和Kafka)堆栈解决方案到更传统的分布式数据处理和数据仓库平台。
Kinetica的主要功能和架构
Kinetica将其分布式,内存中,GPU加速的数据库与流分析,位置智能和机器学习相结合。 该数据库是矢量化的,列式的,内存优先的,并且设计用于分析(OLAP)工作负载,可自动在CPU和GPU之间分配任何工作负载。 Kinetica使用SQL-92作为查询语言,非常类似于PostgreSQL和MySQL,并支持扩展的功能范围,包括文本搜索,时间序列分析,位置智能和图形分析。
Kinetica可以通过跨GPU内存,系统内存,磁盘或SSD,HDFS和云存储(如Amazon S3)智能管理数据来对整个数据集进行操作。 据该公司称,这种管理所有存储层的能力是Kinetica在GPU数据库中独有的。
凭借其分布式并行摄取功能,Kinetica可以对流数据集(使用Kafka )进行高速摄取,并同时对流数据和历史数据进行复杂的分析。 您可以直接在Kinetica中针对数据训练TensorFlow模型,或导入经过预先训练的TensorFlow或“黑匣子”模型,以通过批处理,流处理或公共Web服务执行推理。
Kinetica具有强大且GPU加速的地理空间库,可以执行按需过滤,聚合,时间序列,空间连接和地理围栏分析。 它也可以使用服务器端渲染技术来显示无限的几何图形,热图和轮廓(因为大型数据集的客户端渲染非常耗时)。
您可以在本机图形上下文中使用关系数据(通过从关系数据中显式创建节点,边线和其他图形对象)来了解地理空间和非地理空间关系,并且可以执行实时路线优化,甚至进行社交网络分析使用Kinetica的GPU加速图形算法(使用kinetica.solve_graph
函数)。
Kinetica安装和配置选项
有三种安装Kinetica的方法。 现在首选的方法是KAgent,它可以自动执行Kinetica,Active Analytics Workbench(AAW)和Kubernetes,Ring(高可用性)等等的安装和配置。 两种替代方法是使用Docker(用于Kinetica的便携式安装),以及使用基于Linux的常见软件包管理器(例如yum
和apt
)通过命令行手动安装。
资源管理。 Kinetica支持五个存储层:VRAM,RAM,磁盘缓存,持久性和冷存储。 任何使用GPU的操作都需要将其操作的数据放在VRAM层中。 在这五个层中管理数据不是一个简单的问题。
逐出是将数据从较高层强制移至较低层,以便为将其他数据移入较高层留出空间。 系统中的每个对象都有一个级别的可退出性,这取决于它是对象的类型以及可以将其驱逐到其下的可用层。 可以响应请求而执行驱逐,这可能会导致大量数据移动,也可以基于高水位和低水印级别以及驱逐优先级在后台主动进行驱逐,而通常这会导致较少的数据移动。
高可用性。 Kinetica HA消除了标准Kinetica群集中的单点故障,并提供了从故障中恢复的功能。 它在Kinetica外部实现,以利用数据的多个副本并提供最终一致的数据存储。 Kinetica HA解决方案由四个组件组成:前端负载平衡器,高可用性过程管理器,一个或多个Kinetica集群以及分布式消息传递队列。
管理。 您可以使用图形GAdmin工具,Linux命令行service
命令或KAgent管理Kinetica。 以下屏幕截图显示了6节点群集的GAdmin仪表板。
Kinetica演示
除了GAdmin和KAgent,Kinetica还提供基于Web的可视化工具Reveal和Active Analytics Workbench(AAW),用于集成机器学习模型和算法。
上面的屏幕快照中显示的六节点群集是我用来浏览几个Kinetica演示的群集。 该集群由g3.8xlarge实例组成,每个实例包含两个Nvidia Tesla M60 GPU和32个Intel Xeon E5 2686 v4 CPU。 每个实例每个GPU具有244 GiB的RAM和16 GiB的VRAM。 可以按比例缩小,放大和缩小此设置,以适应任何用例。 完成测试后,数据库包含413个表和22亿条记录。
我探索的演示是使用选项进行财务风险预测,德克萨斯州发生洪水的保险风险,基于流量检查的网络安全评估以及纽约市的出租车车程。 在此过程中,我注意到,不同于OmniSci的演示( 请参阅我的评论 ),它们都使用单个扁平表(为了提高速度),Kinetica演示经常使用多个表,视图和分析仪表板。
带有选项的财务风险预测
该应用程序实质上是Kinetica实时财务风险管理概念的证明。 借助React移动应用程序和两个Web仪表板,风险管理者可以查看其投资组合的所有“问候”(衡量风险的因素)并添加对冲。 在幕后,交易流进入数据库,Black Scholes机器学习风险模型会根据实时数据不断更新。 相比之下,传统的风险管理涉及将交易数据复制到每晚运行风险模型的单独群集中。
德克萨斯州特大洪水的保险风险
此应用程序的目的是从保单持有人和哈维飓风灾区表中评估保险公司在德克萨斯州发生灾难性洪灾的风险。 该应用程序在SQL中进行大量的地理空间计算以及统计计算。
网络安全评估
此应用程序旨在帮助网络安全员保护网络免遭入侵。 基本的Kinetica表结合了约18亿历史网络请求和实时供稿。
纽约出租车
我还在OmniSci中查看了纽约市出租车行车数据库 。 Kinetica将其作为可以加载的数据集提供; 花了大约一分钟。 最初,在Kinetica中进行每次地图缩放操作后,更新所有图表所花费的时间比我从OmniSci所记得的要长。 然后我更改了一个设置,以使Kinetica不会在其他图表上绘制缩放地图之外的数据,并且响应时间降至亚秒级范围内。
Kinetica切片和仪表板
Kinetica Reveal中的各个图形称为切片。 这些切片被组织成仪表板。
切片设计器与OmniSci和许多BI产品(例如Tableau)中的设计器非常相似。
我没有测试Kinetica的图形分析部分,但我喜欢它的设计方式。 如果图数据库仅是您需要处理的数据的一小部分,则将关系表中存储的行作为边和节点重用是很有意义的。 使用GPU加速图形算法也很有意义。
了解Kinetica如何将机器学习与其GPU数据库,实时分析和地理信息相集成,使我了解了OmniSci想要去的地方-但Kinetica已经存在。 此外,了解Kinetica如何管理其存储层使我理解了Kinetica为什么通常会与大数据和数据仓库系统竞争。
总体而言,Kinetica非常令人印象深刻。 它确实实现了它所声称的功能,使单个数据库跃升到了更高的水平……我的意思是,实时分析具有数十亿行历史记录和实时供稿的数据库。 我希望能对订阅费用有所了解,但这是专有的,这与这种规模的系统通常是一样的。
-
成本: Kinetica会根据内存中的TB数量收取年度订阅费用; 它不为其他层的数据存储收费。 订阅许可证使您可以在本地或云中的任何地方运行Kinetica。 订阅费用是完全可以预测的。 提供30天免费试用。
平台:具有至少八个CPU内核和8 GB RAM的RHEL,CentOS,Ubuntu,Suse或Debian Linux服务器; Nvidia K40或更高版本的GPU; 本地,云中或Jetson TX2嵌入式设备的边缘。 Kinetica还可在带有或不带有GPU的Docker上运行。