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

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

Storage account 和 Secret key 的流程如下:

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

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

【问题讨论】:

    标签: .net-core azure-blob-storage azure-databricks


    【解决方案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 文档 - 有一个关于身份验证的单独部分
    猜你喜欢
    • 2020-02-19
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    • 2019-04-03
    • 2022-11-25
    • 1970-01-01
    • 2020-09-24
    • 2015-01-09
    相关资源
    最近更新 更多