Azure 数据湖分析和 azure databricks 都可用于批处理。谁能帮我理解什么时候选择一个而不是另一个?
2 回答
在我看来,很多都归结为现有的技能组合。如果您有一个在 Spark、Java、Python、r 或 Scala 方面经验丰富的团队,那么 Databricks 是您的理想之选。另一方面,如果您的团队拥有现有的 SQL 和 c# 技能,那么他们使用 U-SQL 的学习曲线将不那么陡峭。
除此之外,还有其他问题可以消除差异:
- 您需要实时交互(Databricks)还是批处理模式分析(两者)?虽然有 U-SQL 实时交互的反馈项,请投票。
- 你想要一个现收现付模型 (U-SQL) 还是在一段时间后自动终止的集群 (Databricks)?
- 你喜欢使用笔记本(Databricks)还是 Visual Studio / VSCode / Powershell / .net sdk (U-SQL) 方法工作?
- 你想使用像 GraphX (Databricks) 这样的 Spark 库吗?
- 您想要运行和扩展任何运行时 (U-SQL) 的能力吗?有关更多详细信息,请参见此处。
- 你想要一个本地开发模拟器(U-SQL)吗?Visual Studio 中的 U-SQL 模拟器是无缝的,即您可以在与湖相同的结构中针对本地驱动器开发代码(免费),然后只需单击 Visual Studio 中的下拉菜单即可在云中运行。尽管我认为您可以拥有本地 Spark 环境,但我不确定 Databricks 的本地(和断开连接的)开发体验是什么。
- 您是否使用 ADLS Gen 2(仅限 Databricks)?见这里。
2018 年 10 月更新:据我所知,U-SQL 目前不支持 ADLS Gen 2,这将对其不利(很高兴得到纠正)。如果以及何时添加该支持,我将更新该帖子。
2019 年 1 月更新:自2018 年春季以来,U-SQL 没有任何有意义的更新。
高温高压
Databricks 有更多的语言选项,允许具有不同技能的专业人员处理数据。此外,您还可以使用 databricks 运行具有高性能内存集群的作业。
在一个项目中,我们更多地使用数据湖作为存储,并通过 databricks notebook 完成所有工作(ETL、分析)。在数据湖中存储数据更便宜。
回到您的问题,如果一个复杂的批处理作业和不同类型的专业人员将处理您的数据。你可以选择 Azure Data Lake + Databricks 体系结构。否则,Azure 数据湖将满足您的需求。
看看这 2 篇文章会有所帮助。 https://databricks.com/glossary/data-lake https://visualbi.com/blogs/microsoft/azure/etl-azure-databricks-vs-data-lake-analytics/