【问题标题】:The best practice to be followed when reading data from azure datalake gen1 through azure databricks通过 azure databricks 从 azure datalake gen1 读取数据时要遵循的最佳实践
【发布时间】:2020-06-11 20:13:44
【问题描述】:
我是 azure databricks 的新手。我试图将数据从数据湖读取到数据块中。我发现主要有两种方法
- 将 datalake 中存在的文件挂载到 dbfs 中(优点是只需要一次身份验证)
- 使用服务主体和 OAuth(每个请求都需要身份验证)
我很想知道当我们选择在 dbfs 中挂载文件夹时是否有一些显着的内存消耗。我了解到挂载的数据是持久的。所以我猜这可能会导致一些内存消耗。当我们在 dbfs 中挂载文件时,如果有人能解释一下后端发生了什么,我会很高兴
【问题讨论】:
标签:
azure
azure-data-lake
azure-databricks
【解决方案1】:
持久数据的问题:
据我根据documentation of dbfs了解,通过dbfs从挂载点读入的数据没有持久化:
“写入挂载点路径 (/mnt) 的数据存储在 DBFS 根目录之外。尽管 DBFS 根目录是可写的,但我们建议您将数据存储在挂载对象存储中,而不是存储在 DBFS 根目录中。”
相反,您可以将数据直接写入 DBFS(即,在后台,只是一个存储帐户),并且该数据将在集群重新启动之间保持不变。例如,您可以将一些示例数据集直接存储在 DBFS 中。
Data Lake Gen 1 的最佳实践
由于不应该对性能产生任何影响,我不知道总体上是否存在“最佳实践”。根据我的经验,请记住,这两种解决方案对于不知道如何进行身份验证的新用户来说可能会感到困惑。