提到大数据,我们首先会想到3V,即:数据量大、业务复杂、速度快。而对开发者来说,我们无需关心什么是大数据,大数据会带来哪些影响。开发者的日常工作,主要是解决哪些业务问题,通过哪些技术手段增加企业的业务价值,并进一步提高用户体验。但是,如果我们能全面地了解大数据的当前和未来状态,可以让开发工作变得得心应手。
那么,开发人员在处理大数据时,需要记住哪些要领呢?
1、把基本流程自动化,重点关注业务问题
很多开发者都知道,要想构建一个更酷的解决方案,需要关注最重要的业务问题,并且要与各个部门通力合作,共同完成。但是,开发人员不了解的是,很多流行的大数据技术,只满足于特定用例,我们需要根据特定的应用场景,选择适合的解决方案。所以,在构建大数据解决方案时,我们要充分了解数据逻辑,构建数据提取规则,并考虑数据的遵从性和安全性要求,还要考虑如何与其他软件无缝集成。
如果只借助开发人员或者解决方案架构师的思维来考虑问题,我们的最终方案肯定不够全面,如何让我们的解决方案覆盖面更广,尽可能地解决更多的问题,其实是有规律可循的。首先,把思考数据来源作为常态;其次,我是否与主抓业务数据的人建立了合作关系;其三,我处理业务的结果是什么,业务人员是否能看到价值?
假如,你从事的是零售业,就应该从开发的角度进一步提高零售体验;假如你从事的是石油和天然气行业,就要想如何通过技术手段有效地从地下开采石油。总之,作为开发人员,要专注于如何为特定业务提供价值,进而影响到特定行业,而不是把大量时间都花费在横向功能的扩展上。
从头开始,构建一个端到端的数据管道。虽然一开始非常有成就感,但是后期随着企业业务的扩张,你需要构建10个、100个甚至1000个数据管道,就会被大数据所累了。因为你的原始代码限制了你数据管道的扩展能力。所以,把基本流程自动化,会让我们有更多时间关注专业的业务功能。
2、智能数据系统可解决大规模数据带来的问题
对于大规模数据,有人害怕,而人则觉得不足为奇,无非是提供更多的存储空间,把所有的数据存储下来。其实,过于担心和毫不关心,都不可取。
大数据虽然不是什么新鲜物种,但是随着数据量的增多,数据的安全性、数据访问等问题,就会接踵而来。一旦出现问题,由大数据带来的惩罚,就会被放大更多倍。大规模数据其实不止体现在容量上,在种类、使用方式等,都有很多不同点,我们需要通过自助式服务改变传统的大数据管理模式。并且,开发人员不能凭空想象随意构建大数据解决方案,需要通过大量的测试案例去规避一些性能、安全和可伸缩性等问题。
智能数据系统是一种新型大数据应用,也是过去软件开发过程中的核心应用。现在,智能数据系统也可以用于大数据开发,解决大数据系统的可靠性、可伸缩性和可扩展性等问题。
3、全面提升数据安全意识
无论是静止数据,还是动态数据,当数据返回数据中心时,请确保有足够的保护措施和服务器空间。尤其是静态数据,更要关注其安全性。必要的时候,开发人员要接受专业的数据保护培训。
另外,不只是开发人员自己要有数据保护能力,还要让整个企业都要有提升数据安全性的意识。
4、远离关系型数据库
从数据库的选择上,要远离关系型数据库。关系型数据库非常善于处理事务的更新操作,尤其是处理更新过程中复杂一致性的问题。但是,关系型数据库并不擅长处理一些大数据管理方面的关键操作,比如:无法大规模扩展,无法动态地创建新的集群,不善于处理非结构化数据等。即使有些关系型数据库,能构建大数据解决方案,但是代价非常昂贵。并且,在SQL和关系型数据库的组合模式中,难以实现某些类型语句的简单查询。
在大数据解决方案中,NoSQL是最大赢家,这种数据库结构可以适用于微服务架构。另外,在大数据的不同用例下要使用不同的编码工具,所以Kubernetes (k8)变得越来越重要,成为DevOps解决方案中最终的应用。
5、掌握几个关键的大数据技术
在硅谷,如果你掌握了Kafka、Spark等主流的大数据技术,意味着你可以找到一份非常不错的工作。这说明,拥抱新技术是大势所趋。但这并不代表这些大数据技术就是万能的,我们要通过更有效的方法和更成熟的经验不断调优,让企业构建适合的大数据平台。
总之,构建一个全面、灵活的大数据平台,并非易事。对于开发者来说,如果你只专注于某一个数据模型,那么可能会陷入大数据的“坑”,未来大数据扩展会成问题。如果你想构建一个完全原始、干净的数据平台,那么在实际应用中,你所构建的数据平台将无法进行工作。(文章来源/IT168)