我正在尝试在Azure Databricks上实现DevOps。
我已经完成了databricks、notebooks和dbfs文件的devops实现。
我确实有许多databricks作业在我的集群上按计划运行。其中一些作业指向notebook文件,少数作业指向dbfs位置中的jar文件。
有没有办法在azure databricks作业上实现devops过程,以便DEV中的任何作业中的任何更改都将调用构建管道,并在PROD databricks实例中部署相同的作业。
首先,我想知道是否有可能在azure databricks作业上实现devops。
感谢任何线索!
发布于 2021-02-05 15:14:15
为了有效地做到这一点,我建议使用Databricks Terraform provider -在这种情况下,definition of the job可以存储在Git或类似的东西中,然后很容易与CI/CD系统集成,如Azure DevOps,GitHub Actions等。
环境之间的差异可以编码为具有不同文件的变量,以及用于不同环境的变量,等等,因此您可以在环境之间重用主要代码,如下所示:
provider "databricks" {
host = var.db_host
token = var.db_token
}
data "databricks_spark_version" "latest" {}
data "databricks_node_type" "smallest" {
local_disk = true
}
resource "databricks_job" "this" {
name = "Job"
new_cluster {
num_workers = 1
spark_version = data.databricks_spark_version.latest.id
node_type_id = data.databricks_node_type.smallest.id
}
notebook_task {
notebook_path = "path_to_notebook"
}
email_notifications {}
}附注:理论上,您可以实现一些定期任务,将作业定义从原始环境中拉出,并检查作业定义是否已更改,然后将更改应用到另一个环境。您甚至可以通过diagnostic logs跟踪作业定义的更改,并将其用作触发器。
但所有这些只是一些技巧--最好使用Terraform。
https://stackoverflow.com/questions/65036477
复制相似问题