每个管道而不是每个笔记本活动的Databricks作业集群

时间:2019-02-22 09:49:58

标签: azure azure-data-factory databricks azure-databricks

我正在不同Databricks笔记本中转换数据(从ADLS读取,转换和写入)。我在DataFactory管道中选择了这些笔记本:

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

我已经从DataFactory创建了到我的Databricks的连接,并将其添加到我的笔记本活动中。每当管道触发时,我都想启动一个Databricks集群。总的来说,这一切工作正常。但是Databricks为每个笔记本活动启动了一个工作集群,这花了太长时间,对我来说似乎是不必要的。

是否可以在管道的开头启动集群,然后在所有笔记本完成后关闭集群?还是有任何论点认为每个活动都有一个工作集群是很好的?

2 个答案:

答案 0 :(得分:2)

当前无法将同一作业集群用于多个笔记本活动。

两个替代选项:

  1. 使用交互式集群
  2. 使用交互式群集,并且(如果有成本意识的话)在开始时会有一个网络活动,以通过azure数据块REST端点启动群集,而在笔记本活动通过REST端点DELETE(TERMINATE)结束时,在结束时又有另一个Web活动< / li>

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

答案 1 :(得分: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-a-dynamic-data-pipeline-with-databricks-and-azure-data-factory-5460ce423df5