查看原文
其他

金融科技领导者如何使用 RisingWave 革新欺诈检测

RisingWave 社区 RisingWave中文开源社区
2024-09-10

1公司背景

公司 A 是一家美国金融服务公司,提供股票、ETF、期权和加密货币的免佣交易。通过其简洁直观的平台,用户可以在无需传统经纪费的情况下投资各种资产,使投资变得更加普及。凭借其庞大的全球用户群,公司 A 已成为金融科技创新领域的佼佼者。

2欺诈检测发展历程

公司 A 致力于打击欺诈行为,降低用户风险,确保平台的安全性。为了实现这一目标,公司 A 利用机器学习技术进行欺诈检测为了简化和标准化特征工程过程,基础架构团队建立了内部特征存储。该特征存储使数据科学家和机器学习工程师更容易访问、重用和部署特征,用于机器学习模型的训练和推断。

特征存储平台的开发经历了多个阶段:

  • 第一阶段: 最初,他们迅速采用了一个流行的开源特征存储解决方案,以加快平台交付,使数据科学家能够轻松进行机器学习应用程序开发。

  • 第二阶段: 然而,使用开源特征存储一段时间后,他们遇到了各种问题,包括资源密集型使用、漫长的引导时间、有限的 Java 进程调试能力以及对项目维护和未来方向的不确定性。因此,他们决定自行构建自定义组件。

  • 第三阶段: 为了提高稳定性,团队选择使用标准的开源技术重新设计和重建特征存储平台。这次重新设计包括利用多个系统,例如使用 Apache Spark 进行批处理特征转换,使用 Apache Flink 进行流式特征转换,使用 Apache Kafka 作为数据源和 Flink 作业之间的缓冲区,以及使用 DynamoDB 提供特征。通过利用这些开源软件解决方案,团队交付了一个可靠的特征存储,可以满足数据科学家的需求。


3显著痛点

尽管当前的特征存储功能正常运作,但在流式数据处理管道中存在一些显著的痛点:

  • 学习曲线: 学习和使Flink 被证明相当具有挑战性。值得注意的是,团队中很少有工程师具备 Apache Flink 的经验,因此他们必须从头开始学习这个系统。

  • 调试困难: 调试 Flink 作业存在显著挑战。主要原因是 Flink 不提供易于访问其内部状态的方式,使用户无法了解流处理作业的内部情况。

  • 复杂的数据堆栈: 团队必须同时管理 FlinkKafka典型的流程要求 Flink 作业将结果传递给 Kafka 主题,以供下游 Flink 作业进一步消费。例如,在计算一个特征时,用户可能首先使用 Flink 计算预聚合结果,将预聚合的结果发送到 Kafka,然后创建另一个 Flink 作业来进一步聚合这些结果并生成最终结果。这个流程可能变得非常复杂,难以调试,并且如果某个组件发生故障,可能会引入一致性问题。


4选择 RisingWave 的原因

针对上述问题,基础架构团队着手寻找解决方案。RisingWave为如下几个显著亮点成为了最终选择:

  • 熟悉和灵活: RisingWavePostgreSQL 兼容,为开发人员提供了使用最广泛的 SQL 变体之一构建应用程序的灵活性。这种兼容性还允许与现有生态系统无缝集成,实现与第三方商业智能工具和客户库的顺畅交互。

  • 可查询的物化视图: RisingWave 的物化视图与表格非常相似,不仅持久存储数据,还能够执行自由查询。这意味着用户可以以一致的方式直接查询存储在物化视图中的结果,简化了程序正确性的验证。

  • 统一系统: RisingWave 在管理物化视图和直接提供查询服务方面表现出色。用户可以在 RisingWave 内部执行计算,然后在同一系统内查询结果。这消除了维护多个系统的需求,并消除了不同系统之间的数据一致性问题的顾虑。


5RisingWave 在生产中的应用

经过全面评估后,RisingWave 被部署到生产环境中取代现有的数据管道。有了 RisingWave,工程师不再需要在不同的系统之间导航以维护数据管道。由于可以轻松访问内部创建的所有物化视图,调试流式查询变得非常简单。

最初的担忧之一是能否使用 SQL 重写所有基于 Java 的 Flink 作业。幸运的是,这被证明不是问题,因为 RisingWave 提供了 UDF 支持。这意味着用户可以使用 Python 和 Java 编写自定义 UDFs,并将其无缝集成到数据处理工作流程中。这一功能通过使用简单的 SQL 语句将编写的 UDF 方法与 RisingWave 连接起来,简化了流程。

基础架构团队计划扩大他们对 RisingWave 的利用,以构建更多的流处理管道,随后消除现有数据堆栈中不必要的组件,例如数据服务层。

6数据堆栈

在引入 RisingWave 之前,数据堆栈如下所示,使用 Apache Kafka 和 Apache Flink 执行实时流式特征转换。

在实施 RisingWave 之后,数据堆栈如下所示,使用 RisingWave 执行实时流式特征转换。


7结论

对于金融服务行业来说,实时流处理提供了重要的商业价值。获得实时洞察力使公司能够打击欺诈行为并提升客户服务。通过将 RisingWave 作为其特征存储的关键组件,公司 A 简化了其数据堆栈,并增强了构建数据管道的信心。这个成功案例展示了企业会如何从现代流处理技术中获益。



关于 RisingWave
RisingWave 是一款基于 Apache 2.0 协议开源的分布式流数据库,致力于降低流计算使用门槛。RisingWave 采用存算分离架构,实现了高效的复杂查询、瞬时动态扩缩容以及快速故障恢复,帮助用户轻松快速搭建稳定高效的流计算系统。使用 RisingWave 处理流数据的方式类似使用 PostgreSQL,通过创建实时物化视图,让用户能够轻松编写流计算逻辑,并通过访问物化视图来进行即时、一致的查询流计算结果。

GitHub: risingwave.com/github

💻 : risingwave.com

👨‍💻‍ Slack: risingwave.com/slack

📖 文档: risingwave.dev

🎬 B站RisingWave中文开源社区

🔍 知乎: RisingWave 中文开源社区

继续滑动看下一个
RisingWave中文开源社区
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存