安装 Blob 存储的 Azure Databricks

Posted

技术标签:

【中文标题】安装 Blob 存储的 Azure Databricks【英文标题】:Azure Databricks mounting a blob storage 【发布时间】:2019-06-09 23:43:15 【问题描述】:

我正在尝试将 Blob 存储从我的存储帐户映射到我的 databricks 集群。我正在关注这个link,显然我只需要在我的笔记本中执行这段代码:

代码python:

dbutils.fs.mount(
  source = "wasbs://<your-container-name>@<your-storage-account-name>.blob.core.windows.net",
  mount_point = "/mnt/<mount-name>",
  extra_configs = "<conf-key>":dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>"))

我卡在参数中:(scope = "&lt;scope-name&gt;", key = "&lt;key-name&gt;")。我知道为了创建一个范围,我可以关注这个link,稍后我想在整个Databricks CLI 中导航我的集群并捕获&lt;scope-name&gt;&lt;key-name&gt;。但是,当我检查我的集群时,我只获得了范围名称,我无法在任何地方或 lkeast 找到密钥名称,我不知道如何获得它。

在 Databricks CLI 上试过:

我在哪里可以生成或找到&lt;key-name&gt;

【问题讨论】:

我的回答有帮助吗? 【参考方案1】:

我的理解是,密钥名称是您试图从秘密范围中检索的“事物”。

我猜你创建了一个数据块支持的秘密范围,而不是 Azure 密钥保管库支持的秘密范围?

您应该已经在秘密范围内实际存储了一个秘密。该秘密是针对“密钥”(令人困惑的术语)存储的。

https://docs.azuredatabricks.net/user-guide/secrets/secrets.html#create-a-secret-in-a-databricks-backed-scope

您拥有的代码正试图从秘密范围中检索该秘密并将其分配给该 json 中的&lt;conf-key&gt;

看看这个例子https://docs.azuredatabricks.net/user-guide/secrets/example-secret-workflow.html#use-the-secrets-in-a-notebook

val jdbcUsername = dbutils.secrets.get(scope = "jdbc", key = "username")

在此之前,您需要创建一个密钥保管库,其中包含您已经填充的秘密名称 username。然后这段代码去检索它

所以....您首先需要真正知道要反对什么,然后将其放入秘密范围。

例如,您可以通过简单地硬编码代码中的设置来使您的代码更简单但非常不安全

【讨论】:

【参考方案2】:

请注意,blobEndpoint 源的格式必须为:

wasbs://container@storageaccount.blob.core.windows.net

然后你设置你的变量:

blobEndpoint = dbutils.secrets.get("blob-secret","blob-endpoint")

blobKey = dbutils.secrets.get("blob-secret","blobl-access-key")

    dbutils.fs.mount(
  source = blobEndpoint,
  mount_point = "/mnt/blobmountsecret",
  extra_configs = `"fs.azure.account.key.<storageaccountname>.blob.core.windows.net":blobKey)`

【讨论】:

以上是关于安装 Blob 存储的 Azure Databricks的主要内容,如果未能解决你的问题,请参考以下文章

使用 python 将图像上传到 azure blob 存储

将文件从远程桌面(RDP)复制到Azure blob存储中

Azure 存储 Blob 重命名

JavaScript Azure Blob 存储移动 blob

使用 azure-storage-blob 或 azure-storage 上传和删除 Azure 存储 Blob

Azure SQL - 从 Azure 文件而不是 Blob 批量插入