从本周开始,项目组有了一个新项目,是一个企业级的产业生态图谱项目,工期很急,组长说要最近要997了  ̄□ ̄||。所以本周内容基本都和项目开发有关。
1. 功能列表及实现:
4.7 产业政策:
有现成接口:/api/policy/chain (app_chain_svc: ChainPolicySearchController)
http://localhost:8088/app-chain/policy/chain
(chain_policy_result无数据,在25服务器10007端口的app_graph)
√ 4.6 产业新闻:
有现成接口:/api/news (app_chain_svc: NewsController)
http://localhost:8088/app-chain/news
4.5 产业区域:
√ 1) 查询企业名单列表:https://clue.chinascope.com.cn/api/company/industry
http://localhost:8088/app-chain/company/industry
√ 2) 查询地图数据接口(直接放到文件服务器上):
https://clue.chinascope.com.cn/lib/china-geo-json/cn_100000.json?_v=1692689241932
3) 查询产业区域分布接口:
http://localhost:8088/app-chain/enterprise/distribution/stat?treeId=1937&type=all
响应参数(app_chain_map_summary表无数据):
√ 4) 查询全部企业数量接口:
http://localhost:8088/app-chain/enterprise/distribution/tagOne?treeId=1936
√ 4.2 产业链图谱
√ 1) 查询产业链图谱:
http://localhost:8088/app-chain/csf/api/v1/selectedchain/1937/treedef
请求参数:/{chainHisId}/treedef
√ 2) 企业分布头部查询企业列表:
http://localhost:8088/app-chain/company/distribution/top/list
4. 首页
https://clue.chinascope.com.cn/api/company/distribution/top
https://clue.chinascope.com.cn/api/enterprise/distribution/tagTwo?treeId=2037®ion=CSF_CN_110000&type=qual&_v=1692770901234
独角兽企业、上市公司等数据从哪里获得?
产业节点数:查selected_ind_chian_node表:
SELECT count(id) FROM `selected_ind_chain_node` where chain_his_id = 1936;
企业数量:复用/enterprise/distribution/tagOne?treeId=2037的部分逻辑
√ 1) 查询产业链节点数量和企业数量接口:
http://localhost:8088/app-chain/industry/chainNodeAndEnterpriseNum?treeId=1937
2) 产业链优质企业去哪里找?
4.4 产业分析:
https://clue.chinascope.com.cn/api/product/2037?summaryType=1&_v=1692788674468
app_summary_data表里无数据
√ 4.2 产业工艺图:
http://localhost:8080/config/indusryProcessDiagram?treeId=1936
√ 4.1 产业KPI:
http://localhost:8088/app-chain/product/KPI?industryCode=CSF_10101030
2. 缓存和数据库一致性问题,看这篇就够了:(redis和mysql的缓存一致性问题):缓存和数据库一致性问题,看这篇就够了 - 知乎
数据量小时,可以直接读写数据库。
数据量稍微大时,可以加一层redis,读操作直接访问redis。
最简单方案:全量数据刷到缓存中(不设置失效时间;写请求只更新数据库,不更新缓存,读请求只访问redis;启动一个定时任务将数据库中的数据更新到缓存中)(缓存命中率低,数据不一致,适合业务体量小,且对数据一致性要求不高的业务场景)
3. Invalid bound statement (not found)出现的原因和解决方法:
Invalid bound statement (not found)出现的原因和解决方法_普通网友的博客-CSDN博客
配置mapper xml文件的路径 classpath:doris/marketing/mapper/*.xml
4. unversioned files:没有版本号的文件,新增加的文件没有提交到git上过,所以没有版本号,提交git上时要注意上传unversioned files。
5. @MapperScan(“需要扫描的包的地址”);
同一个服务连接多个数据源时(多个mysql服务器,doris,),每个数据源配置中的@MapperScan()扫描的包不能相同,不然会报错。@MapperScan()扫描的是当前数据源下的数据库/表的信息,所以多个数据源之间扫描的包不可能有相同的。
数据库配置文件在Apollo中,通过各个数据源配置中的@MapperScan()扫描对应包下的数据库表!
6. bean出错一般有两个原因
1)bean所在的包未扫描到,这是可以移动文件位置,或者新增配置@MapperScan()
2)@Autowired是按类型加载,倘若有两个相同类型的bean并使用@Autowired注解注入,这时就会编译报错,解决方案是定义bean时加上name字段,@Bean(name=”a”); 然后在@Autowired注解下加上@Qualifier(name=”a”)这样就可以找到对应的bean。另一种解决方案是使用@Resource注解(功能类似,@Autowired是Spring定义的注解,而@Resource是java定义的注解),是通过name加载bean(byName)。一般默认类名首字母小写即为bean的name。
7. 解决xml文件高亮显示问题(xml文件前的图标变灰):
Idea中setting - File types的xml文件中添加*.xml配置
8. Doris数据库简介:
Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。
Apache Doris 最早是诞生于百度广告报表业务的 Palo 项目,2017 年正式对外开源,2018 年 7 月由百度捐赠给 Apache 基金会进行孵化。2022 年 6 月,Apache Doris 成功从 Apache 孵化器毕业,正式成为 Apache 顶级项目(Top-Level Project,TLP)
Doris整体架构如下图所示,Doris 架构非常简单,只有两类进程。
Frontend(FE),主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。
Backend(BE),主要负责数据存储、查询计划的执行。
在使用接口方面,Doris 采用 MySQL 协议,高度兼容 MySQL 语法,支持标准 SQL,用户可以通过各类客户端工具来访问 Doris,并支持与 BI 工具的无缝对接。
在存储引擎方面,Doris 采用列式存储,按列进行数据的编码压缩和读取,能够实现极高的压缩比,同时减少大量非相关数据的扫描,从而更加有效利用 IO 和 CPU 资源。
Apache Doris 被广泛应用在以下场景中:
报表分析、即席查询、统一数仓构建、数据湖联邦查询
8. Doris和MySQL的对比:
Doris使用的是列式存储模型,而MySQL使用的是行式存储模型。列式存储模型可以在大规模数据处理和分析中取得更好的性能,而行式存储模型则更适合于小规模的事务处理。
Doris与MySQL的异同分析与对比:Doris与MySQL的异同分析与对比 - 老白网络
2023.08.21:
1. 看项目代码、熟悉产业视图相关功能的数据库表
2. 电信卡没网 导致maven中下不下来包,最后用的U盘导的包,换成了移动卡才得以解决(破网太烂了!)
3. 成功跑通代码!
4. 功能实现:
产业政策:/api/policy/chain (app_chain_svc: ChainPolicySearchController)
2023.08.22:
1. 数据库中的本地建表还没有(在25服务器,21服务器为基础数据表,25服务器为业务表),后端的数据库配置在哪里(apollo),用的哪一个数据库(app_graph)?本地自建表的语句有吗(已经建了)?表的数据有吗(chian_policy_result暂时没有)
2. 查询地图数据接口未找到?
2023.08.23:
1. 梳理生态图谱能复用的接口,并用postman进行接口测试,确定请求参数和响应参数
2. 产业链优质企业去哪里找?
3. 实现查询产业链节点数量和企业数量接口
4. 每个接口后的_v=1692691513028什么意思?是否可以去掉?
2023.08.24:
1. 梳理现有接口开发进度
2. 查企业分布接口无数据的原因(app_chain_map_summary表为空)
3. 查地图数据接口报错原因(json数据没在后端代码上,直接部署到了文件服务器里)
3. 写产业api接口
4. 当mybatis传递多个参数时,必须用@Param注解!(1个参数时可以不加注解)
产业链优质企业的关联表(chain_good_company表)
产业标签
产业区域分布接口无数据(app_chain_map_summary表为空)
产业政策接口无数据(chain_policy_result表为空)
产业分析表接口无数据(app_summary_data表为空)
2023.08.25:
1. 来隆福上班
2. 写接口文档
3. 产业政策接口 返回结果加上 政策总条数total(为了前端使用分页)
4. 测试产业新闻接口的分页
2023.08.26 加班:
1. 编写接口文档
2. 实现两个接口(产业链标签、优质企业列表)
3. @MapperScan(“”) 扫描包,否则可能找不到bean
4. 数据库配置等配置信息在Apollo里
5. 产业工艺图没有url数据(dict_config_info表);产业链标签(s_company_base_dim无数据)、优质企业(s_company_base_dim 无数据)两个接口无返回数据
6. 服务器上的 产业政策的响应中total为null(应该是部署的代码未更新的问题),其余接口已在服务器上成功测试???(重新发版?)
7. 遗留问题:xml文件高亮显示;doris与mysql的区别;idea个性化设置?