有很多方法可以实时分析数据。 在VTB,我们使用在Golden Gate Oracle工具中实现的变更数据捕获(CDC)技术:速度对我们非常重要,但是我们希望减少传输的数据量并减少源的负担。 尽管此工具的主要范围是从Oracle和MS SQL复制,但是在使用CDC的多年中,我们积累了许多有趣的案例,例如平台之间或不同类型的DBMS之间的数据迁移。 根据削减,我们将与金门大桥分享我们的经验。

为什么我们需要CDC(更改数据捕获)
长期以来,银行卡的日常使用早已为人所熟悉,通常,人们并不认为每次使用支付终端机都会迅速将某些信息传输到银行。 数据量正在增长,我想尽快处理它们,包括实时发送特别优惠,因为正如他们所说,这是晚餐的好汤匙。 传统的ETL工具(提取,转换,加载-提取,转换,加载)不太擅长实时处理数据。 这是薄弱环节之一:从源系统表中获取数据时,您只需选择新行或有更改的行。 这种方法另外会加载源系统并增加传输的数据量。
CDC实时捕获数据库日志中的更改。 因此,源的负载少得多,并且传输的数据量减少了。 借助这项技术,我们减少了具有大量事务更改的系统对计算资源的需求:毕竟,即使对于负载最大的银行系统,也要进行数据捕获,从源头上使用1-2个处理器内核就足够了。 而且,如果我们要引入ETL,则必须购买处理器容量才能并行读取数据。
在VTB,我们一直在使用Oracle的CDC工具Oracle GoldenGate技术。 在它的帮助下,我们填充了运营数据仓库,并将信息系统的功能分配到“热”和“热”区域。 银行IT领域中OGG应用程序的90%正在从Oracle和MS SQL加载数据,但是除了复制,它可以完美地应对其他任务。 让我们来看一些我们实践中的例子。

案例1.在线报告
我们在2013年认识了GoldenGate。 然后,在我们的卡处理中心,同时处理交易和准备报告。 OLTP负载与DWH / DSS负载混合在一起,大量的大量样本将缓存从数据库内存中清除了。 结果,快速的交易必须进入硬盘,关键业务服务的速度正在下降。 为了减轻处理核心的负担,我们采用了开发的所有过程和报告,将其报告到Oracle Exadata上的“热”副本中。
我们在
这里详细介绍了如何使用GoldenGate复制数据。 简而言之:对于混合了不同类型负载的高负载系统,我们将它们分配到不同的OLTP和DWH / DSS服务器,对于它们之间的同步,我们使用GoldenGate。 在许多其他情况下,这种突出显示“温暖”副本的模式派上用场。 例如,我们在反欺诈系统中使用了相同的方法-我们将所有报告传输到集成的Oracle Exadata系统,然后使用GoldenGate将数据复制到它们。
没有没有故障的系统。 例如,如果开发人员更改了接收器上的数据,则可能会发生数据使用错误,并且GoldenGate进程将停止。 为了排除不同步的数据,我们使用Oracle GoldenGate Veridata作为独立的仲裁器。 该工具不仅可以验证源和接收方之间的数据-最主要的是Veridata可以消除差异。 重要的是,当我们处理复制时,Veridata保证准确的数据比较和丢失记录的检测。 我们将获得一份完整的报告,其中包含比较结果,可以将报告提交给难以置信的同事。

案例2.在线存储中的合并报告和暂存
一个单独的案例与操作存储的构造有关。 困难在于,除了运营报告外,我们还在准备用于公司存储(分段)的数据。 碰巧您需要根据从许多不同系统收集的数据来生成操作报告。 在联机存储级别执行此操作最为方便。 为了以最小的资源和高速获得数据,我们再次应用了GoldenGate。
为了进行比较,让我们解释一下我们以前是如何发现某些系统的变化增量的。 如果系统本身不允许突出显示增量或追溯性地更改数据,则将前一天来自10 TB源的表与接收器上10 TB的表进行比较。 必须首先从源头捕获这10 TB,负载不仅落在源系统,CPU,内存上,而且落在数据网络上以及比较所涉及的系统上。 而所有这些都是为了找到0.01%的新数据增量!
GoldenGate实际上不会在源上产生任何负载:CDC只是阅读杂志并生成最终的增量。 这使您可以节省大量的基础架构。 接收者是谁都没有关系-基于Oracle,MSSQL,Teradata或仅基于Hadoop产品的传统存储库。
请注意,在这种情况下,Oracle数据库被用作源和接收者。 该解决方案被证明是有效的,因此现在我们将所有新系统连接到一个通用的在线数据仓库,而不仅仅是Oracle。 GoldenGate的另一个优点是,它适合从银行IT环境中使用的大多数数据库中下载数据。

情况3.实时向客户提供个人报价。
我们已经提到了流分析,即实时向客户提供的实时报价(RTO)报价。 资深同志说,银行业务的成功直接取决于您对客户的了解程度以及如何向他提出要约。 换句话说,客户利用银行报价的可能性与银行对客户需求的反应速度成反比。
如何运作? 例如,交易历史记录显示客户在每个星期五从酒类商店购买商品。 地理位置检测是在购物中心中检测到的,该购物中心中有该网络的商店,然后通过移动应用程序向他发送个人折扣,以向同一购物中心中的美食店提供折扣。 对于银行而言,这种情况最有趣;它使您可以创建联合品牌和联合报价。 客户可以是个人和组织。
有离线和在线部分。 首先,使用来自所有系统的数据对客户进行预先细分。 分析人员和数据科学家研究行为,历史数据并创建所谓的陷阱。 最主要的是捕获一个重大事件,该事件可以通过收购方交易,移动应用程序或其他可用来源进行跟踪。 并且此事件已经通过流分析进行处理,并且此刻基于准备好的陷阱来做出决定。
CDC GoldenGate的目标是提供从源系统到分析平台的实时事件数据流。 GoldenGate for Big Data许可证还包括Oracle Stream Analytics。 借助它的帮助,数据科学家可以在Spark Streaming上独立处理数据流,从而在可视环境中开发应用程序。
案例4.对新型欺诈的业务抵制
反欺诈系统非常封闭,因此这样做是正确的:致力于细节的人员越少,安全性就越高。 他们在处理标准案例方面做得很好,但有时会出现不符合标准脚本的情况。 因此,重要的是用非标准方案补充这些模型。 我们不断根据各种系统事件的相关性来开发新模型:卡和货币交易,位置,支付系统的操作,移动应用程序中的操作,社交网络监控。 要更改模型,您必须遵循公认的流程:业务请求,任务设置,将应用程序传递到实施的所有内部阶段。
去年,我们测试了使用Oracle GoldenGate for Big Data从最繁忙的传统系统(其中有很多小事务)以及从反欺诈系统到Oracle Big Data Appliance上的主集群的上传数据。 Hadoop和GoldenGate都处理了传输的数据量-我们有些惊讶。
每小时TB级和其他发现
在过去的两年中,借助GoldenGate,我们将日志传输量翻了一番-每小时高达近1 TB。 目前,这几乎满足了我们的需求。 不幸的是,我们遇到了物理学。 但是,为了提高吞吐量,GoldenGate开发团队正在积极开展工作,因此这远远没有极限。 同时,我们正在观察和试用其他供应商的CDC解决方案,但是我们没有发现从Oracle GoldenGate进行迁移的任何原因。 目前,该技术已被证明是市场上最成熟的技术。