Azure - 为存储容器中的每个新 blob 触发 Databricks 笔记本
Posted
技术标签:
【中文标题】Azure - 为存储容器中的每个新 blob 触发 Databricks 笔记本【英文标题】:Azure - Trigger Databricks notebook for each new blob in Storage container 【发布时间】:2021-03-19 03:13:05 【问题描述】:我正在实施一种测试解决方案:
我已经用 Python 创建了一个 Azure databricks 笔记本。此笔记本正在执行以下任务(用于测试)-
-
从 Pyspark 数据帧中的存储帐户读取 blob 文件。
对它做一些转换和分析。
使用转换后的数据创建 CSV 并存储在不同的容器中。
将原始读取的 CSV 移动到不同的存档容器(以便在下次执行时不会被拾取)。
*以上步骤也可以在不同的笔记本中完成。
现在,我需要为容器中的每个新 Blob 触发此笔记本。 我将实施以下编排-
容器中的新 blob -> 事件到 EventGrid 主题 -> 触发 Datafactory 管道 -> 执行 Databricks Notebook。
我们可以将文件名作为参数从 ADF 管道传递到 Databricks 笔记本。
寻找其他方法来进行编排流程。 如果以上看起来正确且更合适,请标记为已回答。
【问题讨论】:
这是一个常见的模式,你应该没问题。 【参考方案1】:容器中的新 blob -> 事件到 EventGrid 主题-> 触发器 Datafactory 管道 -> 执行 Databricks Notebook。
我们可以将文件名作为参数从 ADF 管道传递到 Databricks 笔记本。
寻找其他方法来进行编排流程。如果以上 似乎正确且更合适,请标记为已回答。
您可以使用此方法。当然,你也可以走这条路:
New blob in Container
-> Use built-in event trigger to trigger Datafactory pipeline
-> execute Databricks Notebook
。
我认为您不需要介绍事件网格,因为数据工厂带有用于基于 blob 创建事件的触发器。
【讨论】:
感谢您的回复。我只使用 ADF 的内置事件触发器。 (我提到了 eventgrid ,因为这个 ADF 触发器还会在后端创建一个 EventGrid 系统主题)。 @Gopesh 您当前的方法是合适的。也许我们现在可以结束这个问题? 我得到了 2 个支持 cmets 来支持我所关注的内容。所以,是的,它可以结束。 @Gopesh 你可以标记答案来结束这个问题。:)【参考方案2】:我获得了 2 个支持 cmets,用于我所关注的编排。 // 容器中的新 blob -> 事件到 EventGrid 主题 -> 触发 Datafactory 管道 -> 执行 Databricks Notebook。 //
【讨论】:
以上是关于Azure - 为存储容器中的每个新 blob 触发 Databricks 笔记本的主要内容,如果未能解决你的问题,请参考以下文章