放弃数据库,改用Kafka!

作者 | Andreas Evers
编译 | 言征
长期以来,数据库一直充当着记录系统,它们以可靠且持久的方式存储和管理关键数据,也赢得了大多数公司的信赖 。
但时代在变 。许多新兴趋势正在影响当今数据的存储和管理方式,不得不让一些技术决策者们重新考虑数据存储究竟还有哪些创新途径 。或许,关系型数据库开始变得不合时宜了 。
本篇文章为诸君提供了一种“跳出框框”的记录系统的新玩法——为什么组织需要以不同的方式思考数据存储、使用 Kafka 作为记录系统的好处以及有哪些好的实现思路等,希望对诸君有所启发 。
1、用Kafka替代关系数据库KOR Financial是一家金融服务初创公司,他们为何会选择Kafka,而不是依赖关系数据库来存储数据呢?该公司的首席技术官Andreas,曾在Pivotal Software和VMware任职,主导过全球范围内的应用程序转型架构实践,他的这一决策有什么玄机?
先说结果,使用Kafka方案,能够“经济高效、安全地存储数十甚至数百PB的数据,并且保留数十年 。”Andreas称,“采用这种方法不仅为数据架构提供了巨大的灵活性和可扩展性,而且还实现了精益和敏捷的运营 。”
2、打破定式:数据库没有为规模设计时代变了!身处数字化转型时代,数据驱动决策要求企业具备现代灵活的数据架构 。而要实现这样的架构,成功的关键就在于,数据存储能否做到强大、可靠和灵活 。
诚然,也看到了近二十年来,大数据、分布式系统、云计算和实时数据处理的兴起,但传统的数据库就成了掣肘的瓶颈,已无法跟上每秒生成数据的速度和数量 。
首先,这是因为数据库并不是为规模而设计的 。它们固有的僵化结构只会阻碍企业数据架构所需的灵活性 。
作为服务全球企业金融贸易存储库以及互补模块化服务的运营商,数据的处理级别堪比炼狱 。KOR Financial创新式地采取了数据流优先的方法,这也是它区别于竞争对手的地方 。“的目标:彻底改变衍生品市场和全球监管机构对交易报告、数据管理和合规性的思考方式 。”
以Kafka为架构核心,是一个思考方式上“质”的变化:因为这种架构能够捕获事件而不仅仅是状态 。“将数据存储在Kafka而不是数据库中,并将其用作记录系统,就可以实现跟踪所有这些事件、处理它们并根据现在或将来的用例创建数据的物化视图 。”
虽然其他贸易存储库和中介服务提供商经常使用Oracle Exadata 等数据库来满足其数据存储需求,但它可能非常昂贵并带来数据管理挑战 。虽然它允许执行 SQL 查询,但挑战在于管理大型SQL数据库并确保这些系统内的数据一致性 。
从事全球强制贸易报告业务,意味着要为多个管辖区提供服务,每个管辖区都有自己独特的数据模型和解释 。如果将所有数据合并到单个架构或模型中,统一管理的任务就会变得越来越复杂 。如果没有数据的历史概览,模式演变就具有挑战性,因为它是在特定版本的状态中具体化的,这进一步加剧了数据管理的困境 。
另外,在处理大量数据时,传统数据库的可扩展性受到限制 。相比之下,将Confluence Cloud用于Kafka及其无限存储,就可以允许用户在Kafka中存储任意数量的数据,只要需要,就可以存储任意长时间,而只需为所使用的存储付费 。
虽然分区数量是一个考虑因素,但可以放入 Confluence Cloud 中的数据量是无限的,并且存储空间会根据需要自动增长,并且保留时间不受限制 。
它使技术人员能够完全抽象出数据在底层的存储方式,并提供一种经济高效的方式来保存所有数据 。更好地是,这使企业能够以一种不受限制的方式扩展自身的运维,并以想要的任何表示方式来解释事件,自由度很高 。
3、会整活的Kafka:重播事件、回放数据使用Kafka作为记录系统的显着优势之一在于它能够回放数据,这是传统数据库所缺乏的原生功能 。对于金融场景来说来说,此功能与“存储事件与状态”的偏好非常契合,这对于准确计算交易状态至关重要 。
“我们收到一大堆delta(增量),我们称之为提交或消息,它们在给定的时间点对贸易状态有贡献 。每个传入的消息或事件都会修改交易并更改其当前状态 。如果在我们的流处理逻辑过程中发生任何错误,都可能导致不正确的状态输出 。”
如果该信息直接存储在固定表示或传统数据库中,则导致该状态的事件就会丢失 。即使对这些事件的解释不正确,也无法重新审视导致该解释的背景 。


推荐阅读