- 对数据库厂商策略对市场的影响
数据库技术已经有了些念头,在最近几年中市场的乏力,让技术的创新又提到了新的日程上。HANA是第一个基于内存计算的数据库方案,紧跟着的是O,第一个基于闪存技术的数据库方案。经过2年的市场洗礼,从总体上看还是O要多些,S的市场份额要远低于O,但从技术的角度来看,SAP的方案更加开放,更加提现出一个基于完整的生态圈合作的方式。
而与此同时,市场上传出的消息是裁针对Sun的老员工。 市场占有率是未来一个重要的技术影响因素,可以预见在这种不规范的市场规则中,销售人员可能会使出更多花花。但SAP有强大的用户群作为支撑,只要使用许可证适当低廉的方式,应该可以稳定住很大一部分企业级的市场,但这是否将会大量的爆发,还需要其商务运行手段与底线。当然新的HANA方案也开始建议使用闪存作为日志的存放地,那O未来不会加大内存的支持吗?这些是专利站的策略。火拼已经开始,但还看不出什么胜负。
- 对企业与中小型企业的影响
这种基于内存或闪存技术的数据库对于大企业,是没有任何的影响。大企业服务器每3到5年就会更新一批。随着ERP实施周期,用户需求的更加。我们很明显看到未来的需求是机器大集中,数据大集中,控制大集中,通过这样的变更,系统流程的再次梳理,从而确保企业的核心竞争力得到有效的维持。
HANA在其中起到了非常重要的作用,1.服务器由多个厂商提供的优势;2.打通了基于原有企业系统5层结构的数据分别存放模式,将原有的竖井式系统转换为金字塔式系统;3.现代的企业管理者越来越能意识到决策支持的重要性,这些数据可以有效支撑决策的正确性,但这不仅仅是ERP系统可以提供的数据,还需要更多的数据,他们必须要借助与大数据的模式进行,这将是企业升级数据库的背景。
而恰恰相反,中小企业,将会变得更加痛苦,在可预见的将来。基于内存或闪存式处理的数据库将不能提供最优值的相应,从而影响到商业中的一切事物。在不做这样投入的基础上,只能转而选择云服务或者替代方案。但无论怎么样,都将是痛苦的。
因为这需要一个思维方式的变化去应对旧的内心障碍:1.数据必须在自己家;2.投入的资金不需要过于昂贵;3.最低投入的,以确保所有的资金在流通途中;4.IT资源有效利用,从而带开更多的价值。
- 商业与开源的相互博弈
很明显商业的模式都在想利用可以接受的硬件加速计算速度,而恰恰在另外一个极端的人,他们看到的是没有充分发挥现在便宜硬件的技术优势。利用发布式计算与分布式存储去替代高昂的硬件投资,利用合理的冗余来减少硬件的投资,这是另一个角度的思考。
一个内存计算与20个廉价硬盘的同时查询,在用户体验上的差异似乎是很短暂的。这种博弈只能体现出大公司创新的不作为与不想作为。但无论怎么样在IT开源技术的影响下,对商业公司的调整是一个不能忽视的最强大竞争对手。IT社区每天贡献出的补丁远大于这几家商业公司的和。
这为大企业的影响也是极其之微,但对于小企业的影响将是非常尴尬,因为大的买不起,免费的不知道前面有多少坑。人才、风险、后续支持,一切都是未知的。
- 对开发者的挑战
NoSQl与SQL让很多开发者迷茫,SQL与近似SQL也是一种迷茫。无论是HANA还是EXADATA想充分发挥技术有效最好的方式就是代码下沉,但么有好的开发工具与指导思想的变更一切都还是空中楼阁,因为这一切只是,仅仅的,有效的发挥效应。不过这种模式的转变是一个长期的过程,这个过程还是非常的艰难。这种挑战很可能会被延迟到基于云开发模式的转变。
这里就不得不提到异构系统的开发模式,HANA内置的计算语言是R,也许未来还会支持更多的语言例如julia;HANA内置的开发语言是JS也许未来会有更多的选择方案,让Go作为并发服务端或者更高要求,采用Er来作为服务端。也只有这样的配套才能更加发挥出系统的优势。一切都还将随着技术与市场的变化而变化。
但是我个人不太推荐使用Js作为服务端的开发语言,也不建议一个上10W规模的都集成在HANA的内置中。如果要求电信级的服务建议使用Erlang开发,如果是将一个数据等级使用Golang,再降低一个等级再考虑使用Js。无论是什么样的技术方案,对于开发者都是极大的挑战。
UI5是一个不错的方案,但是将这些集成在NANA中需要更多的场景分析,没有最好的技术方案,只有更好的技术方案。
- 总结
1.数据库的选择越来越窄,一个是云数据库,一个开源数据库,一个是本地内存数据库。只有这几种选择了;
2.数据中心的生命周期,决定选择数据库更换的时间。新数据中心的启用,新数据库技术也会启用,而且是革命性质的,而不是改良性质的;
3.对系统架构与系统开发将是很大的挑战,需要做必要的技术储备(如果是大企业,一定是内存技术而不是其他的);
4.热数据,温数据,冷数据的后期处理,不仅仅只有逻辑,会含有更多的算法,数据库的内置优化,将会利用科学计算语言发挥更多的扩展(HANA将优值数据快速送给R,R在特定算法完成后,返回结果)。