在 U-SQL 和 Spark / Databricks 之间进行选择
Choosing between U-SQL and Spark / Databricks
我有基于 Azure 数据工厂和 Azure 数据湖分析 (U-SQL) 制作 ETL 解决方案的经验。
但似乎微软已经开始强制使用 Azure Databricks。
U-SQL快死了吗?自从七月以来,我还没有看到任何关于新功能的消息。
即将进行的项目非常简单。我们在 Azure Data Lake Storage 上存储了大约 0.5 Tb 的 JSON 小文件。它们需要转换成平面表并以某种方式连接。
所以我的问题是为新项目选择什么 ADF+U-SQL 或 ADF+DataBricks?
Spark 的数据编程模型 engineering/transformation 从根本上说比 U-SQL 更灵活和可扩展。
对于小型、简单的项目,您不会注意到其中的差异,我建议您使用您熟悉的任何项目。对于复杂项目 and/or 那些您预计需求会发生显着变化的项目,我强烈建议 Spark 使用一种受支持的语言:Scala、Java、Python 或 R 而不是 SparkSQL.推荐的原因是 Spark 用于数据转换的领域特定语言 (DSL) 相当于 SQL 代码生成,这是所有 BI/analytics/warehousing 工具在幕后使用的管理复杂性的技巧,非常容易.它允许 logic/configuration/customization 以处理 SQL 时不可能或不切实际的方式进行组织和管理,我们不应该忘记,这是一种已有 40 多年历史的语言。
有关 Spark 可能实现的抽象级别的极端示例,您可能会喜欢 https://databricks.com/session/the-smart-data-warehouse-goal-based-data-production
如果您要处理 dirty/untrusted 数据(在您的情况下是 JSON),并且希望有一个高度 controlled/custom 的摄取过程,我也会推荐 Spark。在这种情况下,您可能会受益于 spark-records library for bulletproof data processing. https://databricks.com/session/bulletproof-jobs-patterns-for-large-scale-spark-processing
中的一些想法
就使用 Spark 而言,尤其是对于新用户而言,Databricks 提供了最佳的托管环境。多年来,我们一直是管理 PB 级非常复杂数据的客户。我们团队中来自 SQL 背景且不是软件开发人员的人员在 Databricks notebooks 中使用 SparkSQL,但他们受益于 tooling/abstractions 数据工程和数据科学团队为他们创建的。
祝你项目顺利!
我有基于 Azure 数据工厂和 Azure 数据湖分析 (U-SQL) 制作 ETL 解决方案的经验。
但似乎微软已经开始强制使用 Azure Databricks。
U-SQL快死了吗?自从七月以来,我还没有看到任何关于新功能的消息。
即将进行的项目非常简单。我们在 Azure Data Lake Storage 上存储了大约 0.5 Tb 的 JSON 小文件。它们需要转换成平面表并以某种方式连接。
所以我的问题是为新项目选择什么 ADF+U-SQL 或 ADF+DataBricks?
Spark 的数据编程模型 engineering/transformation 从根本上说比 U-SQL 更灵活和可扩展。
对于小型、简单的项目,您不会注意到其中的差异,我建议您使用您熟悉的任何项目。对于复杂项目 and/or 那些您预计需求会发生显着变化的项目,我强烈建议 Spark 使用一种受支持的语言:Scala、Java、Python 或 R 而不是 SparkSQL.推荐的原因是 Spark 用于数据转换的领域特定语言 (DSL) 相当于 SQL 代码生成,这是所有 BI/analytics/warehousing 工具在幕后使用的管理复杂性的技巧,非常容易.它允许 logic/configuration/customization 以处理 SQL 时不可能或不切实际的方式进行组织和管理,我们不应该忘记,这是一种已有 40 多年历史的语言。
有关 Spark 可能实现的抽象级别的极端示例,您可能会喜欢 https://databricks.com/session/the-smart-data-warehouse-goal-based-data-production
如果您要处理 dirty/untrusted 数据(在您的情况下是 JSON),并且希望有一个高度 controlled/custom 的摄取过程,我也会推荐 Spark。在这种情况下,您可能会受益于 spark-records library for bulletproof data processing. https://databricks.com/session/bulletproof-jobs-patterns-for-large-scale-spark-processing
中的一些想法就使用 Spark 而言,尤其是对于新用户而言,Databricks 提供了最佳的托管环境。多年来,我们一直是管理 PB 级非常复杂数据的客户。我们团队中来自 SQL 背景且不是软件开发人员的人员在 Databricks notebooks 中使用 SparkSQL,但他们受益于 tooling/abstractions 数据工程和数据科学团队为他们创建的。
祝你项目顺利!