开发者学堂课程【阿里云流计算使用教程:阿里云流计算新手任务二(二)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/432/detail/5382
阿里云流计算新手任务二(二)
(2)点击 RDS 中注册数据存储,区域选择华北2,输入刚生成的示例 ID,输入名字 test_03,用户名以及密码,注册即可。
(3)以上 Datahub 和 RDS 注册成功,接下来进入开发阶段。新建一张表叫 test_03,新建成功,选中数据存储先找到 Datahub 中的 test_03,将 Datahub 中的源表作为输入表引用,数据自动生成。
(4)找到 RDS 中的 test_03,将这张表作为结果表引用,也会自动生成信息,可以从表中可以看出源表的字段和结果表的自段,类型、引用地址、账号、密码、引用结果表和源表表名等等。
(5)将计算逻辑写入,这样整个调试结束。
(6)整个测试逻辑是:
创建源表、创建结果表、计算逻辑。为了更方便更直观在控制台上看到整个数据流程,先写了测试数据,这个测试数据不会和运维空间有任何关系,因为开发和运维是两个独立的空间。
(7)点击调试,选择上传数据,可以从数据预览中看到整个数据,点击调试,得到调试结果。
阿里云流计算在计算数据时,会将整个数据运算过程全部打印在控制台,无论是真实数据还是测试都是一样的。到后期存储时,会经过下游的设置,对数据进行踢重,最后保留在数据库中的数据可能仅有1个。
(8)点击上线,上线成功后,点击运维,跳转到运维页面,可以看到作业名称等信息,点击启动。显示运行后启动成功,点击查看。
(9)显示运行后启动成功,点击查看。进入到真正运维空间,可以看大盘作业仪表盘,作业上下游等,刚才已经将 Datahub 中数据上线到真正开发环境中,现在的 datahub 表中是没有数据的,刚才只是在开发中测试的一个数据,现在要将真实数据上传到 datahub 中去。
(10)点击数据采集中的文件上传,选择 teat_03,可以看到创建时间、修改时间等等,但是没有数据,选择需要上传的数据,点击上传文件。
跳回到 RDS 页面,找到数据库,查看是否将信息写入其中。
在数据库中成功显示结果500,并没有像之前开发一样逐条打印信息,而是只打印了最终结果,是因为到了下游经过存储设置,进行数据踢重,最后将数据库中的数据保存到 RDS 中。
二 、最佳实践
隔离:开发和生产运行隔离,避免线上影响。
调试:多用调试诊断问题,可有效避免简单逻辑错误。
预发:不在现有作业修改逻辑,新建作业预发上线。
三、生产运维
在生产运维时,会产生大的数据显示,图表显示,会产生以下问题。
业务延时
反映当前处理的数据到哪儿了?
计算耗时
反映流计算处理一条数据平均耗时
数据输入
当前读取上游数据的性能
数据输出
当前写出下游数据的性能
总结:
在大的开发运维页面中,大概有15种数据显示,实时显示数据显示情况。
如下:
1.异常检测:提供底层 Java 运行异常信息
2.数据倾斜:同一阶段节点数据是否分配均匀
3.资源消耗:当前作业任务消耗的资源
4.并发配置:并发数/CU 数比率,合理的区域范围在【5-50】之间
5.业务延迟:当前数据时间-数据产生时间=业务延时,业务延迟越低越好
6.计算耗时:处理一批流数据平均耗时
7.数据输入:数据源输入表的 RPS 统计
8.数据输出:输出表的 RPS 统计
9.CPU 占用:作业的 CPU 占用的情况
10.内存占用:当前单个 Worker 内存使用量
11.维表 RT:每次读取维表数据的 RT,单位为毫秒,维表是源表的关联表
12.源表 RT:每次读取源头数据的 RT,单位为毫秒
13.维表的命中率:JOIN 关联命中在 Cache 的比率,太低会极大影响性能
14.维表关联率:关联查询成功的数据百分比,为0代表全部关联失败
15.源表脏数据:源表读取数据出现脏数据
最佳实践
持续运行:相比于离线,流式作业不存在完毕或者退出情况!
检测错误:当有错误发生时,作业会处理延迟。
设立告警机制:配置延时监控,当延时过大自动触发告警。
多看大盘和文档:阿里云流计算提供了丰富的运维指标和性能文档。