当前位置:网站首页>Sequence diagram data modeling and industrial chain analysis
Sequence diagram data modeling and industrial chain analysis
2022-07-04 16:39:00 【Ma Chao's blog】
Use chart data to analyze time series data of industrial chain - Design of data model
- Function and process function introduction
- Complete implementation - Build company and product sequence diagram data
- Query case - analysis ' Consumer goods trading ' industry 2020Q2 Total quarterly revenue
- Other information
Design of data model
industry 、 product 、 Company related industrial chain data modeling , Include product level maps 、 Industry stratification map 、 Upstream and downstream map of the industrial chain 、 Company and product atlas . The following is mainly the implementation scheme of sequence diagram data modeling of company and product revenue .
Function and process function introduction
- HTTP request
RETURN olab.http.post('api-address','input')
- Reset MAP- Remove incoming KEY
RETURN olab.reset.map({map},{keys}) AS value
- Generate JSON-STRING
RETURN olab.convert.json({object})
Complete implementation - Build company and product sequence diagram data
- In the following implementation, the timing data related to revenue is used JSON The format data modeling is stored in the attributes of the relationship
The following implementation integrates GraphQL-API、olab-apoc Components 、 Access database and other operations , The constructed graph data finally stores the timing data in a JSON Array .
CALL apoc.periodic.iterate('CALL apoc.load.jdbc(\'jdbc:mysql://contentdb.crkldnwly6ki.rds.cn-north-1.amazonaws.com.cn:3306/database?user=datalab_dev&password=datalabgogo&useUnicode=true&characterEncoding=utf8&serverTimezone=UTC\',
\'SELECT calc.company_id AS fromCompanyId,pro.`name` AS `to`,CONVERT(DATE_FORMAT(calc.report_date,\\\'%Y%m%d%H%i%S\\\'),UNSIGNED INTEGER)
AS report_date,income,profit,product_income,product_income_ratio,product_profit,product_profit_ratio,\\\'id\\\' AS uniqueField,calc.id AS uniqueFieldID,\\\'chinascope_supply_chain.fin_secu_sam_product_calc\\\' AS jsDataApi FROM fin_secu_sam_product_calc calc RIGHT JOIN dict_product_rs pro ON calc.product_code=pro.`code` WHERE calc.update_time>=DATE_SUB(NOW(),INTERVAL 1 DAY)\')',
'WITH REPLACE(\'{"query": "{ horgByName(sourceCode: \\\\\\"company-id\\\\\\", sourceFlag: \\\\\\"chinascope\\\\\\") { name hcode }}","variables": null}\',\'company-id\',row.fromCompanyId) AS query,row WITH apoc.convert.fromJsonMap(olab.http.post(\'http://ip/ongdb/graphql\',query))
AS result,row WHERE result IS NOT NULL WITH result.data.horgByName[0].hcode AS fromHcode,result.data.horgByName[0].name AS fromName,row WHERE fromHcode IS NOT NULL WITH fromHcode,fromName,row.to AS toName,row
WITH fromHcode,fromName,\'HPRDCLS\'+apoc.util.md5([toName]) AS toHcode,row MERGE (from:HORGProductCalc {hcode:fromHcode}) SET from.name=fromName,from:HORG WITH from,toHcode,row MATCH (to: industry {hcode:toHcode})
WITH from,to,row WHERE from<>to WITH from,to,olab.reset.map(row,[\'fromCompanyId\',\'to\']) AS row OPTIONAL MATCH (from)-[r]->(to) WITH from,to,row,apoc.coll.union(apoc.convert.fromJsonList(r.detail),[row]) AS detail
WITH from,to,row,olab.convert.json(detail) AS detail,SIZE(detail) AS detail_size MERGE (from)-[r: product ]->(to) SET r.detail=detail,r.detail_size=detail_size', {parallel:false,batchSize:100})
YIELD batches,total,timeTaken,committedOperations,failedOperations,failedBatches,retries,errorMessages,batch,operations RETURN batches,total,timeTaken,committedOperations,failedOperations,failedBatches,retries,errorMessages,batch,operations;
Query case - analysis ’ Consumer goods trading ’ industry 2020Q2 Total quarterly revenue
- Inquire about ’ Consumer goods trading ’ All relevant products in the sub category of the industry
During data modeling, products are related to industries , Therefore, when used here, you can directly get , Pay attention to all the products of the sub industry of a certain industry .
# Expand PATH The way MATCH (indus: industry ) WHERE indus.name=' Consumer goods trading ' WITH indusCALL apoc.path.expandConfig(indus,{maxLevel:3, relationshipFilter:'NEXT>|<BELONG_TO',
labelFilter:'+ industry |/ product ', bfs:false, filterStartNode:true,uniqueness:'NODE_GOLBEL', limit:-1})
YIELD path
WITH
pathRETURN
path
# Expand NODE The way
MATCH (indus: industry ) WHERE indus.name=' Consumer goods trading ' WITH indus
CALL apoc.path.subgraphNodes(indus,{maxLevel:3, relationshipFilter:'NEXT>|<BELONG_TO',
labelFilter:'+ industry |/ product ', bfs:false, filterStartNode:true,uniqueness:'NODE_GOLBEL', limit:-1})
YIELD node WITH node
RETURN node
Schematic diagram of industry and product association structure
- ' Consumer goods trading ’ Industry related products 【 Correlation refers to the division of subordination , Here are the industry related products within the three levels of subordinates 】2020Q2 Revenue analysis 【 The case realizes the total revenue 】
MATCH (indus: industry ) WHERE indus.name=' Consumer goods trading ' WITH indus
CALL apoc.path.subgraphNodes(indus,{maxLevel:3, relationshipFilter:'NEXT>|<BELONG_TO',
labelFilter:'+ industry |/ product ', bfs:false, filterStartNode:true,uniqueness:'NODE_GOLBEL', limit:-1}) YIELD node WITH node
MATCH p=(node)<-[r: product ]-(:HORGProductCalc) WITH apoc.convert.fromJsonList(r.detail) AS detail
UNWIND detail AS map
WITH map WHERE TOINTEGER(map.report_date)>=20200331000000 AND TOINTEGER(map.report_date)<=20200630000000
WITH TOINTEGER(map.income) AS income
RETURN SUM(income)
# The total revenue is twotrillion
╒═════════════╕
│"SUM(income)"│
╞═════════════╡
│2215100453627│
└─────────────┘
- Sample diagram structure of products and companies .
Other information
- olab-apoc Components
https://github.com/ongdb-contrib/ongdb-lab-apoc
- apoc Components 【Neo4j Official open source components 】
https://github.com/neo4j-contrib/neo4j-apoc-procedures
边栏推荐
- [book club issue 13] coding format of video files
- Intranet penetrating FRP: hidden communication tunnel technology
- JS to realize the countdown function
- FIREBIRD使用经验总结
- Interface test - knowledge points and common interview questions
- Oracle监听器Server端与Client端配置实例
- ECCV 2022放榜了:1629篇论文中选,录用率不到20%
- Book of night sky 53 "stone soup" of Apache open source community
- Game theory
- What is the catalog of SAP commerce cloud
猜你喜欢
~88 running people practice
Understand Alibaba cloud's secret weapon "dragon architecture" in the article "science popularization talent"
What is torch NN?
How was MP3 born?
Hidden communication tunnel technology: intranet penetration tool NPS
DIY a low-cost multi-functional dot matrix clock!
Application of clock wheel in RPC
[North Asia data recovery] a database data recovery case where the disk on which the database is located is unrecognized due to the RAID disk failure of HP DL380 server
Working group and domain analysis of Intranet
D3D11_ Chili_ Tutorial (2): draw a triangle
随机推荐
Actual combat | use composite material 3 in application
FIREBIRD使用经验总结
. Net applications consider x64 generation
AutoCAD - set color
What encryption algorithm is used for the master password of odoo database?
Sql实现Split
Accounting regulations and professional ethics [11]
Research Report of exoskeleton robot industry - market status analysis and development prospect prediction
Scientific research cartoon | what else to do after connecting with the subjects?
Hidden communication tunnel technology: intranet penetration tool NPS
Vscode setting outline shortcut keys to improve efficiency
Overview of convolutional neural network structure optimization
Penetration test --- database security: detailed explanation of SQL injection into database principle
Essential basic knowledge of digital image processing
Principle and general steps of SQL injection
函數式接口,方法引用,Lambda實現的List集合排序小工具
Statistical learning: logistic regression and cross entropy loss (pytoch Implementation)
2021 Google vulnerability reward program review
Hair and fuzz interceptor Industry Research Report - market status analysis and development prospect forecast
Common knowledge of unity Editor Extension