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

Check if azure databricks mount point exists from .NET

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

Storage accountSecret key 的流程如下:

  1. 尝试使用 Microsoft 的 BlobServiceClient API 进行连接;
  2. 如果失败,return 向用户发送一条消息,指出凭据无效;
  3. 如果没有失败,继续下一步。

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

挂载点只是对底层云存储的一种引用。 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/."
}