当前位置:首页 » 数据仓库 » 研发图数据库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

研发图数据库

发布时间: 2023-01-20 07:56:08

1. 图数据库的应用场景

图数据库技术的应用场景比较多,包括但不限于以下几种场景:
1. 欺诈检测
无论面对诈骗集团、勾结团伙还是高知罪犯,图数据库技术可以实时揭露各种重要诈骗模式。所以越来越多的公司使用图数据技术来解决各种关联数据问题,包括欺诈检测。
2. 实时推荐引擎
图技术能够根据用户购买、交互和评论有效跟踪这些关系,以提供对客户需求和产品趋势最有意义的深刻见解。Ebay等购物网站就在使用图技术给用户推荐产品。
3.知识图谱
将图技术用于知识图谱能够精确搜索查询,消除搜索查询的歧义,并且能够适应不断增长的数据资产规模。

2. 浅析 Haystack 图片存储系统

Facebook在2010年的时候发表过一篇在分布式存储系统领域很有名的一篇文章《Finding a needle in Haystack》来描述他们的图片存储系统,Haystack 存储了超过2600亿张图片,大约占了20TB的数据,用户每周都会上传10亿张图片,高峰时期的并发量在100万以上(这是2010年的数据,现在很有可能上了一个数量级)。

在这个数量级之下,需要考虑的问题不仅仅是高吞吐,低延时,保证数据的一致性,还要考虑如何能节省流量,容易扩展,容错等等。下面我们就来看下Haystack是怎样满足这些分布式系统的要素的。

图片存储系统的最大特点是数据只写一次,读取频繁,不会修改,很少删除。Facebook 一开始的存储系统是基于NFS的NAS(Network Attached Storage), 但这种基于 POSIX 的文件系统无法支撑如此大的负载。其中主要的问题在于在图片寻址的过程中会产生过多的磁盘操作。

我们知道从传统文件系统里面读取一个文件需要至少三次磁盘操作,第一次从硬盘中读取目录的 metadata 到内存中,然后读取inode到内存,最后才从磁盘中读取文件内容。

再者这些metadata里面包含了大量比如权限控制这些对于图片存储系统来说无用的信息,也浪费了大量的磁盘空间。当像图片这样的静态资源服务出现瓶颈的时候,自然就会想到使用 CDN (Content Delivery Networks) 系统。在传统的设计中,一个图片的 HTTP 请求发送后, 如果 CDN 有这个资源的缓存,就会立马返回,反之 ,CDN 会将根据请求的 URL 从存储系统里面读取图片,更新缓存,然后再返回。在这样的设计中,CDN 确实可以很有效地处理热点图片的请求。

但像 Facebook 这样的社交网络中,有大量的请求是针对那些非热点或者老内容的,用户在请求那些长尾 (long tail) 内容时将没有优化。当然,有些同学会说,那我可以将所有的图片都缓存到 CDN,那确实会解决这个问题,但将会极大地增加资源的开销。

为了减少那些直接 hit 到存储系统的请求的磁盘操作,他们想到在第一次读取文件的时候把filename到 file handle 的映射缓存到内存,在下一次读取文件的时候,会调用自定义的open_by_filehandle来减少磁盘操作,但这对于long tail的读取问题依然存在,因为这些文件的映射关系没有提前放在内存中。

于是,Facebook 决定从头研发图片存储系统,从前面我们可以看出,Haystack 的核心任务就是在处理每一次的请求中尽可能地减少磁盘操作。我们先来描述下 Haystack 读取和上传图片流程是怎样的,然后再来看其中的细节是如何处理的。

当发起一次图片读取请求的时候会通过一个事先构建好的 URL

http://///这个 URL 实际上显示出了访问的顺序,先从外部 CDN 读取,如果没有,访问内部 Cache,如果还是没有,就直接访问 Store Machine.(URL最后一部分提供了图片的唯一标识)

用户上传图片的时候先会上传到 web 服务器, 然后服务器从Directory中找到一个可写的physical volume,最后服务器会给这个图片生成一个唯一ID, 然后写入到这个logical volume 所对应的所有physical volume中。

上面的过程中出现了几个陌生的名词,别着急,我们一个个来看。我们先来介绍 Haystack 的三个主要组件:

Store,Directory,Cache.

Store 是核心组件,负责图片的存储。Store 的容量决定了这个存储系统的容量,整个 Store 组件由很多个 store machine 组成,store machine 的容量又由一系列的 physical volume 决定。

例:要提供 10TB容量,我们可分摊到 100 个 physical volume,每个 physical volume 提供 100 GB 的容量。这时候有的同学会问,那么数据冗余是怎么解决的呢?Haystack 借鉴了普通硬盘中的 logical volume 的概念,将不同机器上的多个 physical

volume 组成了一个虚拟的 logical volume。

当存储一张图片的时候,实际上是存储到了 logical volume 对应的所有 physical volume中。它们之间的映射关系连同其它的metadata都存储在 Directory组件中。每个physicalvolume 中都存储了上百万张图片,可以把它想象成一个巨大的 append-only 文件,然后通过 offset 来访问文件。

我们来详细看下这个文件到底是如何存放的,如何来达到减少磁盘操作目的的。对于每个这样超大的文件,都由一个 superblock 和一系列的 needles 组成,每个 needle 就是每张图片的信息。看下下面这张图,它的结构就一目了然了。

每个needle包含的细节信息有图片ID,图片大小,图片数据等等,还会有数据校验的属性。每个 store machine 都有若干个physical volume大文件, 为了提高检索needles 的速度,在内存里为每个physical volume都维护了一张图片I 到needle之间的映射表。

当store machine接收到读取请求时,首先从内存映射表中找到相应的metadata, 然后通过offset从硬盘中读取到整个needle, 通过数据校验后返回。如果接收到的是上传请求,会把组织好的needle追加到所有对应的physical volume文件中,并且更新内存里的映射表。如果是删除操作的话,我们注意到下图中有个Flags标志位其实就是用来标记是否是删除的状态,这样一来就很简单,直接在这个位置标记好,系统会在后面执行compaction 操作回收这些空间。

讲到这里,一个正常流程的存储过程已经很清楚了。这时候我们就需要考虑分布式系统一个必不可少的特性:容错性。当一个 store machine 宕机的时候,理论上我们可以读取所有的 physical volume 来重新构建内存映射表,但这就需要从磁盘重新读取 TB 级别的数据,显然是非常耗时和不高效的。为了解决这个问题,每个 store machine 为每个 physical volume 都维护了一个索引文件。这个索引文件类似于游戏中的存档点 (checkpoint),它的结构和 physical volume 文件类似,保存了查找每个 needle 所需的属性。为了性能,索引文件是异步更新的(写的时候异步更新,删的时候压根不会更新),这就会带来一个问题:索引文件有可能不是最新的。之前我们提到过,physical volume 文件是一个 append-only 的文件,索引文件也是。所以我们只需要在重启 store machine 的时候,从后向前扫描 physical volume 文件找到那几个没有被索引的文件,加到索引里去就行了。对于被删除的文件,在真正读取完整 needle 数据的时候,通过检查删除标志位来更新内存映射表。

我们之前提到可以使用 CDN 来缓解系统压力,但它无法很好地解决非热点图片的问题,并且如果 CDN 节点出现故障的话,没有 Cache 这一层会对底层的存储系统 Store 产生巨大的压力。Cache 组件主要缓存了最近上传的图片,它的概念很简单,实际上是一个分布式 hash table,通过图片的 ID 为 key 可以找到对应的数据。Cache 接收从 CDN 或者浏览器直接发来的 HTTP 请求,但只有在以下两个条件都满足的情况下才会缓存图片:

1) 请求来自用户浏览器而不是来自 CDN

2) 请求的 store machine 是可写的

这听上去有些费解,条件 1 的原因是如果一个请求在 CDN 缓存中 miss 其实也会在 Cache 中 miss (如果一张图片成为热门的话,那也能在 CDN 找到),条件 2 的原因则是避免让可写的 store machine 进行大量读操作,因为图片通常在刚刚上传后会被大量读取,文件系统通常在只读或者只写而不是既读又写的时候性能比较好。

如果没有 Cache 的话,可写的 store machine 将会同时处理写操作以及大量的读操作,会导致性能的急剧下降。

现在我们只剩下 Directory 组件没有讲了。除了之前我们提到的存储了 physical volume 到 logical volume 的映射关系以及图片 ID 到 logical physical 的映射关系,它还提供负载均衡服务以及为每个操作选择具体的 volume (因为写操作的对象是 logical volume,读操作的对象是 physical volume), 它还决定了一个请求是被 CDN 处理还是被 Cache 处理。Directory 还可以标记逻辑卷的状态,在运维需要或者空间满了的时候可以标记为只读状态。当往 Store 加新机器的时候,这些机器就会标记成可写的,只有可写的机器才能接受图片上传请求。这里有一个细节需要注意,图片 ID 到 logical physical 的映射表肯定无法存放在单机内存,文章中也没有交代具体实现。我们猜想可以使用 Mysql 分片集群和加上 Memcached 集群来实现。总的来讲,Directory 实际上根据 metadata,然后结合各种策略,实现了整个系统的调度器。

本文描述了 Haystack 图片存储系统的主要脉络,当然还有许多细节没有提到,比如整个系统的容错机制,如何实现批量写操作等等。经过这几年的发展,我们相信 Haystack 肯定也进行了更多的优化,现在一些开源的分布式存储系统也被应用到实际的生产系统中,比如淘宝的 TFS,MooseFS 等等。我们会在后续的文章中比较这些系统之间的异同,总结出解决其中典型问题的通用方法。

3. 华为鸿蒙、阿里云盘古、蚂蚁图计算……14项世界互联网领先科技成果发布

日前,由国家互联网信息办公室、浙江省人民政府主办的2021年“世界互联网领先 科技 成果发布活动”在乌镇互联网国际会展中心成功举行,这是第六次面向全球举行世界互联网领先 科技 成果发布活动。

发布活动共评选出包括来自中国卫星导航系统管理办公室、清华大学、北京大学、北京邮电大学、中国电信、中国移动、高通、安谋等14项国内外有代表性的领先 科技 成果。

HarmonyOS 鸿蒙操作系统

华为技术有限公司

鸿蒙是一款全新的面向全场景的分布式操作系统,2019年正式面世。简单说,鸿蒙为不同设备的智能化、互联与协同提供统一的语言,让消费者操控多个设备像操作一台设备一样简单。

今年6月2日,华为发布HarmonyOS 2,仅一周升级用户数破千万;历时一个多月,升级用户数突破3000万,进入8月已突破5000万。到9月12日,HarmonyOS 2升级用户数突破1亿,成为全球用户破亿最快的移动操作系统。9月23日,华为又更新数字,HarmonyOS 2升级用户已突破1.2亿。

庞大的用户基数也带来强大的生态示范效应,目前已有400个多应用和服务伙伴、1700多家硬件伙伴、130多万开发者参与到鸿蒙生态的建设当中,共建全球最大的万物互联的全场景智慧生态。

智能计算芯片行业创新:全球首个开源NPU指令集架构

安谋 科技 (中国)有限公司

下一代智能计算的核心关键是海量地、高密度地、实时地感知和处理不同类型的数据流,智能计算的算力也正越来越多地从CPU、GPU转为由NPU提供。为了解决NPU定制过程中生态碎片化、重复投资和应用规模受限等问题,安谋 科技 在今年7月联合了50多家产业龙头企业和机构共同发起成立了“智能计算产业技术创新联合体”(Open NPU Innovation Alliance,简称ONIA),并推出全球首个开源神经网络处理器指令集架构(NPU ISA)。

围绕这一开源NPU ISA,安谋 科技 及ONIA会员不仅提供NPU、CPU、XPU芯片方案,还将以开源、开放的协作方式,对外提供编译器、工具链、驱动程序、操作系统、深度学习框架等基础系统软件,以及基于不同场景的、统一的多域计算软硬件平台方案,进而利用开源指令集实现NPU的全面创新,帮助产业链更迅速地落地智能计算和人工智能应用。

人工智能驱动的重大疾病动态画像新技术和远程高效防治系统

北京邮电大学

以5G和人工智能技术为代表的新一代信息通信技术不断突破,推动医疗技术发展不断由疾病治疗向 健康 创造转变。同时,数字医疗的场景复杂化,需求多样化对信息通信网络的灵活性、智能化提出了更高要求。

人工智能驱动的重大疾病动态画像新技术和远程高效防治系统以“智·简生态系统”为内核指导思想,在通用医学大数据处理、智能学习优化平台等方面取得多项技术进展,实现了快速响应危急重症,高效发现关键诊断决策依据,动态量化疾病风险因素,以及准确追踪病情进展等能力。

5G独立组网(SA)端到端系统方案、国际标准及组网技术

中国移动通信集团有限公司

超高清视频编解码关键技术及系统应用

北京大学

北京大学自主研发了超高清视频编解码关键技术及其系统应用,主导制定了AVS超高清视频编解码国家标准,被全球超高清产业联盟采纳为国际标准,联合海思、华为公司在国际上首次发布了8K@120P超高清解码芯片,支撑了中国首个4K和8K超高清频道CCTV—4K/8K的开播,并在全球首次实现8K+5G广电领域直播应用,标志着中国正式迈入超高清时代。

北斗全球卫星导航系统建设和应用

中国卫星导航系统管理办公室

北斗全球卫星导航系统是中国自行研制的全球卫星导航系统,也是继GPS、GLONASS之后的第三个成熟的卫星导航系统。北斗系统是党中央决策实施的国家重大 科技 工程,是我国迄今为止规模最大、覆盖范围最广、服务性能最高、与百姓生活关联最紧密的巨型复杂航天系统。2020年,北斗三号全球卫星导航系统正式开通。从最初的试验卫星到如今55卫星成功组网,27年的时间里,数不清的科研人员耗费了大量的心血,建设了中国自己的卫星系统。

目前,北斗系统已在全球超过一半的国家和地区得到应用,向亿级以上用户提供服务。基于北斗的土地确权、精准农业、数字施工、车辆船舶监管、智慧港口解决方案在东盟、南亚、东欧、西亚、非洲等得到成功应用。如今,“中国的北斗、世界的北斗、一流的北斗”正为服务人类 社会 发展、构建人类命运共同体作出新的更大的贡献。

“天通一号”卫星移动通信应用系统

中国电信集团有限公司

“天通一号”卫星移动通信应用系统完成了多项技术创新,首次提出“天地融合、通导一体”的系统架构。其实现了卫星通信、卫星导航的集成服务,在用户终端融合了通信、导航功能。创新提出了“星地一体、宽窄互补”的通信体制,实现星地网络全面融合。突破了终端“天地多模、低功耗、小型化”的技术难题。该应用系统已获得授权专利45件,行业标准4项,学术论文100余篇,填补了国内卫星移动通信系统空白,整体技术达到“国际先进”水平。

全球首个支持10Gbps 5G传输速率和首个符合3GPP Release 16规范的5G调制解调器到天线解决方案

高通无线通信技术(中国)有限公司

骁龙X65 5G调制解调器及射频系统于今年2月发布,为行业带来了多项首创性的5G技术革新——通过媲美光纤的无线性能支持目前市场上最快的5G传输速度,并支持最新5G规范。

去年3GPP标准组织推出了5G的新规范,即Release 16,其定义了下一阶段的全球5G发展。值得一提的是,骁龙X65是全球首个符合3GPP Release 16 5G标准的5G调制解调器到天线解决方案。骁龙X65采用了可以支持特性组合升级的架构设计,从而支持快速商用。这意味着通过骁龙X65能够持续增加新的特性,在智能手机之外多个应用细分领域扩展5G。

800G 超高速光收发芯片与引擎技术研发

之江实验室

800G超高速光收发芯片与光引擎技术是之江实验室为下一代数据高速传输提供的核心技术解决方案。之江实验室项目团队连续取得大功率多波长激光器、硅基高密度光发射模块、硅基高速光接收模块等芯片模块研发的突破性进展,并利用晶圆级封装技术将这些芯片模块集成在同一晶圆上,实现“光电共封”,在确保硬件物理尺寸不变的情况下,有效提升数据传输的密度和效率,降低功耗和成本。光收发芯片就像是一位“翻译”或“交警”,为数据中心光子与电子间的信息转换架起桥梁,为数据的高效传输指挥交通。

基于多光谱的智能感知终端

杭州海康威视数字技术股份有限公司

夜间低照度一直以来是全天候视频感知所面临的最大挑战。海康威视的基于多维感知智能融合终端,可实现低照度下无光污染的全彩成像,让黑夜像白天一样精彩。与传统手段相比,在色彩还原度、清晰度方面,都有显着的提升,做到细节清晰,精彩如一。

基于分层API规范的云操作系统生态建设

清华大学

“基于分层API规范的云操作系统生态建设”是由清华大学大学联合华中 科技 大学、上海交通大学、北京航空航天大学、中国科学院计算技术研究所等单位在国家重点研发计划的资助下共同完成。

项目抽象制定了云操作系统分层API规范并给出了技术领先的参考实现;相关成果已获实际应用,初步形成了自主云操作系统生态,对于避免生态的碎片化和供应商锁定,推动技术持续迭代和行业整体创新有重要意义。

大规模图计算系统GeaGraph

蚂蚁 科技 集团股份有限公司

高性能图计算被认为是全球尖端 科技 的一个重要前沿,在电信、医疗、制造、能源等领域有着广阔的应用价值和前景。蚂蚁集团联合清华大学共同研发的高性能图计算系统GeaGraph能够在万亿边图上进行实时查询,在国际标准图数据库测试中位列第一,处理规模和性能均达到了国际领先水平。现在,GeaGraph已经成为蚂蚁集团各种业务风控能力的重要支撑,在数字支付、数字服务、数字金融等核心业务中,显着提升了风险行为的实时识别能力和调查分析效率。

阿里云盘古:面向云计算的大规模分布式存储系统

阿里云计算有限公司

阿里云自主研发的分布式存储系统“盘古”是该活动6年来首次有存储技术入选。“盘古”是阿里云自研的分布式存储系统,是阿里云底层的统一存储架构,主要包括“分布式存储软件”“高性能存储网络”“云存储硬件架构”“深度软硬融合的闪存存储架构”“智能运维管控”以及“网络和SSD控制器芯片”核心关键技术。

“盘古”解决了超大规模下数据不丢不错和高可用的难题,让存储更加稳定可靠、拥有更大的容量和更高的性能,以满足数字经济对海量存储和快速存储的需求。

“盘古”团队自2008年开始组建,2009年开始推出第一个版本,2013年完成上线单集群5K台的规模,此后2015年突破了单集群上万台的技术门槛,2017年正式推出“盘古”2.0并成功支撑了此后的天猫“双11”全球狂欢节。相比1.0版本,“盘古”2.0面向人工智能、科学计算、深度学习等未来存储场景做了优化升级,整体IOPS性能提升50%,同时推出基于“盘古”2.0的ESSD高性能云盘,IOPS从2万提升到了100万。

安全可靠可控的新一代人工智能平台

北京瑞莱智慧 科技 有限公司

第一代人工智能技术存在大规模应用的局限,而第二代人工智能则面临着高度依赖大量高质量数据、不能适应不断变化的条件、算法可解释性非常差等诸多问题。为此需要建立鲁棒与可解释的人工智能理论,发展安全、可信、可靠与可扩展的第三代人工智能。

作为业内首个致力于提升人工智能安全性、可靠性与可信性的创新平台,北京瑞莱智慧 科技 有限公司自主研发的“安全可控可靠的新一代人工智能平台”包含隐私计算、AI攻防、深伪检测三大子平台。凭借独有的创新模式,该平台能够有效降低人工智能时代的新型安全风险,保障人工智能系统的安全、可靠和可控,缓解 科技 进步与安全之间的矛盾,目前已在政务、金融、工业互联网等高价值场景中发挥了重大作用,成为AI纵深赋能的坚实基座。

4. 研发数据库 我们是做技术的,领导说要建一个研发数据库,请问下这是个什么样子的东东

研发数据库 和普通数据库一样

只不过是名字和用途上的区别

例如 你正式的数据库 是 zhengshi_db
研发数据库 就是 yanfa_db

把 zhengshi_db 导入到 yanfa_db

两个数据库只有名字不同,表和字段,视图,触发器是完全一样的

你要是开发新的功能就在 yanfa_db上进行

测试正常后 在植入到zhengshi_db中。

别误解你领导的意思。

5. 数据库都有哪些

常用数据库有mysql、oracle、sqlserver、sqlite等。mysql性能较好,适用于所有平台,是当前最流行的关系型数据库之一。sqlserver数据库具有扩展性和可维护性,且安全性较高,是比较全面的数据库。

6. 图计算引擎Neo4j和Graphscope有什么区别

Neo4j是单机系统,主要做图数据库。GraphScope是由阿里巴巴达摩院智能计算实验室研发的图计算平台,是全球首个一站式超大规模分布式图计算平台,并且还入选了中 国科学技术协会“科创中 国”平台。Graphscope的代码在github.com/alibaba/graphscope上开源。SSSP算法上,GraphScope单机模式下平均要比Neo4j快176.38倍,最快在datagen-9.2_zf数据集上快了292.2倍。