我有很多数据文件,最终会定期推送并存储在 Azure 存储/数据湖中。我想提供对此数据进行分析的能力,但后来我看到在 Azure 上有两种方法:
- U-SQL/Azure Data Lake 查询(可视化???)
- Spark SQL 在 Azure 和 Zeppelin 上使用 Spark
有人可以建议我何时使用哪种方法吗? 在我看来,两者都可以做类似的工作。
将U-SQL视为Microsoft的Spark SQL版本,您可以在其中编写SQL Server样式的SQL,并使用C#中的用户定义函数进行扩展。 使用Spark时,您可以使用Semi MySQL风格的SQL编写,并使用Scala或Python对其进行扩展。
如果你熟悉Scala或Python,那么选择HDInsight可能是最好的选择。 Spark附带了GraphX和MLLib,目前在Data Lake Analytics中没有类似物。 此外,如果您需要在Azure之外工作的东西,那么SparkSQL是您唯一的选择。
另一个需要考虑的重要方面是定价。 数据湖分析仅在执行查询时花费资金,但只要群集正在运行,HDInsight 就会花费资金。 根据数据的大小和查询的复杂性,Data Lake Analytics 可能会更便宜,因为在预配时无需向您收费。