neo4j(一).初识图数据库neo4j
neo4j是圖數(shù)據(jù)庫
初識neo4j,首先我們要知道neo4j是圖數(shù)據(jù)庫。我們平常用的數(shù)據(jù)庫一般是RDBMS(關系型數(shù)據(jù)庫),那么什么是圖數(shù)據(jù)庫呢?既然有了關系型數(shù)據(jù)庫,那么為什么要有圖數(shù)據(jù)庫呢?
1.什么是圖數(shù)據(jù)庫
簡單來說:
圖形數(shù)據(jù)庫(圖形數(shù)據(jù)庫也稱為圖形數(shù)據(jù)庫管理系統(tǒng)或GDBMS。
圖數(shù)據(jù)庫的基本含義是以“圖”這種數(shù)據(jù)結構存儲和查詢數(shù)據(jù),而不是存儲圖片的數(shù)據(jù)庫。它的數(shù)據(jù)模型主要是以節(jié)點和關系(邊)來體現(xiàn),也可處理鍵值對。它的優(yōu)點是快速解決復雜的關系問題。
數(shù)據(jù)結構:
在一個圖中主要包含兩種數(shù)據(jù)類型:Nodes(節(jié)點)和Relationships(關系)。他們各自內部又包含key-value形式的屬性,然后節(jié)點之間通過關系相連,形成了關系型的網狀結構
圖數(shù)據(jù)庫的應用
金融行業(yè)應用
反欺詐多維關聯(lián)分析場景
通過圖分析可以清楚地知道洗錢網絡及相關嫌疑,例如對用戶所使用的帳號、發(fā)生交易時的IP地址、MAC地址、手機IMEI號等進行關聯(lián)分析。
反欺詐多維關聯(lián)分析場景
反欺詐已經是金融行業(yè)一個核心應用,通過圖數(shù)據(jù)庫可以對不同的個體、團體做關聯(lián)分析,從人物在指定時間內的行為,例如去過地方的IP地址、曾經使用過的MAC地址(包括手機端、PC端、WIFI等)、社交網絡的關聯(lián)度分析,同一時間點是否曾經在同一地理位置附近出現(xiàn)過,銀行賬號之間是否有歷史交易信息等。
社交網絡圖譜
在社交網絡中,公司、員工、技能的信息,這些都是節(jié)點,它們之間的關系和朋友之間的關系都是邊,在這里面圖數(shù)據(jù)庫可以做一些非常復雜的公司之間關系的查詢。比如說公司到員工、員工到其他公司,從中找類似的公司、相似的公司,都可以在這個系統(tǒng)內完成。
企業(yè)關系圖譜
圖數(shù)據(jù)庫可以對各種企業(yè)進行信息圖譜的建立,包括最基本的工商信息,包括何時注冊、誰注冊、注冊資本、在何處辦公、經營范圍、高管架構。圍繞企業(yè)的經營范圍,繼續(xù)細化去查詢企業(yè)究竟有哪些產品或服務,例如通過企業(yè)名稱查詢到企業(yè)的自媒體,從而給予其更多關注和了解。另外也包括對企業(yè)的產品和服務的數(shù)據(jù)關聯(lián),查看該企業(yè)有沒有令人信服的自主知識產權和相關資質來支撐業(yè)務的開展。
企業(yè)在日常經營中,與客戶、合作伙伴、渠道方、投資者都會打交道,這也決定了企業(yè)對社會各個領域都廣有涉獵,呈現(xiàn)面錯綜復雜,因此可以通過企業(yè)數(shù)據(jù)圖譜來查詢,層層挖掘信息。基于圖數(shù)據(jù)的企業(yè)信息查詢可以真正了解企業(yè)的方方面面,而不再是傳統(tǒng)單一的工商信息查詢。
2.什么是neo4j
Neo4j是一個高性能的NOSQL圖形數(shù)據(jù)庫,它將結構化數(shù)據(jù)存儲在網絡上而不是表中。
它是一個嵌入式的、基于磁盤的、具備完全的事務特性的Java持久化引擎,但是它將結構化數(shù)據(jù)存儲在網絡(從數(shù)學角度叫做圖)上而不是表中。
Neo4j也可以被看作是一個高性能的圖引擎,該引擎具有成熟數(shù)據(jù)庫的所有特性。程序員工作在一個面向對象的、靈活的網絡結構下,而不是嚴格、靜態(tài)的表中。但是他們可以享受到具備完全的事務特性、企業(yè)級的數(shù)據(jù)庫的所有好處。
Neo4j因其嵌入式、高性能、輕量級等優(yōu)勢,越來越受到關注。
Neo4j的特點
- SQL就像簡單的查詢語言Neo4j CQL
- 它遵循屬性圖數(shù)據(jù)模型
- 它通過使用Apache Lucence支持索引
- 它支持UNIQUE約束
- 它包含一個用于執(zhí)行CQL命令的UI:Neo4j數(shù)據(jù)瀏覽器
- 它支持完整的ACID(原子性,一致性,隔離性和持久性)規(guī)則
- 它采用原生圖形庫與本地GPE(圖形處理引擎)
- 它支持查詢的數(shù)據(jù)導出到JSON和XLS格式
- 它提供了REST API,可以被任何編程語言(如Java,Spring,Scala等)訪問
- 它提供了可以通過任何UI MVC框架(如Node JS)訪問的Java腳本
- 它支持兩種Java API:Cypher API和Native Java API來開發(fā)Java應用程序
Neo4j的優(yōu)點
- 它很容易表示連接的數(shù)據(jù)
- 檢索/遍歷/導航更多的連接數(shù)據(jù)是非常容易和快速的
- 它非常容易地表示半結構化數(shù)據(jù)
- Neo4j CQL查詢語言命令是人性化的可讀格式,非常容易學習
- 它使用簡單而強大的數(shù)據(jù)模型
- 它不需要復雜的連接來檢索連接的/相關的數(shù)據(jù),因為它很容易檢索它的相鄰節(jié)點或關系細節(jié)沒有連接或索引
Neo4j的缺點或限制
- Neo4j 2.1.3最新版本,它具有支持節(jié)點數(shù),關系和屬性的限制。
- 它不支持Sharding。
下載地址
http://www.neo4j.org/download 根據(jù)操作系統(tǒng)和位數(shù)進行下載
基本使用
由于臨時需要neo4j數(shù)據(jù)庫,neo4j的安裝和環(huán)境配置,以及過多的cql的語法就不去給大家說明了,大家可以參考w3cschool的教程
https://www.w3cschool.cn/neo4j
大家可以在本地安裝一個neo4j,然后在自帶的瀏覽器中去執(zhí)行一些簡單的操作命令
總結
這里我們初識了圖數(shù)據(jù)庫,知道了圖數(shù)據(jù)庫的關系模型,以及了解了neo4j的概念,優(yōu)缺點,大家有時間可以多去練習neo4j的語法,把它練得和sql一樣熟練
下節(jié)我們針對通話記錄分析這一業(yè)務去進行neo4j的使用:
我們通過導入的方式將通話記錄的csv文件導入到neo4j中去,并且用springboot的后臺去訪問這些節(jié)點和他們之間的關系,再通過d3去展示出來。
下一節(jié):neo4j(二).使用neo4j-import導入數(shù)據(jù)及關系
總結
以上是生活随笔為你收集整理的neo4j(一).初识图数据库neo4j的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 李群李代数(一)
- 下一篇: [工程经验] 机器人的控制方式与操作模式