在 Amazon Redshift 上结合交易、流媒体和第三方数据以提供金融服务 |亚马逊网络服务

在 Amazon Redshift 上结合交易、流媒体和第三方数据以提供金融服务 |亚马逊网络服务

源节点: 3093106

金融服务客户正在使用来自不同来源、不同频率的数据,其中包括实时数据集、批量数据集和存档数据集。此外,他们需要流架构来处理不断增长的交易量、市场波动和监管要求。以下是强调这一需求的一些关键业务用例:

  • 贸易报告 – 自2007-2008年全球金融危机以来,监管机构加大了对监管报告的要求和审查。监管机构越来越重视通过交易报告(通常为 T+1,即交易日期后 1 个工作日)保护消费者,并通过近乎实时的交易报告要求提高市场透明度。
  • 风险管理 – 随着资本市场变得更加复杂,监管机构推出新的风险框架,例如 交易账户的基本审查 (FRTB)和 巴塞尔协议III金融机构正在寻求提高整体市场风险、流动性风险、交易对手风险和其他风险衡量指标的计算频率,并希望尽可能接近实时计算。
  • 贸易质量和优化 – 为了监控和优化交易质量,您需要持续评估市场特征,例如交易量、方向、市场深度、成交率以及与交易完成相关的其他基准。交易质量不仅与经纪商的表现有关,也是监管机构的要求,首先 MIFID II.

我们面临的挑战是提出一种解决方案来处理这些不同的源、不同的频率和低延迟消耗要求。该解决方案应该具有可扩展性、经济高效且易于采用和操作。 亚马逊Redshift 流式摄取等功能, 亚马逊极光 零 ETL 集成,以及数据共享 AWS数据交换 实现交易报告、风险管理和交易优化的近实时处理。

在这篇文章中,我们提供了一个解决方案架构,该架构描述了如何处理来自三种不同类型源(流数据、事务数据和第三方参考数据)的数据,并将它们聚合到 Amazon Redshift 中以生成商业智能 (BI) 报告。

解决方案概述

该解决方案架构的创建优先考虑低代码/无代码方法,并遵循以下指导原则:

  • 使用方便 – 使用直观的用户界面来实施和操作应该不那么复杂
  • 可扩展 – 您应该能够按需无缝地增加和减少容量
  • 原生集成 – 组件应无需额外的连接器或软件即可集成
  • 成本效益 – 它应该提供平衡的价格/性能
  • 低维护 – 需要较少的管理和运营开销

下图说明了解决方案架构以及如何将这些指导原则应用于摄取、聚合和报告组件。

部署解决方案

您可以使用以下内容 AWS CloudFormation 用于部署解决方案的模板。

启动 Cloudformation 堆栈

该堆栈创建以下资源和必要的权限来集成服务:

咽下

要摄取数据,您可以使用 Amazon Redshift 流式摄取 从 Kinesis 数据流加载流数据。对于交易数据,您可以使用 Redshift 零 ETL 集成 与 Amazon Aurora MySQL。对于第三方参考数据,您可以利用 AWS Data Exchange 数据共享。这些功能使您能够快速构建可扩展的数据管道,因为您可以增加 Kinesis Data Streams 分片的容量、零 ETL 源和目标的计算,以及在数据增长时进行数据共享的 Redshift 计算。 Redshift 流摄取和零 ETL 集成是低代码/无代码解决方案,您可以使用简单的 SQL 进行构建,而无需投入大量时间和金钱来开发复杂的自定义代码。

对于用于创建此解决方案的数据,我们与 接受FactSet,领先的金融数据、分析和开放技术提供商。 FactSet 有几个 数据集 可在 AWS Data Exchange 市场中获取,我们将其用作参考数据。我们还使用了 FactSet 市场数据解决方案 用于历史和流媒体市场报价和交易。

处理中

数据在 Amazon Redshift 中按照提取、加载和转换 (ELT) 方法进行处理。 ELT 具有几乎无限的规模和工作负载隔离,更适合云数据仓库解决方案。

您可以使用 Redshift 流式摄取将流式报价(出价/要价)从 Kinesis 数据流直接实时摄取到流式物化视图中,并在下一步中使用 PartiQL 处理数据以解析数据流输入。请注意,流式物化视图与常规物化视图的不同之处在于自动刷新的工作方式和使用的数据管理 SQL 命令。参考 流媒体摄取注意事项 了解详情。

您可以使用零 ETL Aurora 集成从 OLTP 源获取事务数据(交易)。参考 使用零 ETL 集成 对于当前支持的来源。您可以使用视图组合来自所有这些来源的数据,并使用存储过程来实施业务转换规则,例如计算跨部门和交易所的加权平均值。

历史交易和报价数据量巨大且往往不被频繁查询。您可以使用 亚马逊红移频谱 就地访问此数据而不将其加载到 Amazon Redshift 中。您创建指向数据的外部表 亚马逊简单存储服务 (Amazon S3) 和查询方式与查询 Amazon Redshift 中任何其他本地表的方式类似。多个 Redshift 数据仓库可以同时查询 Amazon S3 中的相同数据集,而无需为每个数据仓库复制数据。此功能简化了对外部数据的访问,无需编写复杂的 ETL 流程,并增强了整体解决方案的易用性。

让我们回顾一些用于分析报价和交易的示例查询。我们在示例查询中使用下表:

  • dt_hist_quote – 历史报价数据,包含买入价和成交量、卖出价和成交量以及交易所和板块。您应该在组织中使用包含这些数据属性的相关数据集。
  • dt_hist_trades – 历史交易数据,包含交易价格、交易量、行业和交易所详细信息。您应该在组织中使用包含这些数据属性的相关数据集。
  • 事实集_扇区_地图 – 部门和交易所之间的映射。您可以从 FactSet 基础 ADX 数据集.

用于分析历史报价的示例查询

您可以使用以下查询查找报价的加权平均点差:

select
date_dt :: date,
case
when exchange_name like 'Cboe%' then 'CBOE'
when (exchange_name) like 'NYSE%' then 'NYSE'
when (exchange_name) like 'New York Stock Exchange' then 'NYSE'
when (exchange_name) like 'Nasdaq%' then 'NASDAQ'
end as parent_exchange_name,
sector_name,
sum(spread * weight)/sum(weight) :: decimal (30,5) as weighted_average_spread
from
(
select date_dt,exchange_name,
factset_sector_desc sector_name,
((bid_price*bid_volume) + (ask_price*ask_volume))as weight,
((ask_price - bid_price)/ask_price) as spread
from
dt_hist_quotes a
join
fds_adx_fundamentals_db.ref_v2.factset_sector_map b
on(a.sector_code = b.factset_sector_code)
where ask_price <> 0 and bid_price <> 0
)
group by 1,2,3

用于分析历史交易的示例查询

您可以使用以下查询来查找 $-volume 按详细交易所、行业和主要交易所(纽约证券交易所和纳斯达克)划分的交易:

select
cast(date_dt as date) as date_dt,
case
when exchange_name like 'Cboe%' then 'CBOE'
when (exchange_name) like 'NYSE%' then 'NYSE'
when (exchange_name) like 'New York Stock Exchange' then 'NYSE'
when (exchange_name) like 'Nasdaq%' then 'NASDAQ'
end as parent_exchange_name,
factset_sector_desc sector_name,
sum((price * volume):: decimal(30,4)) total_transaction_amt
from
dt_hist_trades a
join
fds_adx_fundamentals_db.ref_v2.factset_sector_map b
on(a.sector_code = b.factset_sector_code)
group by 1,2,3

报告

您可以使用 亚马逊QuickSight亚马逊托管 Grafana 分别用于 BI 和实时报告。这些服务本身与 Amazon Redshift 集成,无需在其间使用额外的连接器或软件。

您可以从 QuickSight 运行直接查询以获取 BI 报告和仪表板。借助 QuickSight,您还可以将数据本地存储在 SPICE 缓存中,并通过自动刷新实现低延迟。参考 授权从 Amazon QuickSight 连接到 Amazon Redshift 集群 有关如何将 QuickSight 与 Amazon Redshift 集成的全面详细信息。

您可以使用 Amazon Managed Grafana 实现每隔几秒刷新一次的近实时交易仪表板。用于监控交易摄取延迟的实时仪表板是使用 Grafana 创建的,数据源自 Amazon Redshift 中的系统视图。参考 使用 Amazon Redshift 数据源 了解如何将 Amazon Redshift 配置为 Grafana 的数据源。

与监管报告系统交互的用户包括分析师、风险经理、操作员以及支持业务和技术运营的其他角色。除了生成监管报告外,这些团队还需要了解报告系统的运行状况。

历史行情分析

在本节中,我们将探讨历史报价分析的一些示例 亚马逊QuickSight 仪表板。

按行业划分的加权平均价差

下图显示了纳斯达克和纽交所三个月内所有单笔交易的加权平均买卖价差按行业每日汇总。为了计算平均每日点差,每个点差均按买价和卖价美元交易量之和进行加权。生成此图表的查询总共处理 3 亿个数据点,将每笔交易与行业参考表连接起来,运行时间不到 103 秒。

交易所加权平均价差

下图显示了纳斯达克和纽交所3个月内所有单笔交易的加权平均买卖价差的每日汇总。计算方法和查询性能指标与上图类似。

历史交易分析

在本节中,我们将探讨历史交易分析的一些示例 亚马逊QuickSight 仪表板。

按行业划分的贸易量

下图显示了 3 个月内纳斯达克和纽约证券交易所所有单项交易按板块的每日汇总情况。生成此图表的查询总共处理 3.6 亿笔交易,将每笔交易与行业参考表连接起来,运行时间不到 5 秒。

主要交易所的交易量

下图显示了 3 个月内所有单笔交易按交易所组每日汇总的情况。生成此图表的查询具有与前面的图表类似的性能指标。

实时仪表板

监控和可观察性是任何关键业务应用程序(例如贸易报告、风险管理和贸易管理系统)的重要要求。除了系统级指标之外,实时监控关键绩效指标也很重要,以便操作员能够收到警报并尽快响应影响业务的事件。对于本次演示,我们在 Grafana 中构建了仪表板,分别监控来自 Kinesis 数据流和 Aurora 的报价和交易数据的延迟。

报价提取延迟仪表板显示从数据流提取每条报价记录并可在 Amazon Redshift 中查询所需的时间。

交易摄取延迟仪表板显示 Aurora 中的交易在 Amazon Redshift 中可供查询所需的时间。

清理

要清理资源,请删除使用 AWS CloudFormation 部署的堆栈。有关说明,请参阅 在 AWS CloudFormation 控制台上删除堆栈.

结论

不断增加的交易量、更加复杂的风险管理以及不断加强的监管要求正在导致资本市场公司采用实时和近实时的数据处理,即使是在需要进行日终处理和隔夜处理的中后台平台中也是如此。是标准。在这篇文章中,我们演示了如何使用 Amazon Redshift 功能来实现易用性、低维护性和成本效益。我们还讨论了跨服务集成,以获取流市场数据、处理来自 OLTP 数据库的更新以及使用第三方参考数据,而无需在将数据用于分析和报告之前执行复杂且昂贵的 ETL 或 ELT 处理。

如果您在实施此解决方案时需要任何指导,请联系我们。参考 使用 Amazon Redshift 流式摄取进行实时分析, 使用 Amazon Aurora 零 ETL 与 Amazon Redshift 集成进行近实时运营分析的入门指南作为生产者使用 AWS Data Exchange 数据共享 获取更多信息.


作者简介

萨特什·桑蒂 是亚特兰大的一名高级分析专家解决方案架构师,专门从事构建企业数据平台、数据仓库和分析解决方案。 他在为全球银行和保险客户构建数据资产和领导复杂数据平台程序方面拥有超过 18 年的经验。

阿尔克特·梅穆沙吉 担任 AWS 金融服务市场开发团队的首席架构师。 Alket 负责资本市场的技术战略,与合作伙伴和客户合作,将整个交易生命周期的应用程序部署到 AWS 云,包括市场连接、交易系统以及交易前和交易后分析和研究平台。

鲁本·法尔克 是一位专注于人工智能和数据与分析的资本市场专家。鲁本就现代数据架构和系统投资流程向资本市场参与者提供咨询。他在加入 AWS 之前曾在 S&P Global Market Intelligence 担任投资管理解决方案全球主管。

杰夫威尔逊 是一位全球市场进入专家,拥有 15 年分析平台工作经验。他当前的重点是分享使用 Amazon Redshift(Amazon 的原生云数据仓库)的优势。 Jeff 居住在佛罗里达州,自 2019 年以来一直在 AWS 工作。

时间戳记:

更多来自 AWS 大数据