在这篇博文中,我们听取了 Luis Rodrigues 的观点,他是 QuickCheck 的联合创始人兼首席技术官,QuickCheck 是一家总部位于尼日利亚拉各斯市的快速发展 Fintech 初创公司。
在尼日利亚,超过 6000 万尼日利亚成年人被排斥在银行服务之外,1 亿人无法获得信贷。QuickCheck 的使命是为服务不足的消费者提供金融服务,利用人工智能提供基于应用程序的新型银行产品。
QuickCheck 移动应用程序已被超过 200 万人下载,并已处理超过 450 万笔小额信贷申请。150 多人的团队分布在尼日利亚和葡萄牙。
ClickHouse 用于多种用例
QuickCheck 两年前开始使用 ClickHouse,用于多种用例,包括财务数据分析、欺诈分析和监控数据。目前,公司内部 50 多人在日常工作中使用由 ClickHouse 提供支持的仪表板。
QuickCheck 应用程序使用每日快照分析客户贷款数据的整个历史记录。每天有数十万行数据被加载到 ClickHouse 中。在此数据的基础上,我们执行投资组合风险分析并构建投资组合分析所需的财务指标。
ClickHouse 还用于我们的运营仪表板。我们将来自不同服务的数据聚合到 ClickHouse 中,并使用 Metabase 创建仪表板。
我们的反欺诈团队使用 ClickHouse 收集数据以用于他们的评分模型。我们从客户的手机和其他更传统来源收集数万个数据点。ClickHouse 被用作处理所有这些短信并提取用于评分和反欺诈模型的宝贵信息的方式。
我非常喜欢 ClickHouse,因为管理它的团队说 – 它就像变魔术一样,自动运行,太棒了
ClickHouse 架构
上图显示了 QuickCheck 目前的 ClickHouse 架构。数据位于 Postgres 中,并通过 Python 复制到 ClickHouse 中。Metabase 位于顶部,用于用户界面。每个人都使用 SQL 编写查询。一些人使用机器学习模型进行数据科学和欺诈检测。他们直接连接到 SQLAlchemy。
另一个需要提及的重要事项是 ClickHouse 是一个面向列的数据库,不支持事务,更新/删除操作非常慢。所有事务数据应保留在 Postgres(或其他 OLTP 数据库)中,而 ClickHouse 应用于它最擅长的领域:OLAP 查询。但是,我们对 事务支持 实验感到兴奋,这些实验已在 22.4 中发布,我们期待进行实验。
ClickHouse 中的瞬时与 Postgres 中的永恒
对我来说,ClickHouse 最重要的是它的出色性能。您编写了一个跨数十万行的聚合查询,结果就会出现,如果您想在该结果上绘制仪表板,它是即时的。这基本上是我们开始使用它的原因,用于仪表板制作。
我们意识到我们在 Postgres 中有如此多的数据,处理起来需要很长时间,所以我们开始将其迁移到 ClickHouse。在 ClickHouse 中是即时的,而在 Postgres 中则是永恒的。
如果我尝试对过去一年的财务数据进行分析,在 Postgres 中是不可能的,数据库将超时,永远无法完成。这是因为我们有数亿行数据存储了自批准之日起每天每笔个人贷款的状态和属性。在 ClickHouse 中,这不到 5 秒。
ClickHouse 特性
我们目前使用 ClickHouse 的主要特性是
- 跨数亿行数据的聚合函数(AVG、SUM 等),用于创建仪表板
- 窗口和统计函数
- 列压缩,以节省磁盘空间使用量
对其他 ClickHouse 用户的建议
我对那些考虑使用 ClickHouse 的人建议,只需尝试一下。如果您的查询速度很慢,您应该在 ClickHouse 中对其进行测试。我们对性能以及其他一切都很满意。
访问 https://quickcheck.ng/ 获取更多信息。