热爱开源,提升实战能力!附TDengine暑期2021任务列表

开源软件供应链点亮计划 – 暑期 2021(以下简称 暑期 2021)是由 中国科学院软件研究所 与 openEuler 社区 共同举办的一项面向高校学生的暑期活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展。组委会联合各大开源社区,针对重要开源软件的开发与维护提供项目,并向全球高校学生开放报名。

报名地址:https://portal.summer-ospp.ac.cn/summer/login

TDengine社区已加入开源软件供应链点亮计划。学生可自主选择感兴趣的项目进行申请,并在中选后获得TDengine社区导师(资深、高水平的程序员前辈)亲自指导的机会。根据项目的难易程度和完成情况,参与并按要求完成项目的同学,除了能获得主办方提供的奖金和证书奖励外,还能领取TDengine官方定制的纪念品一份,表现优秀的同学,还可以被推荐至TDengine全球顶级开源团队入职/实习。

学生指南:https://summer.iscas.ac.cn/help/student/

TDengine社区提供的任务列表如下。

项目一:TDengine 多节点集群工作状态的可视化仪表盘

项目描述:在支持大数据量的写入和查询时,TDengine 会配置为多个系统节点组成集群的工作方式,尽管可以通过监控系统对集群中每个节点的工作状态分别进行分析,但信息较为繁复不够直观。期望能建立一个直观的可视化仪表盘,利用单块屏幕的显示空间,无需拖动就能展示集群整体的拓扑情况、集群中所有节点的工作状态和负载状态。

难度:低

主导师姓名/联系方式:王冠/gwang@taosdata.com

项目产出要求

  1. 集群仪表盘的需求分析文档
  2. 同类工具的调研分析
  3. 软件架构设计文档
  4. 功能实现的程序源代码
  5. 安装使用文档

项目技术要求

  1. 熟悉 JavaScript、TypeScript 等编程语言,Vue 或 React 等前端框架
  2. 通过学习,掌握基本的 SQL 查询语句用法
  3. 展示集群物理节点的状态
  4. 以统计结果可视化的方式,展示物理节点内虚拟节点的状态
  5. 以可视化的方式,展示物理节点负载
  6. (可选)提供时间线功能,能回溯仪表盘中数据的历史状态
  7. (可选)系统异常状态的可视化提醒

项目二:创建时序数据库 TDengine 的 Web Shell 工具

项目描述:TDengine 目前已经提供命令行界面风格的客户端工具 taos shell,本项目期望将这一工具移植为 Web 应用在浏览器中运行,这样用户就能免去客户端安装,在任何具备网络连接和浏览器工具的设备上方便地进行数据操作和系统的管理维护。

难度:中

主导师姓名/联系方式:王冠/gwang@taosdata.com

项目产出要求

  1. Web Shell 的需求分析文档
  2. Web Shell 的同类工具调研分析
  3. 软件架构设计文档
  4. 功能实现的程序源代码
  5. 安装使用文档

项目技术要求

  1. 熟悉 JavaScript、TypeScript 等编程语言,Vue 或 React 等前端框架
  2. 在连接数据集群后,能执行 SQL 指令
  3. SQL 返回结果,如果是二维表格,则支持在前端的排序和筛选
  4. 历史指令、历史查询结果的回溯
  5. (可选)采取响应式设计,支持在手机浏览器上的使用
  6. (可选)SQL 指令自动补全功能

项目三:时序数据演示案例的 TDengine 移植(芝加哥犯罪事件)

项目描述:time-series-demo(https://github.com/mesosphere-backup/time-series-demo)是基于芝加哥犯罪记录开放数据(https://data.cityofchicago.org/Public-Safety/Crimes-2001-to-Present/ijzp-q8t2)而创建的时序数据处理系统的演示性开源项目。该项目的分析功能丰富、可视化呈现的界面设计生动有趣,但依赖的软件模块比较复杂,部署和使用也都比较困难。 本项目计划对这一演示系统进行移植和改造,以 TDengine 作为唯一的数据存储介质和计算引擎,简化系统整体结构,同时也作为时序数据库应用的一个样例供开发者参考。 

难度:高

主导师姓名/联系方式:霍林贺/lhhuo@taosdata.com

项目产出要求

  1. 芝加哥犯罪记录数据的导入脚本
  2. 犯罪数据的分析脚本逻辑移植
  3. Grafana 可视化工具的适配
  4. 网页可视化界面的时序数据库存储适配
  5. 项目的部署、使用文档

项目技术要求

  1. 通过学习,基本了解 Scala 编程语言的使用
  2. 通过学习,了解时序数据库的基本使用原理
  3. 了解 HTML5、JavaScript 等基于浏览器的前端技术
  4. 通过学习,了解 Spark 中数据分析任务的基本逻辑

项目四:TDengine Mac 移植

项目描述:本项目需要将 TDengine 移植到 Mac 平台,实现绝大部分功能在 Mac 系统的正常运行,支持符合 Mac 平台规范和安装方式。

难度:低

主导师姓名/联系方式:桑树多/sdsang@taosdata.com

项目产出要求

  1. 相关代码修改,提交至 TDengine 在 GitHub 的仓库
  2. 修改与之相关的文档内容

项目技术要求

  1. TDengine 包含客户端和服务端可以完整运行在 Mac OS X 平台,支持 x86 64位版本以及 arm 64位版本(apple silicon)
  2. TDengine 相关测试用例可以全部通过
  3. 符合 Mac 平台软件规范,例如安装路径,配置文件,安全策略等
  4. 支持 DMG 安装包和 homebrew 方式安装

项目五:TDengine在线管理工具

项目描述:本项⽬需要完成TDengine在线⼯具的开发,可以将TDengine常规的管理操作在线上环境实现。详细要求⻅“项⽬技术要求”。

难度:中

主导师姓名/联系方式:霍林贺/lhhuo@taosdata.com

联合导师姓名/联系方式:桑树多/sdsang@taosdata.com

项目产出要求

  1. 管理⼯具的源码,需提交⾄TDengine的GitHub仓库
  2. 完整的软件设计文档及功能列表
  3. 完整的部署文档及使用说明

项目技术要求

  1. 查看TDengine健康状态
  2. 数据库、超级表、表的树状管理器,支持数据库设置、超级表、表结构的查看及编辑
  3. 执行自定义SQL语句,并对固定SQL语句提供快捷操作
  4. 数据导入导出,支持JSON、CSV㩐多种格式
  5. (可选)集群管理,状态监控
  6. (可选)启用或禁用TDengine的其他支持模块,包括bailongma对Prometheus或Telegraf的支持模块的启动、状态、停止等功能,及其他社区支持模块的管理

项目六:TDengine的逻辑备份工具

项目描述: 本项目需要完成TDengine逻辑备份工具的开发,可以将TDengine中的数据备份为SQL脚本。详细要求见“项目技术要求”。

难度:低

主导师姓名/联系方式:杨志宇/zyyang@taosdata.com

联合导师姓名/联系方式:桑树多/sdsang@taosdata.com

项目产出要求

  1. 逻辑备份工具的源码,提交至TDengine的github仓库
  2. 软件单元测试用例
  3. 软件设计文档

项目技术要求

  1. 逻辑备份工具能够TDengine内的全部数据,导出的SQL可以重新写入其他TDengine实例
  2. 逻辑备份工具能够指定需要备份的数据库,或者超级表,或者指定范围的子表,最好能够指定要备份的字段
  3. 逻辑备份工具能够指定schema数据和时序数据备份为不同文件,能够指定每个超级表/子表一个备份文件,最好能够指定将数据备份为指定的文件个数
  4. 逻辑备份工具应该能够保证充分利用计算机资源,具有较好的备份性能
  5. (可选)逻辑备份工具能够指定备份策略,在指定时间进行备份,周期执行备份任务;同时,也可以手动执行备份任务
  6. (可选)逻辑备份工具具备日志功能,记录备份过程的关键信息,错误信息等
  7. 使用Java开发
  8. (可选)如果带图形化的页面,建议采用BS架构,使用Vue或React作为前端框架,后端使用Springboot、Spring等技术