图数据库在企业层面的应用
第一代图数据库是用原生图存储建立的。比较有代表性的就是Neo4j,它们提供了图数据库的一些基础功能,但是它们采用的是单服务器、单线程的架构,因此速度和可扩展性受到限制。它们非常适合加载和可视化中小型的数据集,但无法处理上百GB到TB级的大型数据集,比如复杂的查询和实时的数据更新,因此无法在图内执行超过三跳或以上的连接。作为一个学术概念的证明,它们在可视化业务实体之间的关系方面非常出色。对于现实世界的企业生产需求来说,最初的规模根本不存在。这些早期的迭代是建立在Java上的,主要是为研究和开发而设计的,而不是为处理大规模的生产用例的严格要求。
第二代图数据库是建立在NoSQL存储之上的,解决了扩展性的问题。它们是基于Key-value或列式数据库,比如Apache Cassandra,解决了数据加载的问题。所以,基于第二代图数据库,你可以把TB级的数据加载到图中。但是,由于它们不是原生图存储,所以在做多跳查询深度链接时,性能表现并不是很好,因此它们仍然无法扩展涉及三个或更多连接或跳跃的查询。而且,由于是使用的NoSQL技术,这不是为了做实时更新的技术,所以在用户产生了新的交易、新的购买行为时,很难在图上实时地做数据更新。这也就限制了它们进行深度或复杂分析的能力。现代图平台使用C++,是为企业使用而设计的。更现代的方法允许扩展计算能力、突变性(意味着它们支持系统更新)、数据流和批处理,同时在图数据库中进行快速计算,而不是在图数据库之外将结果拉入数据库供用户访问。
第二代图数据库通常也不支持数据库分片。这使得拥有TB级数据的组织无法将数据分布到多个服务器上,从而使每个服务器都有几百G的数据。
第一代和第二代图数据库进一步证明了它们的局限性:
- 不能扩展到多台机器上存储大数据(数据库分片)和并行查询处理;
- 不能支持下一代欺诈检测、推荐引擎、机器学习和人工智能用例所需的深度链接分析(超过三跳);
- 无法满足大数据更新和亚秒级查询性能的实时要求。
而也正是前几代图数据库的缺点和图数据库的应用趋势促进了下一代图数据库和分析技术的发展。TigerGraph开发了
第三代图数据库,来解决第一代和第二代中的这些不足,它又回到了原生图存储,我们通过分布式部署、并行计算,不仅针对数据存储做了优化,解决了扩展性的问题,而且加快了数据加载、数据查询、事务处理等各个方面的速度。TigerGraph可专门用于在数小时内加载TB级的数据,并实时分析多达10跳或更多跳的关系。
第三代图数据库是第一个可以支持HTAP的图数据库,HTAP可以同时支持OLTP事务处理和OLAP数据分析,TigerGraph是第一个支持HTAP的图数据库,它可以使用图数据库中的同一个实例和schema,支持事务处理和分析处理,符合ACID标准,并可通过数据库分片扩大和延伸。TigerGraph的开放式查询语言GSQL,使我们能够支持修改和可解释的人工智能,提供一个可应用于多种用例和连接数据的人工智能应用的平台。