【问题标题】:Building OLTP DB from Datalake?从 Datalake 构建 OLTP 数据库?
【发布时间】:2020-10-01 19:30:24
【问题描述】:

我很困惑,很难找到有人想要从现有数据湖(在我的例子中是 S3/Lakeformation)中提取数据并构建用作应用程序后端的 OLTP 数据存储的示例和参考架构。我遇到的一切都是 OLAP 数据仓库模式(即 ETL -> S3 -> Redshift -> BI 工具),其中数据总是进入数据湖和仓库,而不是被拉出。我不一定需要“业务分析”,但我确实需要在 Web 仪表板中为我的网站用户显示带有大量时间序列数据点的图表。

  1. 如果我想自动提取数据湖中的大型数据集并构建一个关系数据库,其中包含从需要手动查询的各种数据集中提取的一些有用数据,而不是对 DW 执行大型分析查询,该怎么办? ?

  2. 如果我只想提取过去 10 年的股票价格,并获取用于填充 Web 应用程序下拉列表的唯一股票代码列表,该怎么办?我不想每次都查询 OLAP 数据仓库来获取此信息,所以我想拥有自己的 OLTP 存储,以便在 TPS 更高的较小数据集上进行更高性能的查询?

  3. 如果我想为我的网络应用程序的客户构建仪表板,以显示当前位于数据湖/仓库中的大量时间序列数据的图表,该怎么办。我的 Web 应用程序是否直接连接到 DW 以显示此数据?或者我是否按某个计划将这些数据从数据湖或仓库中提取出来并放入我的应用程序数据库中?

【问题讨论】:

    标签: amazon-s3 amazon-redshift etl amazon-rds


    【解决方案1】:

    我对您的 3 个问题的看法:

    1. 为什么不直接使用与加载数据湖相同的 ETL 解决方案?
    2. 大概您的 DW 有一个 Ticker 维度,其中每个 Ticker 符号都有唯一的记录?查询这个有什么问题,因为从中获取唯一的 Ticker 符号会非常快?
    3. 这完全取决于您的环境/基础设施以及您对数据的处理方式 - 因此没有任何人可以为您提供通用答案。如果您的 webapp 显示大量数据的聚合,那么您的 DW 可能更擅长进行这些聚合并将聚合数据传递给您的 webapp;如果 webapp 显示的是未聚合的数据(并且只是 DW 中保存的数据的一小部分,例如上周的数据),那么将其加载到应用程序数据库中可能更有意义

    任何解决方案的优缺点也会受到您的基础架构的严重影响,例如您的 DW 和应用程序之间的网络性能如何?

    【讨论】:

    • 感谢您的回复! 2. 我在 DW 中查询唯一代码的问题是,它只是会经常查询的少量数据,据我了解,这更像是一个 OLTP 用例,redshift 不一定针对大规模优化。
    • 抱歉,请重新阅读您的用例。 2 并同意您不想为此每次都阅读 OLAP。应用程序的参考数据需要保存在应用程序内/靠近应用程序 - 所以我会从 OLAP 中提取它并将其加载到应用程序数据库中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多