0

我在不同的 Databricks 笔记本中转换数据(从 ADLS 读取、转换和写入)。我在 DataFactory 管道中连接了这些笔记本:

Notebook 1 --> Notebook 2 --> Notebook 3 --> Notebook

然后,我从 DataFactory 创建了与我的 Databricks 的连接,并将其添加到我的笔记本活动中。每当触发管道时,我想启动一个 Databricks 集群。总的来说,这一切都很好。但是 Databricks 为每个笔记本活动启动一个作业集群,这需要很长时间,对我来说似乎没有必要。

是否可以在管道开始时启动集群,然后在所有笔记本完成后将其关闭?或者是否有任何论据认为每个活动都有一个工作集群是件好事?

4

2 回答 2

2

目前无法为多个笔记本活动使用相同的作业集群。

两个备选方案:

  1. 使用交互式集群
  2. 使用交互式集群,并且(如果有成本意识)在开始时有一个 Web 活动以通过 azure databricks REST 端点启动集群,并在笔记本活动之后通过 REST 端点删除(终止)集群最后的另一个 Web 活动

不幸的是,这两个选项都使用交互式集群——与作业集群相比,这有点贵。

于 2019-02-22T11:42:41.320 回答
0

还有一个可能的解决方法。您可以使用 ADF 中的作业集群创建和触发“主”Databricks 笔记本,它会使用 dbutils.notebook.run() 命令一一调用具有适当参数的笔记本。

这样,您将从作业集群中节省成本,并且它也将立即终止。

请参阅本文中的“https://towardsdatascience.com/building-a-dynamic-data-pipeline-with-databricks-and-azure-data-factory-5460ce423df5”部分-> https://towardsdatascience.com/building-带有databricks和azure-data-factory-5460ce423df5的动态数据管道

于 2020-10-11T15:40:26.503 回答