【问题标题】:AWS Redshift vs Snowflake use casesAWS Redshift 与 Snowflake 用例
【发布时间】:2017-12-14 17:58:07
【问题描述】:

我想知道是否有人同时使用了 AWS Redshift 和 Snowflake 以及其中一个更好的用例。我使用过 Redshift,但最近有人建议 Snowflake 作为一个不错的选择。我的用例基本上是零售营销数据,少数分析师会使用这些数据,这些分析师不太精通 SQL,并且很可能会在顶部使用报告工具

【问题讨论】:

  • 这个怎么样? periscopedata.com/blog/…
  • 不是编码问题,过于主观。这两个平台都具有数百万种功能,而您实际上是在询问最终用户功能……您询问的两种产品中没有一个实际具有。

标签: amazon-web-services snowflake-cloud-data-platform


【解决方案1】:

Redshift 是一款不错的产品,但很难想出比 Snowflake 更好的用例。以下是 Snowflake 更好的一些原因:

  • 管理控制台很棒,Redshift 没有。
  • 放大/缩小只需几秒到几分钟,Redshift 需要几分钟到几小时。
  • 两种产品的文档都很好,但雪花更好地铺设 出门在外,更方便。
  • 您需要了解更少的“秘诀”才能让 Snowflake 发挥出色。在 Redshift 上,您至少需要了解和理解分布键和排序键等对性能的影响。
  • Snowflake 的加载过程比 Redshift 更优雅。 Redshift 假设您的数据已经在 S3 中。 Snowflake 支持 S3,但具有对 JDBC、ODBC 和 dbAPI 的扩展,可真正简化和保护摄取过程。
  • Snowflake 对数据库内 JSON 有很好的支持,并且正在迅速增强其 XML。 Redshift 有一种更复杂的 JSON 方法,建议不要在除较小用例之外的所有用例中使用它,并且不支持 XML。

我只能想到 Redshift 胜出的两个案例。一是地理可用性,因为 Redshift 在比 Snowflake 更多的位置可用,这可以在数据传输和报表提交时间上产生差异。另一个是提交一批多条语句的能力。 Snowflake 一次只能接受一个语句,如果批处理包含许多语句,这可能会减慢您的批处理速度,尤其是当您的服务器位于另一个大陆时。

Ajilius 我们的开发人员每天都在使用 Redshift、Snowflake 和 Azure SQL 数据仓库;我们在所有三个平台上都有客户。即使有这样的选择,每个开发人员都更喜欢 Snowflake 作为他们的首选云 DW。

【讨论】:

  • 我不确定这是来自什么经验,但是:redshift 中的管理控制台非常真实、实用且广泛。我对雪花的经验有限,但我的印象是,如果您愿意投入时间和试错来调整 redshift,则可以为 hadware 提供更高的性能,而雪花似乎更加用户友好。
【解决方案2】:

我评估了 Redshift(使用 S3 的 Redshfit 光谱)和 SnowFlake。

在我的 poc 中,snowFlake 比 Redshift 好得多。 SnowFlake 与关系/NOSQL 数据很好地集成。不需要前期索引或分区键。它的效果令人惊叹,无需担心以何种方式访问​​这一天。

Redshift 非常有限,不支持 json。很难理解分区。你必须做很多工作才能完成某件事。不支持json。您可以使用红移光谱作为访问 S3 的创可贴。祝你提前分区好运。在 S3 存储桶中创建分区后,您就完成了,除非您再次将所有数据重做为新结构,否则无法更改。您最终会花时间解决这些问题,而不是解决实际的业务问题。

这就像比较智能手机和摩尔斯电码机器。 Redshift 就像莫尔斯电码的一种实现方式,它不适合现代开发

【讨论】:

    【解决方案3】:

    我们最近从 Redshift 切换到 Snowflake 的原因如下:

    • 实时数据同步
    • 并发查询的处理
    • 最小化数据库管理
    • 为不同的 Looker 用户提供不同数量的计算能力

    可以在我们的data blog 上找到更深入的文章。

    【讨论】:

    • 如果您使用过该功能,我将不胜感激有关雪花流的任何信息。谢谢。
    【解决方案4】:

    我评估了 Redshift 和 Snowflake,以及一点点 Athena 和 Spectrum。在我们有大连接的情况下,后两者是非首发,因为它们会耗尽内存。对于 Redshift,我实际上可以获得更好的性价比,原因如下:

    • 允许我选择一个对于同位连接来说非常重要的分发密钥
    • 三年保留价格可享受极大折扣,因此您可以以合理的成本真正提升您的计算能力

    在大多数情况下,我可以使用 Redshift 获得更好的性能,但它需要良好的 MPP 知识才能正确设置物理架构。专业知识和复杂性的成本抵消了部分产品成本。

    Redshift 将 JSON 存储在 VARCHAR 列中。当跨大型表查询 JSON 元素的子集时,这可能会导致问题 (OOM),其中 VARCHAR 列的大小太大。在我们的例子中,我们必须将 VARCHAR 定义为非常大,以容纳一些具有非常大的 JSON 文档的记录。

    Snowflake 功能非常棒,包括:

    • 能够克隆对象
    • 处理 JSON 数据的深层功能
    • 用于低维护负载、自动缩放负载、涓流更新的雪管
    • 本地 ETL 的流和任务
    • 能够单独扩展存储和计算
    • 能够在一分钟内扩展计算,无需迁移数据
    • 还有更多

    关于 Snowflake,我要提醒的一件事是,人们可能会想聘请技能较低的开发人员/DBA 来运行系统。使用巨大的计算集群可以解决糟糕的架构设计中的性能问题,但这可能不是最好的选择。无论如何,Snowflake 中的功能是惊人的。

    【讨论】:

    • 如果您实际使用过 Snowflake 流,我将不胜感激。谢谢!
    • 是的,我们使用流。流在功能上类似于表上的事务日志。基本上,它们通过元数据跟踪更新、插入和删除。在我们的例子中,我们将原始数据加载到数据湖中的 Snowflake。我们为每个数据湖表声明了一个流。我们使用任务进行 ETL 处理,从流中提取更改数据,对其进行处理,然后更新我们数据仓库中的星型模式。
    • Looter,您是否有兴趣为一家咨询公司提供有关数据库密集型(Snowflake 和其他后端)项目的建议?如果是,他们的联系信息如下: 公司名称:Akvelon 电话号码:+1 (206) 905-4626 联系表格:akvelon.com/company/contact-us 姓名:Javier Sanchez 和 Alex Kosolapov 谢谢!
    猜你喜欢
    • 2021-12-22
    • 2016-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-01
    • 2017-04-19
    • 1970-01-01
    • 2015-11-29
    相关资源
    最近更新 更多