azure-data-factory - 多个数据流与所有转换合二为一
问题描述
您好我是 Azure 数据工厂的新手,并不熟悉在后台运行的后端处理。我想知道与在一个数据流中进行所有转换相比,并行运行几个数据流是否会对性能产生影响。
我正在尝试使用不存在的转换来暂存一些数据。我必须为多张桌子做这件事。当我测试并行运行两个数据流时,集群同时针对两个数据流一起出现。但我不确定这是否是将表加载分配到多个数据流的最佳方法,还是将所有转换都放在一个数据流中
解决方案
1:如果您在管道中并行执行数据流,ADF 将根据附加到每个活动的 Azure 集成运行时中的设置为每个集群启动单独的 Spark 集群。
2:如果将所有逻辑放在单个数据流中,那么它将全部在单个 Spark 集群实例上的同一个作业执行上下文中执行。
3:另一种选择是在管道中串行执行活动。如果您在 Azure IR 配置上设置了 TTL,则 ADF 将重用计算资源 (VM),但您仍将在每次执行时使用全新的 Spark 上下文。
所有这些都是有效的做法,您选择哪一种应该取决于您对 ETL 流程的要求。
第 3 项可能需要最长的时间来执行端到端。但它确实提供了每个数据流步骤中操作的清晰分离。
第 2 项在逻辑上可能更难以遵循,并且不会给您太多的可重用性。
第 1 项与第 3 项非常相似,但您可以并行运行它们。当然,并非每个端到端流程都可以并行运行。您可能需要在开始下一个数据流之前完成数据流,在这种情况下,您将返回 #3 串行模式。
推荐阅读
- hadoop - InvalidAuxServiceException in MapReduce Job
- hibernate - 如何使用 JPQL、复合主键/外键和 MySQL 方言查找缺失的 @ManyToOne 关系
- java - How to use KeyListener for moving Rectangles
- ios - 带有 NSAttributedString 的 UITextView 是滞后的
- c# - 如何在 Wordpress JWT Auth API 的正文中传递用户名和密码
- c# - 我在使用 Net Core 3.1 的控制台应用程序中使用带有 Azure SDK WebJobs 的用户机密时遇到问题
- android - react native for android中的图像选择器错误
- bash - 如何在 Centos7 中正确回显变量
- amazon-s3 - 如何在 EMR Notebook 上使用 pyspark 从 tar.bz2 读取镶木地板文件?
- python - 如何根据另一个数组的条件(对于一副扑克牌)从数组中排除一个项目?