azure - 通过 azure databricks 从 azure datalake gen1 读取数据时要遵循的最佳实践
问题描述
我是天蓝色数据块的新手。我试图将数据从数据湖读取到数据块中。我发现主要有两种方法
- 将 datalake 中存在的文件挂载到 dbfs 中(优点是只需要一次身份验证)
- 使用服务主体和 OAuth(每个请求都需要身份验证)
我很想知道当我们选择在 dbfs 中挂载文件夹时是否有一些显着的内存消耗。我了解到挂载的数据是持久的。所以我猜这可能会导致一些内存消耗。当我们在 dbfs 中挂载文件时,如果有人能解释一下后端发生了什么,我会很高兴
解决方案
持久数据的问题:
据我根据 dbfs 的文档了解,通过 dbfs 从挂载点读取的数据不会持久化:
“写入挂载点路径 (/mnt) 的数据存储在 DBFS 根目录之外。即使 DBFS 根目录是可写的,我们还是建议您将数据存储在挂载对象存储中,而不是存储在 DBFS 根目录中。”
相反,您可以将数据直接写入 DBFS(在后台,只是一个存储帐户),并且该数据将在集群重新启动之间保持不变。例如,您可以将一些示例数据集直接存储在 DBFS 中。
Data Lake Gen 1 的最佳实践
由于不应该有任何性能影响,我不知道总体上有一个“最佳实践”。根据我的经验,请记住,对于不知道身份验证是如何进行或如何完成的新用户来说,这两种解决方案可能会让人感到困惑。
推荐阅读
- elasticsearch - 如何使用 Nest 客户端对 Elasticsearch 操作(如 UpdateByQuery 或 Reindex)启用自动切片?
- python - discord.py 中的数学命令和错误
- xdebug - Xdebug 只能在它已进入的页面上中断
- node.js - 发票已发送给用户,但我无法使用 node.js 收到任何条纹发票邮件
- typo3 - TYPO3 网站迁移问题 - TYPO3 后端工作但前端不工作
- python - bta-lib 错误:尝试使用 rsi 指标但给出 ValueError: cannot set using a slice indexer with a different length than the value
- django - Django获取发送请求的子域
- c# - 如何在统一变换中冻结 Y 旋转。 LookAt()?
- python - Python - 从float继承并调用str和repr时出现递归错误
- reactjs - 错误:我的子组件中的 useState 值没有立即更改,您需要按两次提交按钮