检查 .NET 中是不是存在 azure databricks 挂载点

Posted

技术标签:

【中文标题】检查 .NET 中是不是存在 azure databricks 挂载点【英文标题】:Check if azure databricks mount point exists from .NET检查 .NET 中是否存在 azure databricks 挂载点 【发布时间】:2022-01-17 13:34:13 【问题描述】:

我正在开发一个执行某种数据工程的应用程序,我们使用 Azure ADLS 进行数据存储,使用 Databricks 进行数据操作。检索数据有两种方法,第一种方法使用Storage AccountStorage account secret key,另一种方法使用mount point。当我采用第一种方法时,我可以从 .NET 成功检查 Storage account 和它的对应 Secret key 是否相互对应,并返回消息凭据是否正确。但是,我需要对mount point 做同样的事情,即确定mount point 是否存在于dbutils.fs.mounts() 或存储中的任何位置(我不知道mount point 是如何工作的,以及它是否将数据存储在blob 中)。

Storage accountSecret key 的流程如下:

    尝试使用 Microsoft 的 BlobServiceClient API 进行连接; 如果失败,则向用户返回凭据无效的消息; 如果没有失败,请继续。

我对@9​​87654333@ 之类的东西不太熟悉,因为我主要使用.NET,但是有没有办法从.NET 中检查mount point 是否存在?

【问题讨论】:

【参考方案1】:

挂载点只是对底层云存储的一种引用。 dbutils.fs.mounts() 命令需要在某个集群上执行 - 这是可行的,但它并不快速且麻烦。

最简单的检查方法是使用 DBFS REST API 的List command,将挂载点名称/mnt/<something> 作为path 参数传递。如果它不存在,您将收到错误消息RESOURCE_DOES_NOT_EXIST


  "error_code": "RESOURCE_DOES_NOT_EXIST",
  "message": "No file or directory exists on path /mnt/test22/."

【讨论】:

我是否需要添加以dbapi... 开头的个人访问令牌作为授权标头? 是的,您需要进行身份验证。您可以通过个人访问令牌或 AAD 令牌(个人或服务主体)进行身份验证。查看 REST API 文档 - 有一个关于身份验证的单独部分

以上是关于检查 .NET 中是不是存在 azure databricks 挂载点的主要内容,如果未能解决你的问题,请参考以下文章

检查 Azure 存储中是不是存在 blob

Azure Powershell - 检查资源是不是存在

如何检查 Azure Blob 文件是不是存在

检查 Azure Blob 存储中是不是存在 blob (php)

c# Azure MVC 从控制器调用 .Result 检查 blob 是不是存在

如何检查文件是不是存储在 Azure Blob 中