bigdata - 在 ETL 期间加入数据的最佳实践
问题描述
我一直在谷歌搜索,并不能真正找到我的问题的答案。假设我有 2 个大表,我的最终目标表需要在这 2 个表之间连接的行。在可扩展性和最佳实践方面,我应该在哪里进行这些连接?在源数据库上?提取后在内存中?还是临时表?
谢谢
解决方案
我同意,这里没有规则,只是常识。尽快摆脱不必要的数据是一件好事,这样您将在未来花费更少的资源/存储,但您应该考虑对您的 PROD 环境的影响。
暂存表
在 Staging 中拥有数据副本为您提供了更多的自由和灵活性,能够尝试不同的 ETL 方法等等。我会在那里做。即使您的 ETL 现在看起来很简单,但它可以在未来增长,因此您需要一个安静的地方来处理您的数据。
在记忆中
内存在哪里?如果它是一个产品实例,并且您消耗了 95% 的内存...... :) 无论如何,所有计算都在“内存中”。
此致。
推荐阅读
- amazon-web-services - AWS ECS:运行任务失败原因:[“ATTRIBUTE”]
- java - 我仍然对为什么这个程序没有产生我期望的结果感到困惑
- javascript - Javascript函数被重复调用
- ruby-on-rails - 如何查找所有包含空文件的记录?
- html - 是什么?
- javascript - Ajax creating duplicate forms until page reloads
- sql - GridView控件更新时找不到id
- bash - 如何在Mac上列出文件名中包含特定字符串的文件夹中的所有文件?
- laravel - 如何在 AWS Lightsail 上更改 nginx 文档根目录?
- rust - 除了使用 move 或 Box 之外,是否可以转移所有权?