目录
一、项目背景
某工厂机器在生产过程中产生大量数据以文本格式存在机器端,用户想要检索查看数据非常困难,需要开发一个系统解析数据,并在网页中显示各种形式的数据。
二、技术栈
语言: C#、Python、Typescript
框架:.Net、Django、Angular
DB:Oracle、SQL Server
三、解析数据架构设计
架构主体分以下几个component:
- Task Schedule Component
负责管理task,创建、启动、结束等操作
- File Access Component
从机器端或者第三方系统取得操作文件(FTP/Http/Share Folder)
- DB Access Component
操作数据库
- Utility Component
帮助工具组件
- Logger Component
日志组件
- Processor Component
负责创建多线程处理工作
- Parser Plugin Component
解析各种类型的文件,产生新文件类型时,需要新开发一个对应的parser plugin
四、工作Flow
主要问题处理方式:
- 用一个配置文件管理可以创建哪些task
- 存在一个常启动的Windows service,每隔一段时间(10mins)会启动task,开始解析该时间段内机器产生的数据文件
- 存入数据库数据量太大,运用DB同义词方式,创建多个实例,并且需要定期删除失效的DB实例,以确保系统响应速度
- 创建master表管理不长变化信息,如机器号,可解析文件类型等
五、总结
由于物理设备容量限制,该系统只能浏览一段时间内的历史数据,task处理速度上,基本可以满足需求,方案改进可以采用物联网边缘计算设计方案。