nebula

聊聊图数据库和图数据库的小知识

百般思念 提交于 2021-01-01 07:39:35
图数据库 - 维基百科 :在计算机科学中, 图数据库 (英语:graph database, GDB )是一个使用 图结构 进行 语义查询 的 数据库 ,它使用 节点 、 边 和属性来表示和存储数据。该系统的关键概念是 图 ,它直接将存储中的数据项,与数据 节点 和节点间表示关系的 边 的集合相关联。这些关系允许直接将存储区中的数据链接在一起,并且在许多情况下,可以通过一个操作进行检索。图数据库将数据之间的关系作为优先级。查询图数据库中的关系很快,因为它们永久存储在数据库本身中。可以使用图数据库直观地显示关系,使其对于高度互连的数据非常有用。 图数据库是一种 非关系型数据库 ,以解决现有 关系数据库 的局限性。图模型明确地列出了数据节点之间的依赖关系,而关系模型和其他 NoSQL 数据库模型则通过隐式连接来链接数据。图数据库从设计上,就是可以简单快速地检索难以在关系系统中建模的复杂层次结构的。图数据库与 20 世纪 70 年代的网络模型数据库相似,它们都表示一般的图,但是网络模型数据库在较低的抽象层次上运行,并且不能轻松遍历一系列边。 图数据库的底层存储机制可能各有不同。有些依赖于关系引擎并将图数据“存储”到表中(虽然表是一个逻辑元素,但是这种方法在图数据库、图数据库管理系统和实际存储数据的物理设备之间施加了另一层抽象)。另一些则使用 键值存储 或 面向文档的数据库 进行存储

拟在港上市的新纽科技:营收增速放缓,研发占比降至个位数

守給你的承諾、 提交于 2020-12-23 03:09:40
在过去的一周,港交所新增了5家过会企业,分别是达丰设备、新纽科技、CHINA GAS(唐钢气体)、中邦园林与稻草熊影业。 其中,新纽科技受到的关注颇多,且质疑声不断。有不少投资人表示,新纽科技是个典型的传统软件公司,缺乏SaaS基因,与已经在港上市的明源云(HK:00909)并不具备可比性。 根据介绍,新纽科技成立于2011年,是一家研发驱动的SaaS和软件解决方案供应商。按2019年收入计,其在逾2500名中国金融机构IT解决方案提供商中排名前100名。 营收增速严重放缓 本次赴港上市,新纽科技引入2家基石投资者,分别是弘毅投资、财通基金。其中,弘毅投资通过金涌资本的主体认购4850万元,财通基金认购3000万元。此前,弘毅投资也曾是海底捞赴港上市时的基石投资者。 据了解,新纽科技自12月21日起招股,拟发行2亿股,招股价在3.06-4.36港元之间,每手800股,入场费约3523港元。根据安排,新纽科技预计将于1月6日挂牌交易。 2017年至2019年,新纽科技的收入分别为2106.6万元、1.21亿元、1.49亿元,年复合增为165.9%;净利润分别为153.9万元、3112.3万元、3311.3万元,经调整净利润分别为153.9万元、3112.3万元、3826.3万元。 贝多财经发现,新纽科技2019年的增速严重放缓。根据计算,其2019年的营收同比2018年增长约23.1

C++反射机制:可变参数模板实现C++反射

拜拜、爱过 提交于 2020-11-06 08:58:17
1. 概要   本文描述一个通过C++可变参数模板实现C++反射机制的方法。该方法非常实用,在 Nebula 高性能网络框架中大量应用,实现了非常强大的动态加载动态创建功能。 Nebula框架在Github的仓库地址 。   C++11的新特性--可变模版参数(variadic templates)是C++11新增的最强大的特性之一,它对参数进行了高度泛化,它能表示0到任意个数、任意类型的参数。关于可变参数模板的原理和应用不是本文重点,不过通过本文中的例子也可充分了解可变参数模板是如何应用的。   熟悉Java或C#的同学应该都知道反射机制,很多有名的框架都用到了反射这种特性,简单的理解就是只根据类的名字(字符串)创建类的实例。 C++并没有直接从语言上提供反射机制给我们用,不过无所不能的C++可以通过一些trick来实现反射。 Bwar 也是在开发Nebula框架的时候需要用到反射机制,在网上参考了一些资料结合自己对C++11可变参数模板的理解实现了C++反射。 <br/> 2. C++11之前的模拟反射机制实现    Nebula 框架是一个高性能事件驱动通用网络框架,框架本身无任何业务逻辑实现,却为快速实现业务提供了强大的功能、统一的接口。业务逻辑通过从Nebula的Actor类接口编译成so动态库,Nebula加载业务逻辑动态库实现 各种功能Server

图数据库对比:Neo4j vs Nebula Graph vs HugeGraph

家住魔仙堡 提交于 2020-10-23 11:04:03
本文系腾讯云安全团队李航宇、邓昶博撰写 图数据库在挖掘黑灰团伙以及建立安全知识图谱等安全领域有着天然的优势。为了能更好的服务业务,选择一款高效并且贴合业务发展的图数据库就变得尤为关键。本文挑选了几款业界较为流行的开源图数据库与 Nebula Graph 进行了多角度的对比。 图数据库介绍 Neo4j Neo4j 是目前业界广泛使用的图数据库,包含社区版本和商用版本,本文中使用社区版本。 HugeGraph HugeGraph 是百度基于 JanusGraph 改进而来的分布式图数据库,主要应用场景是解决百度安全事业部所面对的反欺诈、威胁情报、黑产打击等业务的图数据存储和图建模分析需求。具有良好的读写性能。 Nebula Graph Nebula Graph 是一款开源的分布式图数据库,采用 shared-nothing 分布式架构,擅长处理千亿节点万亿条边的超大规模数据集,从而更好地服务企业级应用。 测试硬件环境 性能对比 我们使用不同量级的图从入库时间,一度好友查询,二度好友查询,共同好友查询几个方面进行了对比,结果如下: 可以看到在导入性能上,数据量小的时候 Nebula Graph 的导入效率稍慢于 Neo4j,但在大数据量的时候Nebula Graph 的导入明显优于其他两款图数据库;在 3 种查询场景下, Nebula Graph 的效率都明显高于 Neo4j,与

vivo 大规模特征存储实践

[亡魂溺海] 提交于 2020-08-14 03:53:55
本文旨在介绍 vivo 内部的特征存储实践、演进以及未来展望,抛砖引玉,吸引更多优秀的想法。 一、需求分析 AI 技术在 vivo 内部应用越来越广泛,其中特征数据扮演着至关重要的角色,用于离线训练、在线预估等场景,我们需要设计一个系统解决各种特征数据可靠高效存储的问题。 1. 特征数据特点 (1)Value 大 特征数据一般包含非常多的字段,导致最终存到 KV 上的 Value 特别大,哪怕是压缩过的。 (2)存储数据量大、并发高、吞吐大 特征场景要存的数据量很大,内存型的 KV(比如 Redis Cluster)是很难满足需求的,而且非常昂贵。不管离线场景还是在线场景,并发请求量大,Value 又不小,吞吐自然就大了。 (3)读写性能要求高,延时低 大部分特征场景要求读写延时非常低,而且持续平稳,少抖动。 (4)不需要范围查询 大部分场景都是单点随机读写。 (5)定时灌海量数据 很多特征数据刚被算出来的时候,是存在一些面向 OLAP 的存储产品上,而且定期算一次,希望有一个工具能把这些特征数据及时同步到在线 KV 上。 (6)易用 业务在接入这个存储系统时,最好没有太大的理解成本。 2. 潜在需求 扩展为通用磁盘 KV,支撑各个场景的大容量存储需求 我们的目标是星辰大海,绝不仅限于满足特征场景。 支撑其他 Nosql/Newsql 数据库,资源复用 从业务需求出发

分布式图数据库 Nebula Graph 的 Index 实践

ぃ、小莉子 提交于 2020-08-09 14:38:17
导读 索引是数据库系统中不可或缺的一个功能,数据库索引好比是书的目录,能加快数据库的查询速度,其实质是数据库管理系统中一个排序的数据结构。不同的数据库系统有不同的排序结构,目前常见的索引实现类型如 B-Tree index、B+-Tree index、B*-Tree index、Hash index、Bitmap index、Inverted index 等等,各种索引类型都有各自的排序算法。 虽然索引可以带来更高的查询性能,但是也存在一些缺点,例如: 创建索引和维护索引要耗费额外的时间,往往是随着数据量的增加而维护成本增大 索引需要占用物理空间 在对数据进行增删改的操作时需要耗费更多的时间,因为索引也要进行同步的维护 Nebula Graph 作为一个高性能的分布式图数据库,对于属性值的高性能查询,同样也实现了索引功能。本文将对 Nebula Graph的索引功能做一个详细介绍。 图数据库 Nebula Graph 术语 开始之前,这里罗列一些可能会使用到的图数据库和 Nebula Graph 专有术语: Tag:点的属性结构,一个 Vertex 可以附加多种 tag,以 TagID 标识。(如果类比 SQL,可以理解为一张点表) Edge:类似于 Tag,EdgeType 是边上的属性结构,以 EdgeType 标识。(如果类比 SQL,可以理解为一张边表) Property

D3.js 力导向图的显示优化(二)- 自定义功能

我们两清 提交于 2020-08-05 19:40:51
摘要: 在本文中,我们将借助 D3.js 的灵活性这一优势,去新增一些 D3.js 本身并不支持但我们想要的一些常见的功能:Nebula Graph 图探索的删除节点和缩放功能。 文章首发于 Nebula Graph 官博: https://nebula-graph.com.cn/posts/d3-js-examples-for-advaned-uses/ 前言 在上篇文章中( D3.js 力导向图的显示优化 ),我们说过 D3.js 在自定义图形上相较于其他开源可视化库的优势,以及如何对文档对象模型(DOM)进行灵活操作。既然 D3.js 辣么灵活,那是不是实现很多我们想做的事情呢?在本文中,我们将借助 D3.js 的灵活性这一优势,去新增一些 D3.js 本身并不支持但我们想要的一些常见的功能。 构建 D3.js 力导向图 在这里我们就不再细说 d3-force 粒子物理运动模块原理,感兴趣同学可以看看我们的 上篇 的简单描述, 本次实践我们侧重于可视化操作的功能实现。 好的,进入我们的实践时间,我们还是以 D3.js 力导向图对图数据库的数据关系进行分析为目的,增加一些我们想要功能。 首先,我们用 d3-force 力导向图来构建一个简单的关联网 this.force = d3 .forceSimulation() // 为节点分配坐标 .nodes(data