小王是一名数据开发工程师,某天晚上正要下班,老板火急火燎地把他叫到了一间小黑屋。
老板:小王啊,之前让你分析的数据,处理的怎么样了?
小王:都搞定了,包括数据集成任务、离线任务、流计算任务,并且采用了流批一体化开发模式,数据都在数据库中了。
老板:噢,效率很高啊,很好。这样,现在有个新的Case,你看下要多久,有业务部门的系统想访问我们的结果数据,你看看怎么提供给他们,但我不希望把整个表给他们。
小王:老板,好办,可以开发一个数据API,提供给他们。
老板:开发一个API给他们,大概有多少工作量?
小王:从零开发一个API,需要编写数据库连接代码、编写API查询逻辑代码,编写API鉴权、流控、计量、管理等功能代码及页面,搭建Web服务器,部署服务,满打满算,一两周还是要的,就算先搞个精减版,三五天是至少的。
老板挠头……
小王:对了,老板,后续还要运维,比如双11还要给他们扩容呢。
老板:这可不行,时间太久了,客户明天早上就要。
小王沉默。
老板:你知道DataWorks的数据服务产品吗,听说可以一分钟生成一个API,还不需要你写一行代码呢!
小王:世间竟有如此神器!!一分钟就能搞出一个API啊,还不用写代码~!!
老板点头。
“你先去调研一下,试用试用再说”,说完老板就走了。
于是,小王打开了DataWorks数据服务页面。
传送门:
- 华东2(上海)Region:https://ds-cn-shanghai.data.aliyun.com/
- 华东1(杭州)Region:https://ds-cn-hangzhou.data.aliyun.com/
- 华北2(北京)Region:https://ds-cn-beijing.data.aliyun.com/
- 华南1(深圳)Region:http://ds-cn-shenzhen.data.aliyun.com/
其他Region正在陆续开放中,敬请期待。
数据服务产品开通:
若您已经升级到了DataWorks 2.0(上海Region已经升级完成),则数据服务是默认开通,若还没有升级到DataWorks2.0,则可以加入文末的钉钉群,提供云账号,申请开通。
产品开通之后,可以从DataWorks的主菜单进入,如下所示:
大概看了一会,小王就觉得这事有戏了。原来数据服务提供了快速将数据表生成API的能力,通过可视化的向导,简单三步配置,无需写一行代码就可以生成API,手快的话,一分钟搞定一个API绝对是没问题的。小王喜出望外,看来今晚不用熬夜了。
“有了数据服务,以后甚至可以直接让产品经理、运营、分析师自己去搞需要的API了,省得天天给我提需求”,小王在心里窃喜,马上动手撸了个API。
Step 1:配置数据源
首先要配置一下数据源,数据服务支持丰富的数据源类型,基本上常见数据源都囊括了,包含:
RDS/DRDS/MySQL/PostgreSQL/Oracle/AnalyticDB(ADS)/TableStore(OTS)/MongoDB/Lightning
配置数据源到DataWorks数据集成的数据源页面(上海Region传送门)进行配置。
Step 2:生成API
配置好数据源其实就完成了一大半的工作,因为生成API实在是太快了!
打开数据服务的API列表页面,点击“生成API”按钮,选择向导模式。
生成API只要三步,放心,比把大象装冰箱里要容易多了。
第一:填写API基础信息
很简单,都不需要过多解释。
第二步:配置API参数
这里以PostgreSQL数据源为例,选择要查询的表,设定好请求参数和返回参数即可。
第三步:测试API
测试API是为了验证上一步配置的API是否成功,填写请求参数值,点击开始测试即可。若测试成功,可以点击右下角的“保存为正常返回示例”,将当前测试返回值作为返回示例,供未来的API调用者参考。
至此,一个API生成了。
小王掐指算了下,根本不用1分钟!
回到API列表页面,点击“详情”可查看API的详情文档。连烦人的文档都不用我手写,真是棒极了。。
将API发布后,自己或者得到授权的人就可以调用这个API了。
搞完了这些,小王如释重负,有了数据服务,创建一个API就是小Case!
好学的小王考虑到,如果我的数据是放在MaxCompute中,我是不是必须要将数据手工同步到MySQL等在线数据库中呢?
进一步研究后,小王发现,数据服务支持MaxCompute Lightning,借助Lightning引擎,可以对MaxCompute表进行查询加速,还能直接访问Druid表。目前对于1TB以内的数据量,MaxCompute表可以实现秒级实时查询。大部分场景下,这个性能够用了。好奇的小王还在MaxCompute帮助文档中找到了Lighting的介绍文档(传送门)。
那么,我们来现场撸个查询MaxCompute表的API如何?
MaxCompute表直接生成API
MaxCompute Lightning服务目前处于公测阶段,未对全网用户开放。如需使用,您可以通过我们在阿里云官网上提供的公测试用申请页面申请公测期间的服务开通。也可以加入文末的钉钉群咨询。
配置Lightning数据源
开通Ligthning服务后,首先要配置一个Lightning数据源。
Lightning支持JDBC连接,因此推荐使用PostgreSQL数据源进行连接。
Lightning JDBC连接信息详见这里。
配置指南:
数据源类型:有公网IP
JDBC URL格式:jdbc:postgresql://endpoint:port/MaxCompute_Project_Name?sslmode=require
endpoint详见:Lightning访问地址(Endpoint)列表
port:443
MaxCompute_Project_Name:为你的MaxCompute项目名
注意:sslmode=require参数是必选的。(不能写成ssl=true)
用户名:访问用户的Access Key ID
密码:访问用户的Access Key Secret
生成API
生成API时,我们以脚本模式为例。脚本模式就是让你自己写查询SQL,功能比向导模式强大灵活很多,支持多表关联查询。
Select的字段就是API返回参数,请求参数在Where条件中指定,使用\${参数名}格式。编写好SQL后,点击“编辑参数”设置一下参数描述信息即可。
点击下一步测试,1秒左右就可以完成查询,是不是如闪电一般!!在大部分取数、报表、大屏场景中,一两秒的查询性能完全够用了。
同样的简单查询,直接查MaxCompute,大概需要耗费42秒。可见在这个case,Lightning的查询效率有约40倍的提升!有了Lightning引擎的加持,MaxCompute表可以实时查询,再也不需要手工来回同步数据啦!
“妥了!”,试用到这里,小王惊叹了一声。DataWorks数据服务简直就是数据开发和数据分析师的神器,以后再也不用求后端开发写接口了。
三下五除二,小王随手就把老板需要的接口撸完了,给老板发个了钉,合上电脑,骑着小电驴下班扬长而去。
API调用
生成的API如何调用呢?
首先你需要将API发布,在发布之前要先开通API网关。
这个发布操作就会将数据服务生成的API发布到API网关。
数据服务会默认在API网关中创建一个“dataworks_dataservice"应用,并将你的API授权到这个应用中。这个应用的AppKey会在数据服务的“API调用”页面展示。
然后通过API网关的SDK调用。
申请使用及产品咨询
欢迎加入钉钉答疑群:
群号:21993540
Enjoy it~