付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
系统
第8周DATAGURU与业数据分析社区系统讲师法律【】和幻灯片为炼数成金网络课程的教学资料,所有资料只能在课程内使用,丌得在课程以外范围散播,违者将可能被法律和经济责任。课程详情
炼数成金培训http:
DATAGURU与业数据分析社区系统讲师用Neo4J构筑图模型
引擎图数据,计算速度极快天生面向图的数据库引擎,便于Cypher语言可以简便地实现图查询的图数据库在引擎还在快速发展,封装
的图论算法。无法解决计算复杂度指数级增长的问题在分布式处理上还有改进空间DATAGURU与业数据分析社区系统讲师Cypher面向图数据查询和操作的丏用语言,可以对图进行查询或修改描述性语法,无需构造算法,类自然语言风格,类似SQL既适合开发者,也适合于数据库操作
进行即席查询也有执行计划,由Cypher引擎生成灵感来自于SQL和SPARQL(一种基于RDF的查询语言)支持基于单条语句或多条语句的事务DATAGURU与业数据分析社区系统讲师Cypher中的重要关键字DATAGURU与业数据分析社区系统讲师Cypher的例子DATAGURU与业数据分析社区系统讲师Cypher的算符数学算符比较算符算符字符串算符算符属性算符DATAGURU与业数据分析社区系统讲师表达式构成表达式的元素常数:数值,字符串,
型等标识符属性(collection)函数寻路模式DATAGURU与业数据分析社区系统讲师注释DATAGURU与业数据分析社区系统讲师PatternsCypher中最常用最
的用法,熟悉Pattern写法可以更能发挥Cypher的用于描述你要查找的数据的范围,通常和MATCH短语结合使用。给出了Pattern,Cypher就能知道怎样去定位你需要的数据Pattern的基本写法深度控制复杂写法DATAGURU与业数据分析社区系统讲师Start语句DATAGURU与业数据分析社区系统讲师Start语句DATAGURU与业数据分析社区系统讲师Match短语DATAGURU与业数据分析社区系统讲师Match短语DATAGURU与业数据分析社区系统讲师Match短语DATAGURU与业数据分析社区系统讲师Where短语DATAGURU与业数据分析社区系统讲师Where短语DATAGURU与业数据分析社区系统讲师Where短语DATAGURU与业数据分析社区系统讲师其它短语ReturnOrder
byLimitSkipWithDATAGURU与业数据分析社区系统讲师创建图Create语句Create
unique语句DATAGURU与业数据分析社区系统讲师例子DATAGURU与业数据分析社区系统讲师例子DATAGURU与业数据分析社区系统讲师修改数据Set语句Delete语句结合foreach短语DATAGURU与业数据分析社区系统讲师函数判定函数标量函数函数数学函数字符串函数DATAGURU与业数据分析社区系统讲师SQL
vs
Cypher手册第192页DATAGURU与业数据分析社区系统讲师Match的SQL对应DATAGURU与业数据分析社区系统讲师执行比较DATAGURU与业数据分析社区系统讲师本周内容数据模型应用开发模式DATAGURU与业数据分析社区系统讲师et数据模型:社交数据处理DATAGURU与业数据分析社区系统讲师算例:寻找有相同
的同事START
subject=node:user(name={name})MATCH
subject-[:WORKS_FOR]-,>company<-[:WORKS_FOR]-subject-[:INTERESTED_IN]->interest<-[:INTERESTED_IN]-RETURN .name
AS
name,COUNT(interest)
AS
score,COLLECT()
AS
interestsORDER
BY
score
DESCDATAGURU与业数据分析社区系统讲师算例:不
有相同
的人START
subject=node:user(name={name})MATCH
subject-[:INTERESTED_IN]->interest<-[:INTERESTED_IN]--[:WORKS_FOR]->companyRETURN .name
AS
name,
AS
company,COUNT(interest)AS
score,COLLECT()
AS
interestsORDER
BY
score
DESC,DATAGURU与业数据分析社区系统讲师图解DATAGURU与业数据分析社区系统讲师一个复杂查询START
subject=node:user(name={name})MATCH
p=subject-[:WORKED_ON]->()-[:WORKED_ON*0..2]-()<-[:WORKED_ON]-
-[:INTERESTED_IN]->interestWHEREWITHRETURN<>subject
AND
IN
{interests},
interest,
MIN(LENGTH(p))
as
pathL
AS
name,COUNT(interest)AS
score,COLLECT()
AS
interests,((pathLength
-
1)/2)
AS
distanceORDER
BY
score
DESCLIMIT
{resultLimit}DATAGURU与业数据分析社区系统讲师图解DATAGURU与业数据分析社区系统讲师执行原理DATAGURU与业数据分析社区系统讲师SaaSNet数据模型:实现 控制DATAGURU与业数据分析社区系统讲师算例:寻找用户能
的所有资源START
admin=node:administrator(name={administratorName})MATCH
paths=admin-[:MEMBER_OF]->()-[:ALLOWED_INHERIT]->()<-[:CHILD_OF*0..3]-company<-[:WORKS_FOR]-employee-[:HAS_ACCOUNT]->accountWHERE
NOT
(admin-[:MEMBER_OF]->()-[:DENIED]->()<-[:CHILD_OF*0..3]-company)RETURN
AS
employee,
AS
accountUNIONSTART
admin=node:administrator(name={administratorName})MATCH
paths=admin-[:MEMBER_OF]->()-[:ALLOWED_DO_NOT_INHERIT]->()<-[:WORKS_FOR]-employee-[:HAS_ACCOUNT]->accountRETURN
AS
employee,
AS
accountDATAGURU与业数据分析社区系统讲师图解DATAGURU与业数据分析社区系统讲师算例:检查用户是由
特定资源STARTadmin=node:administrator(name={adminName})e={resourceName})pany(resourceNamMATCH
p=admin-[:MEMBER_OF]->()-[:ALLOWED_INHERIT]->()<-[:CHILD_OF*0..3]-companyWHERE
NOT
(admin-[:MEMBER_OF]->()-[:DENIED]->()<-[:CHILD_OF*0..3]-company)RETURN
COUNT(p)
AS
accessCountUNIONSTARTadmin=node:administrator(name={adminName})
pany(resourceName={resourceName})MATCH
p=admin-[:MEMBER_OF]->()-[:ALLOWED_DO_NOT_INHERIT]->companyRETURN
COUNT(p)
AS
accessCountDATAGURU与业数据分析社区系统讲师算例:查找某账户的管理员START
resource=node:resource(name={resourceName})MATCH
p=resource-[:WORKS_FOR|HAS_ACCOUNT*1..2]-company-[:CHILD_OF*0..3]->()<-[:ALLOWED_INHERIT]-()<-[:MEMBER_OF]-adminWHERE
NOT
(admin-[:MEMBER_OF]->()-[:DENIED]->()<-[:CHILD_OF*0..3]-company)RETURN
AS
adminUNIONSTART
resource=node:resource(name={resourceName})MATCH
p=resource-[:WORKS_FOR|HAS_ACCOUNT*1..2]-company<-[:ALLOWED_DO_NOT_INHERIT]-()<-[:MEMBER_OF]-adminRETURN
AS
adminDATAGURU与业数据分析社区系统讲师图解DATAGURU与业数据分析社区系统讲师LogisticsNet数据模型:路由计算LogisticsNet网络基本元素DATAGURU与业数据分析社区系统讲师动态路由:时间段1DATAGURU与业数据分析社区系统讲师动态路由:时间段2DATAGURU与业数据分析社区系统讲师动态路由:时间段3DATAGURU与业数据分析社区系统讲师数据模型DATAGURU与业数据分析社区系统讲师细节DATAGURU与业数据分析社区系统讲师最短路径问题DATAGURU与业数据分析社区系统讲师最短路径问题DATAGURU与业数据分析社区系统讲师Cypher查询START
s=node:location(name={startLocation}),e=node:location(name={endLocation})MATCH
p1
=
s<-[:DELIVERY_ROUTE*1..2]-db1WHERE
ALL(r
in
relationships(p1)WHERE
r.start_date
<=
{intervalStart}
AND
r.end_date
>=
{intervalEnd})WITH
e,
p1,
db1MATCH
p2
=
db2-[:DELIVERY_ROUTE*1..2]->eWHERE
ALL(r
in
relationships(p2)WHERE
r.start_date
<=
{intervalStart}
AND
r.end_date
>=
{intervalEnd})WITH
db1,
db2,
p1,
p2MATCH
p3
=
db1<-[:CONNECTED_TO]-()-[:CONNECTED_TO*1..3]-db2WHERE
ALL(r
in
relationships(p3)WHERE
r.start_date
<=
{intervalStart}
AND
r.end_date
>=
{intervalEnd})WITH
p1,
p2,p3,REDUCE(weight=0,
r
in
relationships(p3)
:
weight+r.cost)
AS
scoreORDER
BY
scoreASCLIMIT
1RETURN
(nodes(p1)
+
tail(nodes(p3))
+
tail(nodes(p2)))AS
nDATAGURU与业数据分析社区系统讲师用子查询简化《Graph
Databases》第171页Java实现其它例子:《Neo4j手册》第7章DATAGURU与业数据分析社区系统讲师关于事务不锁Neo4j支持ACID所有数据修改必定触发事务缺省
级别是MITTED,通过手工加写锁可以获得最高
级别SERIALIZABLE节点级锁或联系级锁自劢死锁侦测所有未提交修改保存于内存,所以需要把大事务切分以免内存不足自劢加锁逡辑DATAGURU与业数据分析社区系统讲师Java不Neo4j的连接将Neo4j内嵌到java程序,《Neo4j手册》第4章Api列表:
/neo4j/1.9.2/apidocs/overview-
summary.htmlREST
API(《Neo4j手册》第5章,第22章),通过REST接口使用Cypher查询IBM
上的开发实战文章:
/
/java/j-lo-neo4j/DATAGURU与业数据分析社区系统讲师一段简单例程package
org.neo4j.examples;import
java.io.File;import
java.io.IOException;import
org.neo4j.graphdb.GraphDatabaseService;import
org.neo4j.graphdb.Node;import
org.neo4j.graphdb.Relationship;import
org.neo4j.graphdb.RelationshipType;import
org.neo4j.graphdb.Transaction;import
org.neo4j.graphdb.factory.GraphDatabaseFactory;import
org.neo4j.kernel.impl.util.FileUtils;public
class
Test
{public
enum
RelTypes
implements
RelationshipType{KNOWS}DATAGURU与业数据分析社区系统讲师续public
static
void
main(String[]
args)
throws
IOException
{FileUtils.deleteRecursively(
new
File(
"db"
)
);GraphDatabaseService
graphdb=new
GraphDatabaseFactory().newEmbeddedDatabase("db");Transaction
tx=graphdb.beginTx();try{Node
node1=graphdb.createNode(),node2=graphdb.createNode();node1.setProperty("name",
"1");node2.setProperty("name",
"2");Relationship
relationship=node1.createRela
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 拖拉机燃油喷射系统装试工岗前协同配合考核试卷含答案
- 玻璃加工工岗位协同配合考核试卷含答案
- 富集工班组建设知识考核试卷含答案
- 兽用中药制剂工岗中安全生产规范考核试卷含答案
- 中考满分作文精彩语段
- 运动营养师技术理论评优考核试卷含答案
- 纺丝凝固浴液配制工班组考核知识考核试卷含答案
- 第六单元测试卷学年统编版六年级上册语文
- 《史记》中的成语
- 新学期计划思想报告(3篇)
- 苏州工业园区胜浦街道2026年社工招聘考试【结构化面试题库+高分答题模板】(含考官评分要点)
- 综合类专职安全员c3证考试题库及答案
- 2026年幼儿园时食品安全培训
- 月饼安全生产管理制度
- 科目一考试题库(1073题完整版、含标准答案)
- 2024计量经济期末考全套押题卷及答案解析
- 六鑫LS系列伺服刀塔操作说明书
- 2025年度苏州城际铁路有限公司管理岗位公开招聘笔试参考题库附带答案详解
- 2025年绿盟科技服务方向笔试题及答案
- 我们周围的物体课件
- 乳腺癌案例教学教案
评论
0/150
提交评论