当前位置:网站首页>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 pathWITHpathRETURNpath
# 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 nodeSchematic 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边栏推荐
- I let the database lock the table! Almost fired!
- Accounting regulations and professional ethics [11]
- 科普达人丨一文看懂阿里云的秘密武器“神龙架构”
- Penetration test --- database security: detailed explanation of SQL injection into database principle
- Unity animation day05
- What does IOT engineering learn and work for?
- Using celery in projects
- How was MP3 born?
- Socks agent tools earthworm, ssoks
- Laravel simply realizes Alibaba cloud storage + Baidu AI Cloud image review
猜你喜欢

一图看懂ThreadLocal

Game theory

Working group and domain analysis of Intranet

Will the memory of ParticleSystem be affected by maxparticles

DC-2靶场搭建及渗透实战详细过程(DC靶场系列)

The new generation of domestic ORM framework sagacity sqltoy-5.1.25 release

Penetration test --- database security: detailed explanation of SQL injection into database principle

Transformer中position encoding实践

Cut! 39 year old Ali P9, saved 150million

Intranet penetrating FRP: hidden communication tunnel technology
随机推荐
QT graphical view frame: element movement
一图看懂ThreadLocal
Principle and general steps of SQL injection
Expression #1 of ORDER BY clause is not in SELECT list, references column ‘d.dept_ no‘ which is not i
How to decrypt worksheet protection password in Excel file
[North Asia data recovery] data recovery case of database data loss caused by HP DL380 server RAID disk failure
Hair and fuzz interceptor Industry Research Report - market status analysis and development prospect forecast
The content of the source code crawled by the crawler is inconsistent with that in the developer mode
The 17 year growth route of Zhang Liang, an open source person, can only be adhered to if he loves it
APOC自定义函数和过程
CMPSC311 Linear Device
Interface fonctionnelle, référence de méthode, Widget de tri de liste implémenté par lambda
Proxifier global agent software, which provides cross platform port forwarding and agent functions
对人胜率84%,DeepMind AI首次在西洋陆军棋中达到人类专家水平
Recommend 10 excellent mongodb GUI tools
Intranet penetrating FRP: hidden communication tunnel technology
How was MP3 born?
Model fusion -- stacking principle and Implementation
Accounting regulations and professional ethics [7]
error: ‘connect‘ was not declared in this scope connect(timer, SIGNAL(timeout()), this, SLOT(up