概述
通过给visual studio code
安装插件的形式为公司提供一站式基于数据的解决方案,包括不限于数据采集,数据计算,数据抽取,数据展现等,平台提供javascript
(支持es6语法),python3
,ss
(原创数据处理领域语言)三种开发语言,让您可以轻松编写数据处理脚本。该脚本的执行触发形式支持以下方式:
- 手动任务:需要用户手动触发
- 定时任务:基于cron表达式的定时任务触发;
- 表触发任务:基于mysql表数据实时变动时触发,可灵活定义表/字段触发范围和数据合并滑动窗口(秒)触发;
- 流数据订阅任务:基于其他流数据形式变动的触发,流数据来源包括但不限于
kafka
,rabbitmq
,rocketmq
,redis
等
脚本可以被发布成RestAPI,这样您提取的数据被其他人引用或做成UI界面供其他用户浏览。
技术要点
vscode插件开发可参考:https://code.visualstudio.com/api/get-started/your-first-extension
-
语言服务:包括如何定义自定义领域语言语法高亮,Hints,自定义类调用的代码提示,代码模板等;
-
websocket通信:用于将代码中的打印信息推送到vscode的output区域,输出区文字颜色区分
restapi:所有与后台交互的请求服务都依赖于它,UI中几乎所有数据都基于该接口请求数据
-
外部页面引用:目前看只能基于WebView,并发布在插件本地
-
自定义面板:树的动态加载与渲染,按需加载不同右键菜单,树节点图标和样式
-
工具栏按钮扩展:整合运行按钮,自定义工具按钮等
-
事件底层联动交互
亮点功能
运行环境隔离
数据开发是一项非常严谨的工作,需要严格的上线流程,否则针对数据的物理修改和删除会引起致命性生产问题,所以,针对数据开发的流程,首先就要做到环境隔离,写脚本的工程师需要在测试环境调测脚本(包括危险的DML操作),测试环境验证通过后,提交脚本上线申请,由专员审核脚本,确保没有危险操作,在兼顾开发效率的同时,也确保脚本安全。
规范上线流程
vscode提供了体验友好的编程环境,插件提供了脚本上线统一的流程,包括:代码编写 -> 测试环境调测 -> 申请发布 -> 脚本上线/拒绝。
多种执行方式
提供了脚本四种模式的触发执行,几乎涵盖所有数据业务处理场景:
- 手动任务:跑批或一次性数据处理任务。
- 定时任务:定时触发的数据任务,如每日数据清盘,爬虫抓取等。
- 表触发任务:可用于数据实时计算,复杂触发器的编写,缓存更新等
- 流数据订阅任务:异步分步数据处理任务,流数据来源包括但不限于
kafka
,rabbitmq
,rocketmq
,redis
等,通过侦听相关队列实现数据的实时计算。
sqlone语言
为进一步降低提取数据的使用门槛,我们在平台中统一使用sqlone
语言(标准SQL语句)来提取包括kafka
,rabbitmq
,rocketmq
,redis
等的流数据和mysql
,oracle
,clickhouse
,ElasticSearch
等的数据库数据。
代码提示与模板
数据开发平台提供了一系列内置API库,详见文档:https://sdp-ui.idbhost.com/apidoc2/#/
平台除了对指定语言进行语法提示外,还支持对内置类/函数调用的语法提示,如下图:
关于ss语言
有了js
和python
脚本语言,为什么我们还需要原创ss
数据处理领域语言,这是一门语法更简单、灵活、智能的数据处理语言,主要面向产品部和数据部人员,可方便他们快速更面向可视化的提取数据,大大降低编程门槛。如它可以采用混编语言更快速提取数据,利用??
操作符可更安全处理空值,内置死循环判定等。如果要体验ss语言可访问:http://coding.sumslack.com
对外接口发布
调测好的脚本通过发布API操作可将接口返回的数据提供对外服务,在后续制作表单和自定义报表时提供服务,这样就可以开发自定义UI页面供外部使用。
可视化动态页面开发
通过简单的拖拉服务开发属于自己的UI页面,页面中的动态内容可由本平台开发的脚本语言通过发布API提供。