繁体   English   中英

Amazon Redshift - 复制 - 数据加载与查询性能问题

[英]Amazon Redshift - Replication - Data load Vs Query Performance Issues

我们正在将数据仓库从Oracle迁移到Redshift。 目前,我们有两个Oracle数据库实例 - 一个DW实例(主要)获取从一天中不同来源加载的数据,另一个DW(辅助)实例从主DW中复制数据。 所有报告平台都指向辅助DW实例。 我们如何在Redshift中解决这个问题? 我们是否需要有两个Redshift实例从另一个实例复制? 如果我们只有一个Redshift实例,那么数据加载开销会影响查询性能。 会有表锁问题吗?

感谢您的建议。 谢谢。

这实际上取决于您的报告平台需要多快访问全天加载的数据。 如果它可以等待,那么在安静的时间批量加载是有意义的。 我怀疑您在当前设置中使用复制,您需要尽快加载和提供数据。

在这种情况下,使用Redshift的工作负载管理(WLM)设置是有意义的。 这允许您指定多个工作负载组,并为每个工作负载组分配并发级别和集群资源分配。 使用此模型,您可以对资源进行隔离,以确保报告工具和最终用户的查询性能保证一致的资源分配,同时仍将集群的一部分查询队列和资源专用于数据加载。

这也消除了使用两个单独的数据库实例来处理加载和提供数据的需要。

有关Redshift中WLM的更多详细信息,请参见此处: http//docs.aws.amazon.com/redshift/latest/dg/cm-c-implementing-workload-management.html

永远不会从同一个实例读取和写入。 甚至没有在Redshift。 即使一般而言,任何强制您从同一台机器读写的系统都会反映出糟糕的设计。

由于您正在讨论Amazon Redshift,我可以非常轻松地假设您拥有分析数据。 (具有柱状架构的Redshift针对读取而非写入进行了优化。因此,如果您碰巧在Redshift上存储事务数据,我建议您重新考虑您的决定)。

在设计任何关于分析数据的基础知识之前,我们应该始终考虑:

  1. 这将是浩繁的。
  2. 它将在不久的将来进一步扩大规模。

当您扩展时,从同一台机器读取和写入将是灾难性的。 而不是忘记锁。 删除/截断将在表格中保留独占锁定 如果发生某些其他进程用户已经获得此锁定,则即使该表上的写入也将失败,从而弄乱数据。

上述原因可能足以说明为什么使用单个仓库来读/写数据。

遵循以下模型,整洁干净,永不干扰,并确保您不会遇到一致性和锁定等问题:

 +
 |
 |
 |  DS 1     +------------+            +------------+
 +---------> |            |            |            |
             |            | AGGREGATES |            |     reads
    DS 2     |   DW 1     +----------> |    DW 2    | +----------->
+----------> |            |            |            |
             |            |            |            |
+----------> +------------+            +------------+
|... DS n
|
+
where DS : Data Source , DW : Data Warehouse

从DW 1 - > DW 2迁移数据将完全取决于您需要引用的数据频率。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM