我工程实践的题目是《用户行为实时分析系统的设计与实现》。同类软件产品有:Flink、Siddhi、TDengine.
1.这些软件的开发者是怎么说服你(陌⽣⼈)成为他们的⽤户的?他们的⽬标都是盈利么?他们的⽬标都是赚取⽤户的现⾦么?还是别的?
这些软件的开发者宣传中称他们的软件易于使用。比如Siddhi和TDengine,它们的输入都是类SQL语句,学习成本不高。同时,这三款软件都是开源的,支持多种语言的开发接口,对开发者很友好。
他们的目标并不都是盈利。比如Siddhi和Flink,他们是为了公司内部处理海量数据使用的,开源出来,可以使更多的开发者投入到项目的维护和升级中去。而TDengine的目的是盈利,它是部分开源的,用户可以免费使用基础功能额,而类似集群的高级功能只有用户付费才可以使用。
2. 这些软件是如何到你⼿⾥的(邮购,下载,互相拷⻉、在线使用……)
从github或者官网上下载到本地使用的。
3.这些软件有Bug 么?⼜是如何更新新版本的?
这些软件都存在Bug,很多开发者或者使用者会在github上面提issues,这些issues中就就包括bug.
一般来说,这些软件都是在官网上发布新的版本,需要使用者自己去下载最新版本。也有的软件提供自动检查更新功能,有新版本会提醒使用者进行更新。
图1 Siddhi中的Issues
4.此类软件是什么时候开始出现的,同⼀类型的软件之间是如何竞争的? 发展趋势如何?
随着人们对实时海量数据计算的需求的发展,此类软件应运而生。
同类软件针对特定的使用场景和特定的用户进行竞争。比如Flink,它功能十分强大,是一个面向分布式数据流处理和批量数据处理的开源计算平台,提供支持流处理和批处理两种类型应用的功能。而Siddhi是一个轻量级的流数据处理引擎,支持类SQL的查询语句,是一个支持可扩展的,可配置的流式任务执行引擎。TDengine也支持类SQL的查询语句,它将数据库、消息队列、缓存、流式计算等功能融合一起,应用无需再集成Kafka/Redis/HBase/Spark等软件,大幅降低应用开发和维护成本,是一个全栈时序处理引擎。
目前,Flink凭借它优异的性能和良好的开源社区,在各大企业中得到了广泛的应用。Siddhi和TDengine也凭借自身的特点,在特定场景下发挥自己的作用。
5. 列举你在使⽤上述软件时观察到的“特殊”现象,它们和硬件有什么不同?这些能说明软件的某些本质特性么?
使用此类软件可以随意地复制,也可以根据自己的需要对源代码进行修改,可以方便地更新到最新版本。对于不同的操作系统,需要下载不同的版本。而对于硬件来说,可能可以进行一些修改,但是不可能随意地复制。
这些说明了软件的可移植性、可复用性和可维护性。
6.你个⼈第⼀次⽤此类软件是什么时候,你当时是⼏年级,班主任叫什么?在哪⾥,什么状态,当时的软件是如何得到的(买的正版,盗版,下载?)
由于此类软件专为从事云计算的开发者使用的,所以这次是我第一次使用此类软件。我是从Github上下载得到的。
7.你是如何精通这类软件的?它给你什么好处,坏处?
目前刚开始使用,并没有精通此类软件。这类软件可以帮助我进行数据的存储、计算和筛选。
8. 你现在还⽤它么,或者是同类软件的不同品牌,为何?
现在使用,是为了理解和学习此类软件的处理逻辑以及功能实现。
9. 这种软件再过10年,20年还会存在么,为什么?
会存在。因为今后的数据会越来越多,各大企业对海量数据的查询的需求也会越来越多。