首页 > 解决方案 > 通过 azure databricks 从 azure datalake gen1 读取数据时要遵循的最佳实践

问题描述

我是天蓝色数据块的新手。我试图将数据从数据湖读取到数据块中。我发现主要有两种方法

  1. 将 datalake 中存在的文件挂载到 dbfs 中(优点是只需要一次身份验证)
  2. 使用服务主体和 OAuth(每个请求都需要身份验证)

我很想知道当我们选择在 dbfs 中挂载文件夹时是否有一些显着的内存消耗。我了解到挂载的数据是持久的。所以我猜这可能会导致一些内存消耗。当我们在 dbfs 中挂载文件时,如果有人能解释一下后端发生了什么,我会很高兴

标签: azureazure-data-lakeazure-databricks

解决方案


持久数据的问题:

据我根据 dbfs 的文档了解,通过 dbfs 从挂载点读取的数据不会持久化:

“写入挂载点路径 (/mnt) 的数据存储在 DBFS 根目录之外。即使 DBFS 根目录是可写的,我们还是建议您将数据存储在挂载对象存储中,而不是存储在 DBFS 根目录中。”

相反,您可以将数据直接写入 DBFS(在后台,只是一个存储帐户),并且该数据将在集群重新启动之间保持不变。例如,您可以将一些示例数据集直接存储在 DBFS 中。

Data Lake Gen 1 的最佳实践

由于不应该有任何性能影响,我不知道总体上有一个“最佳实践”。根据我的经验,请记住,对于不知道身份验证是如何进行或如何完成的新用户来说,这两种解决方案可能会让人感到困惑。


推荐阅读