当前位置:网站首页>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
边栏推荐
- Proxifier global agent software, which provides cross platform port forwarding and agent functions
- Selenium browser (2)
- The vscode waveform curve prompts that the header file cannot be found (an error is reported if the header file exists)
- Transformer中position encoding实践
- 时序图数据建模与产业链分析
- .Net 应用考虑x64生成
- [native JS] optimized text rotation effect
- Understand Alibaba cloud's secret weapon "dragon architecture" in the article "science popularization talent"
- Scientific research cartoon | what else to do after connecting with the subjects?
- Using celery in projects
猜你喜欢
Opencv learning -- geometric transformation of image processing
Intranet penetrating FRP: hidden communication tunnel technology
What should ABAP do when it calls a third-party API and encounters garbled code?
Principle and general steps of SQL injection
Audio and video technology development weekly | 252
TypeError: list indices must be integers or slices, not str
Anta is actually a technology company? These operations fool netizens
嵌入式软件架构设计-函数调用
对人胜率84%,DeepMind AI首次在西洋陆军棋中达到人类专家水平
I let the database lock the table! Almost fired!
随机推荐
Sql实现Split
Statistical learning: logistic regression and cross entropy loss (pytoch Implementation)
. Net delay queue
Market trend report, technical innovation and market forecast of electrochromic glass and devices in China and Indonesia
China tall oil fatty acid market trend report, technical dynamic innovation and market forecast
What is torch NN?
@EnableAspectAutoJAutoProxy_ Exposeproxy property
What is torch NN?
Stress, anxiety or depression? Correct diagnosis and retreatment
Research Report on surgical otorhinolaryngology equipment industry - market status analysis and development prospect prediction
Accounting regulations and professional ethics [10]
[native JS] optimized text rotation effect
Market trend report, technical innovation and market forecast of tetrabromophthalate (pht4 diol) in China
如何为ONgDB核心项目源码做贡献
China Indonesia adhesive market trend report, technological innovation and market forecast
时钟轮在 RPC 中的应用
Accounting regulations and professional ethics [7]
实战:fabric 用户证书吊销操作流程
Penetration test --- database security: detailed explanation of SQL injection into database principle
嵌入式软件架构设计-函数调用