和情況?
我現在試圖想出如何部署的方式與起程拓殖磚多區,多租戶環境。我不談論這樣的簡單的情況下(https://docs.m.eheci.com/data-governance/unity-catalog/automate.html)。
理想情況下,我想至少用單獨的DEV加州大學和加州大學,與多個工作區。
我已經創建了一些模塊可重用的資源:
metastore(加州大學)
s3
vpc
工作空間
和我計劃部署:
datalake / dev_1
datalake / dev_2
datalake / prod_1
datalake / prod_2
datalake /全球
dev_ *和prod_ *——不同的工作區
全球- metastore
這個想法是創建第一個統一目錄(metastore),那麼在每個datalake / env_ *工作區附加工作區統一目錄,但是看起來我們可以創建統一目錄沒有工作區,但是沒有辦法分配metastore_data_access統一目錄沒有工作區。
- - -
鏈接的例子使用(https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/metastore_data_access #範例用法)
它似乎應該工作。
# #創建UC metastore資源“databricks_metastore”這種“{提供者=磚。工作區name = " $ {local.prefix} - {var.workspace} -metastore美元$ {var.region} - $ {var。env} " storage_root = " s3: / / $ {var。aws_s3_bucket} / metastore“所有者= var.owner force_destroy = true}資源”databricks_metastore_data_access”“這”{提供者=磚。工作區metastore_id = databricks_metastore.this。id名稱= aws_iam_role.metastore_data_access.name aws_iam_role {role_arn = aws_iam_role.metastore_data_access。在攻擊}is_default = true}
在統一目錄部署博客(https://docs.m.eheci.com/data-governance/unity-catalog/automate.html # configure-a-metastore)你可以看到任務的ws metastore(反之亦然)。
資源”databricks_metastore_assignment”“default_metastore”{depends_on = [databricks_metastore_data_access。metastore_data_access] workspace_id = var.default_metastore_workspace_id metastore_id = databricks_metastore.metastore。id default_catalog_name = var.default_metastore_default_catalog_name}
這樣做實際上是第一,所以我猜的步驟應該改變為更好的可見性:
變量“metastore_name”{}變量“metastore_label”{}變量“default_metastore_workspace_id”{}變量“default_metastore_default_catalog_name”{}資源“databricks_metastore”“metastore”{name = var.metastore_name storage_root = " s3: / / $ {aws_s3_bucket.metastore.id} / $ {var。metastore_label}”force_destroy = true}資源”databricks_metastore_assignment default_metastore”{depends_on = [databricks_metastore_data_access。metastore_data_access] workspace_id = var.default_metastore_workspace_id metastore_id = databricks_metastore.metastore。id default_catalog_name = var.default_metastore_default_catalog_name}資源”databricks_metastore_data_access”“metastore_data_access”{(databricks_metastore depends_on =。metastore] metastore_id = databricks_metastore.metastore。id名稱= aws_iam_role.metastore_data_access.name aws_iam_role {role_arn = aws_iam_role.metastore_data_access。在攻擊}is_default = true}
讓我們回到這個問題。你如何計劃你起程拓殖和加州大學部署嗎?這將是偉大的了解其他人如何處理這個。
我有兩件事在我的腦海裏,
這意味著我的“全球”的想法是行不通的。
期待看到一些想法。
我得到了同樣的錯誤
錯誤:不能創建metastore數據訪問:不metastore指定為當前工作區。
通過扭轉depends_on秩序和固定它。我現在做databricks_metastore_data_access取決於databricks_metastore_assignment。這是我的代碼:
資源“databricks_metastore””這個“{
提供者= databricks.workspace
name = " $ {var.prefix} -metastore”
storage_root = " s3: / / $ {aws_s3_bucket.metastore.id} / metastore”
delta_sharing_scope = "內部"
delta_sharing_recipient_token_lifetime_in_seconds = 120
force_destroy = true
}
/ /分配metastore工作區
資源“databricks_metastore_assignment””這個“{
提供者= databricks.workspace
數=長度(var.workspaces)
metastore_id = databricks_metastore.this.id
workspace_id =當時(替換(var.workspaces[計數。指數)/。* / / "," "))
(databricks_metastore depends_on =。這個)
}
資源”databricks_metastore_data_access”“metastore_data_access”{
提供者= databricks.workspace
metastore_id = databricks_metastore.this.id
name = aws_iam_role.metastore_data_access.name
aws_iam_role {role_arn = aws_iam_role.metastore_data_access。在攻擊}
is_default = true
(databricks_metastore_assignment depends_on =。這個)
}