barikulislam015 发表于 2023-11-26 14:54:06

由于对数据工程一无所知

我们花了 15 分钟启动一个 RedShift 集群,然后指派我们的 Web 工程师用 Ruby 构建一个自定义解决方案,该解决方案将在 cron 上执行并将我们的生产数据表复制到 RedShift 中。 注意——这并没有真正解决我们的问题……它只是移动了它。生产模式的更改现在最终会破坏 ETL 系统。我们拥有更好的错误处理能力,并且查询有时运行得更快一些,因为它们是在 RedShift 集群上执行的,但我们并没有真正将 Web 应用程序数据库与分析数据分离。 现在回想起来,我知道对于分析师和数据科学家来说,仅仅复制表格并不是一个很好的解决方案。 分析师需要能够运行包含大量联接和聚合的查询,如果您必须联接包含不同数据片段的多个表,这些操作在 RedShift 集群上会相当慢。

最好花一些时间设计一个数据库模式,使业务查询变得快速、简单和容易。 数据科学团队通常需要进行更复杂的数据操作。通常,他们会将数据集存储在 S3 或 Google Drive 等服务上 电子邮件营销列表 的文件中,并使用 Spark 等工具处理数据集,仅当人们想要交互式查询数据科学团队提出的某些衡量标准时,才将数据加载到事务数据库或数据仓库中。 最终,自制的 ETL 解决方案不起作用,因为没有人维护它。分析师团队很遗憾他们无法访问所需的数据,而工程师则忙于构建产品而无暇不断调整 ETL 代码。 这就是我们购买 ETL 解决方案的原因。 我们使用托管 ETL 工具 我们认为购买 ETL 解决方案而不是构建我们自己的解决方案是一个好主意。所以我们开始做研究。

http://zh-cn.bhleads.com/wp-content/uploads/2023/11/国家邮箱列表.png

我们最终从供应商那里购买了解决方案并进行了设置。这不是一次很棒的经历。 同样,供应商的工具唯一允许的是将数据库直接复制到 Redshift。这意味着我们仍然拥有分析数据和生产数据库。 还有更多问题—— 该解决方案由我们的供应商管理,性能不稳定。有时 ETL 作业会失败或中途失败,我们没有好的方法来解决问题。 我们必须让供应商访问我们的整个系统并购买支持合同。 回想起来,我认为我们选择了一个糟糕的供应商,但我们也错误地诊断了问题并选择了一个糟糕的解决方案。批量 ETL 处理的正确性和故障排除非常困难。在正常的工程中,您编写程序并立即尝试。如果出现问题,您几乎立即就会知道,并且可以去修复它。

页: [1]
查看完整版本: 由于对数据工程一无所知