Giter VIP home page Giter VIP logo

ta-panel's Introduction

Panel for TensorAnalyzor

The website for TensorAnalyzor

Dependencies

Configuration

1.准备gradle的属性配置文件gradle.properties

copy gradle-sample.properties gradle.properties

2.自行修改gradle.properties中的内容,设置激活的配置项,如dev

# 激活的配置文件
systemProp.spring.profiles.active = dev

3.准备激活的编译参数文件

cd src/main/resources
copy application.yml application-dev.yml

4.自行修改application-dev.yml中的内容

Build & Run

# a)安装前端依赖项
cd src/main/resources/static
yarn config set nodeLinker node-modules # 仅需设置一次
yarn config set npmRegistryServer https://registry.npmmirror.com # 可选 配置使用**区镜像,仅需设置一次
yarn --immutable
# b)编译java工程
cd ../../../..
gradle
# c)启动
gradle bootRun
# d) 可选.启动前端调试模式
cd src/main/resources/static
yarn dev

ta-panel's People

Contributors

acebear avatar alixiaolan avatar

Watchers

Aaric avatar Wang Mingqing avatar 邱启峥 avatar  avatar  avatar 刘亚坤 avatar 韩秋婉 avatar jenkins-ci avatar 孔德亮 avatar 廖宜贤 avatar 陈涛 avatar 汪杨 avatar Tyrone Shall avatar  avatar

ta-panel's Issues

设计一个基本的任务队列MongoAnalyzorTaskMgr

MongoAnalyzorTaskMgr

MongoAnalyzorTaskMgr 是一个任务队列,它有以下功能

  • 内部维护1个队列,等待执行的任务
  • 内部维护一个变量,当前正在执行的任务,所以这是一个只能一个个顺序执行任务的
  • 接受外部参数,创建一个新的任务,并放入等待执行队列中
  • 执行逻辑:如果当前没有正在执行的任务,则从等待队列中调度一个,成为正在执行状态
  • 可以查询过去创建的任务状态,可能的状态有:待执行,正在执行,执行完成并成功,执行完成但失败

任务

  • 当前仅实现一个“内部调试任务”
    以后会添加更多的任务类型,用于真实的数据分析

内部调试任务

  • 需要花5分钟执行完成,可以查询执行进度,比如已经执行了3分钟(不是等待了3分钟),那么进度就是60%
  • 没有实际的业务逻辑
  • 随机80%执行成功,20%执行失败,随便生成一条失败信息

设计要求

  • 注意是设计而不是自己去编码实现
  • 分解成一个个的classes或class中的methods
  • 以java代码形式提交class的占位文件,仅写public class SomeClassYourDesigned{ } 即可
  • 在issue描述这些class要怎么去实现
  • 一个issue的大约控制在4小时以内完成,可以更少
  • 如果一个class要实现的功能太复杂,可以拆成更多的小classes或者拆出更多的的methods,可以填充一些具体的粘合代码逻辑
  • 如果觉得有必要,可以规定参数/返回值的名称和类型,也是直接在代码里写占位方法public void SomeMethodYourDeisgn(int arg1, float arg2)
  • 如果这些issue被完成,那么上面提到的这些功能就会真的完成了

实现任务队列相关服务接口

  • 添加任务至队列

接收外部任务,将任务添加至待执行队列

  • 开始执行任务

按照任务添加至队列先后顺序获取数据,一次执行一个任务
调用 #37 【更改任务进度状态】接口,将任务进度状态更改为进行中

  • 结束执行任务

调用 #37 【更改任务进度状态】接口,将任务进度状态更改为已完成
调用 #38 【任务分析结果数据存储至数据库】接口,将任务分析结果存储至数据库

  • 任务执行失败

调用 #37 【更改任务进度状态】接口,将任务进度状态更改为失败

数据侦测结果展示

将数据侦测任务完成的结果展示在 分析结果 页面

  • 展示所有侦测数据集
  • 点击对应数据集,选择对应侦测任务查看具体分析结果 --接口来源 #20

实现任务进度服务相关接口

  • 任务进度数据存储至数据库(暂定mongoDB)

必填字段:任务类型、任务标示(可以是任务ID,随机数,不重复)、创建时间、数据库名、数据集名、任务状态(未开始、进行中、已完成、失败),任务执行开始时间、任务执行结束时间

  • 更改任务进度状态

根据任务ID更改任务进度

  • 查询任务进度数据

分页查询、默认查询20条每页、按照创建时间倒序
查询条件:任务类型、任务状态

实现任务分析服务相关接口

  • 创建任务

根据数据库名称、数据集名称获取对应数据、创建对应任务进度数据
调用 #37 【任务进度数据存储至数据库】接口,将数据进行持久化
持久化成功,调用 #39 【添加任务至队列】方法将任务添加至队列,返回任务ID
持久化失败,返回失败原因

提供一个任务分析进度数据查询接口

  • HTTP GET :/api/analyseTask/schedule

调用 #37 【查询任务进度数据】接口进行查询
可以根据任务类型、任务状态、任务创建时间进行查询
分页查询、按照创建时间倒序,默认每页20条数据

数据侦测数据集选择

在界面 创建新任务/数据侦测 中 展示一个 多选框单选框 供用户选择侦测的目标数据集

  • 界面风格和 创建新任务/计数和极值/选择待分析的数据 保持一致
  • 目标数据集列表由API /api/mongo/collections 获取
  • 下一步 按钮 进入下一个设定页面

设计并实现任务分析队列内部逻辑

  • 队列一次只执行一个任务,按加入任务的先后顺序执行
  • 需提供一个外部添加任务的方法,给到 #33 使用
  • 任务执行开始、结束、失败时需更改任务状态
  • 任务执行成功之后,将分析结果存入mongoDb,必要字段 -- 任务类型、任务ID、任务结果数据、创建时间
  • 项目每次重启时,需要加载所有任务状态为未开始、分析中的任务放入队列,进行重新分析
  • 当前阶段分析代码需实现#30【内部调试任务】模块逻辑

数据侦测任务状态和进度信息采集

  • 获取所有侦测任务状态和进度及其他信息,管理侦测任务

    • 获取所有任务的状态和进度、任务标示及其他信息

      参数:状态(参考)
      响应:任务相关信息集合

    • 点击取消之后,更改该任务状态,该任务取消侦测

      参数:任务标示
      响应:取消成功/失败

数据侦测数据集相关信息展示

在界面 创建新任务/数据侦测 中 展示所有数据表的数据信息。下一步之后,选择对应表字段进行提交侦测

  • 界面风格和 创建新任务/计数和极值/选择指标/摘要 的数据保持一致
  • 展示所有数据表的数据量(MB)、总行数 -- 接口来源#14
  • 选择对应的数据表(单选),点击下一步,展示所有该表所有字段(字段过多时,滑动展示)。-- 接口来源 #21
  • 展示需要侦测的字段,点击确定。跳转到 任务管理,展示侦测进度及其他信息,--详见#17

数据侦测数据表数据量信息采集

  • 获取数据集中每个数据表的数据量(MB)、数据总条数

    请求方式 GET
    请求地址:api/mongo/collectionSheetSize
    请求参数:无
    返回实体:数据表信息对象集合,示例如下:
    [
    {
    “collectionName”:"xxx", --数据表名称
    "collectionCount": 41043741, --总行数
    "collectionSize": 358899038414 --总数据量大小(MB)
    }
    ]

前端代码整理

语义化语录名称:将cmx目录改为components;
增加一些代码注释;
修改数据侦测/数据表列表的展示项:去掉index和描述项,只留下表名

设计几个API用于向前端返回任务结果

  • 可以是一个API,也可以是几个API
  • 任务是由 #29 创建的
  • 内部调用 MongoAnalyzorTaskMgr(#30)完成功能
  • 规定API的 GET/POST/PUT
  • 规定API的路径
  • 规定API的输入参数,输出结果
  • 前端通过这些即可知道如何编码

数据侦测数据表字段信息采集

  • 获取某个数据表中的字段,暂定取第一条数据的所有字段

    请求方式 GET
    请求地址:api/mongo/collectionSheetFields
    请求参数:collectionName --数据表名称
    返回实体:数据表字段集合,示例如下:
    [
    "volt_76Valid",
    "vehEPTEnFuelPumpOnReqValid",
    "volt_61",
    "volt_60",
    "volt_93Valid"
    ]

PLAN

  • 探测数据中的基本特征,哪些是时间字段,哪些是地理坐标,哪些是整型/浮点型/枚举型数据 #12
  • 数据时间分布
  • 数据地理分布

实现任务分析结果相关服务接口

  • 任务分析结果数据存储至数据库(暂定mongoDb)

必填字段:任务类型、任务ID(跟任务进度标示字段保持一致)、分析指标、分析结果

  • 查询任务分析结果数据

分页查询,默认20条每页,按照创建时间倒序查询
查询条件:任务类型、任务ID

数据侦测分析进度展示

在任务管理界面展示所有侦测任务的状态和进度及其他附加信息,管理侦测任务

  • 页面风格和 计数和极值/创建新任务/选择指标/摘要 点击确定按钮之后保持一致
  • 获取所有侦测任务的当前状态和进度,以及任务标示和其他信息, --接口来源#18
  • 点击 取消 按钮之后,任务不在继续进行侦测 --接口来源#18
  • 任务状态完成之后,将结果展示在 分析结果 里面 --详见 #19

实现创建任务内部逻辑

  • 根据参数{"db": "ai", "collection": "signal_gb"}创建一个任务
  • 任务创建完成之后,需将任务信息存储至mongoDb,必要字段 -- 任务类型、任务标示(不重复)、任务创建时间、任务开始执行时间、任务结束执行时间、任务状态(未开始、分析中、已完成、失败)
  • 调用 #34 添加任务方法,将任务加入任务分析队列
  • 返回任务ID或者失败原因

探测数据中的基本特征

探测数据中的基本特征,哪些是时间字段,哪些是地理坐标,哪些是整型/浮点型/枚举型数据

  • 向用户展示可选的数据集或数据表 #13
  • 用户选择1个/N个数据集或数据表 #13
  • 后端执行分析逻辑 #23
  • 分析进度展示
  • 分析结果展示

分解任务

  • 提示用户 数据集/数据表 的数据量(MB/GB)或者 共计多少行/条数据
  • 用户选定一个数据集/数据表后,向用户提示该数据集/数据表中的字段名称
    • 示例mongo数据中,有一些字段直接就在数据表中,有些嵌套在一个大的json内部
    • 考虑分成2个阶段实现,第一阶段不展开json,第二阶段展开json内的字段
  • 考虑后端分析耗时长短,决定是否设计任务执行进度提示
  • 考虑结果如何展示
  • 前后端任务需要拆开设计,以便分配给不同技能的开发人员
  • 任务优先级标定

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.