暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Gemini 如何使用 Lakehouse 为金融服务构建加密货币分析平台

原创 谭磊Terry 恩墨学院 2022-09-18
480

本博客由 Gemini 共同撰写。我们要感谢 Gemini 团队 Anil Kovvuri 和 Sriram Rajappa 的贡献。

Gemini 是美国和全球顶级的集中式加密货币交易所之一,使客户能够在我们的平台上轻松安全地交易加密货币。

由于大量的外部实时数据量,我们在促进内部报告时遇到了现有数据平台的挑战。具体来说,我们的数据团队需要构建应用程序,以允许我们的最终用户使用以下指标了解订单簿数据:

  • 将 Gemini 与竞争对手进行比较的每个加密货币市场的价差分析
  • 每次交易所每个加密资产的流动性成本
  • 稳定性分析的市场容量和资本化
  • 滑点和订单簿深度分析

除了构建仪表板外,该团队还从外部数据提供商处接收市场数据,这些数据将被摄取并呈现在 Web 应用程序中,从而提供丰富的最终用户体验,允许用户随时刷新指标。由于要摄取大量的历史和实时数据源,并且需要一个可扩展的计算平台来进行回测和传播计算,我们的团队需要一个高性能的单一事实来源来构建应用程序仪表板。

从构思到创作

概述了这些挑战后,该团队为订单簿分析平台定义了三个核心技术要求:

  • 支持复杂数据类型摄取的高性能数据集市
  • 支持高度可并行化的分析计算引擎
  • 自助式分析和与托管应用程序的集成

首先,我们评估了原生 AWS 服务以构建订单簿分析平台。但是,我们的内部调查结果表明,数据团队需要花费大量时间来构建一个框架,用于摄取数据和拼接 AWS 原生分析服务以构建端到端平台。

接下来,我们评估了数据湖库范式。核心 Lakehouse 基础和功能与团队产生共鸣,作为构建数据平台的有效方式。借助 Databricks 的 Lakehouse 金融服务平台,我们的数据团队拥有从一个平台设计、分析和应用 ML 的灵活性和能力,以支持我们的数据计划。

回到核心技术挑战,主要的痛点是数据摄取。数据每天来自 12 家主要交易所及其加密资产,以及新的加密交易所回填。以下是我们向自己提出的一些数据摄取问题:
1.您如何有效地回填作为 tar 格式的一次性存档文件进入 AWS S3 的大规模历史订单簿和交易数据?
2.批量数据以压缩的 csv 文件形式到达,每个交易所和交易对位于不同的存储桶中。您如何有效地处理新的交易对或新的交易所?
3.外部数据提供者不发送任何触发/信号文件,因此很难知道何时推送当天的数据。如何在不创建外部文件观察器的情况下安排作业?
4.处理数据文件时,前后数据处理是一个常见的挑战。但是您如何处理故障并解决作业重新启动?
5.您如何让具有 SQL 和 Python 技能组合的团队轻松使用这些数据集?

解决数据摄取问题

为了解决数据摄取问题并回填订单簿的历史数据,团队利用了Databricks 的自动加载器功能。Auto Loader 是一个文件源,当它订阅来自输入目录的文件事件时,它可以从 AWS S3 执行增量数据加载。

将第三方数据摄取到 AWS S3
image.png

一旦数据成为可读格式,另一个问题是历史数据的自动处理。挑战包括列出自一开始(本例中为 2014 年)以来的 S3 目录、处理 1GB 或更大的大文件以及处理每天数 TB 的数据量。为了扩展处理,团队利用 Auto Loader 选项来限制每个结构化流触发器消耗的文件数量,因为在所有 12 个主要交易所中需要摄取的文件数量将在十万范围内。

.option("cloudFiles. maxFilesPerTrigger", 1000)

除历史数据外,Gemini 每天还会收到来自 12 个主要交易所的数据提供商的订单簿数据。该团队利用 Auto Loader 与 AWS SQS 集成的能力,在新文件到达时通知和处理它们。此解决方案无需使用基于时间的进程(例如 cron 作业)来检查新到达的文件。随着数据被引入 Lakehouse,然后以Delta格式捕获,按日期和交换类型进行分区,随时可供进一步处理或使用。下面的示例显示了如何将数据摄取到 Lakehouse:

#### Read raw orderbook data
odf = spark.readStream.format("cloudFiles") \
.option("cloudFiles.format", "csv") \
.options(header='true') \
.schema(tradeSchema) \
.load(cloudfile_source)

#### Parse trade data
odf.createOrReplaceTempView("orderbook_df")
odf_final = spark.sql("select trade_date_utc, trade_ts_utc, date as trade_dt_epoc, \
                    exchange_name, regexp_replace(file_indicator,'(?

As the data sets would be leveraged by machine learning and analyst teams, the Delta Lake format provided unique capabilities for managing high volume market/tick data — these features were key in developing the Gemini Lakehouse platform:
  • 跨交易所的历史价格变动允许进行时间序列分析
  • 可用作众多下游应用程序的独立功能
  • 提供预测风险和波动性的度量

为了实现价格预测,团队使用订单簿数据以及其他计算指标,例如,市场深度作为输入。为了确定价格预测,该团队利用了 Databricks 的AutoML,它提供了一种玻璃盒方法来大规模执行分布式模型实验。该团队使用了不同的深度学习架构,其中包括来自卷积神经网络 (CNN) 的组件,这些组件属于计算机视觉类型的问题以及更传统的 LSTM。

使用计算特征进行市场分析

市场分析是 Gemini 回答“我们的市场份额是多少?”等问题的关键。该团队提出了不同的方法来计算可以解决业务问题的功能。下面是几个包含问题定义的示例:

基于每周交易量的情景:

  • 以比特币为例,计算 Gemini 的市场份额:
    (Gemini BTC 交易)/(Market BTC 交易)
  • 基于托管资产(AUC)的场景:
    以比特币为例,让 Gemini 洞察整个市场:(持有的
    Gemini BTC)/(持有的市场 BTC)

适用于所有用户的简化协作数据 Lakehouse 架构

如下图所示,数据 Lakehouse 架构使不同的角色能够在单个平台上进行协作。这包括从设计复杂的数据工程任务到进行增量数据质量更新以及使用 R、SQL、Python 和 Scala API 为数据科学家和数据分析师提供对底层数据集的轻松访问,所有这些都在由 Databricks 提供支持的 Delta 引擎之上。同样,在这种情况下,在丰富了从 Auto Loader 摄取的青铜表之后,这些数据集通过计算额外的聚合和上述时间序列预测来丰富,最后保存在黄金表中以进行报告和临时分析。

image.png

启用自助服务数据分析

Data Lakehouse 对数据团队的重要价值主张之一是利用Databricks SQL功能来构建内部应用程序并避免数据的多个跃点和副本。该团队使用flask 构建了一个内部Web 应用程序,该应用程序使用Databricks的pyodbc连接器连接到Databricks SQL 端点。这对团队来说很有价值,因为它消除了无法直接查询 Lakehouse 中数据的分析师对多个 BI 许可证的需求。

一旦我们用 Databricks 实现了数据湖库,最后的表示层就是一个 React Web 应用程序,它可以根据分析师的要求进行定制并按需刷新。此外,该团队利用 Databricks SQL 内置可视化进行临时分析。最终数据产品 React Application UI 的示例如下所示:
image.png

最后的想法

鉴于需求的复杂性,数据团队能够利用 Databricks Lakehouse Platform for Financial Services 架构来支持关键业务需求。该团队能够使用 Auto Loader 从第三方数据提供商处提取复杂的报价数据,同时利用分区、自动压缩和 Z-Ordering 等 Delta Lake 功能来支持订单簿分析平台中的多 TB 规模的查询.

内置的机器学习和 AutoML 功能意味着团队能够快速迭代多个模型以制定基线模型,以支持价差、波动性和流动性成本分析。此外,能够通过 Databricks SQL 呈现关键见解,同时通过 React Web 前端提供黄金数据层,为分析师提供了丰富的最终用户体验。最后,数据湖库不仅提高了数据工程师、分析师和 AI 团队的工作效率,而且我们的团队现在能够通过查询长达 6 个月、跨越数 TB 和数十亿条记录的数据来获得关键的业务洞察力,这仅需要几毫秒的时间。所有内置优化。

原文标题:How Gemini Built a Cryptocurrency Analytics Platform Using Lakehouse for Financial Services
原文作者:Sri Ghattamaneni, Anil Kovvuri and Sriram Rajappa
原文地址:https://www.databricks.com/blog/2022/02/15/how-gemini-built-a-cryptocurrency-analytics-platform-using-lakehouse-for-financial-services.html

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论