Azure Data Lake - HDInsight与数据仓库

时间:2018-01-18 11:39:56

标签: azure azure-data-lake u-sql sql-data-warehouse

我正处于使用Azure数据仓库中的外部表从Azure Data Lake读取的位置。

这使我们能够使用众所周知的SQL读取数据湖。

但是,另一个选择是使用Data Lake Analytics,或HDInsight的某些变体。

表现明智,我没有看到太多差异。我假设数据仓库在后台运行某种形式的分布式查询,转换为U-SQL(?),那么我们为什么要使用具有稍微不同的U-SQL语法的Data Lake Analytics?

在SQL中也可以使用python脚本,我觉得我缺少Data Lake Analytics的一个关键目的,除了成本(按批次作业付费,而不是数据库的恒定运行时间)。

2 个答案:

答案 0 :(得分:5)

如果您的主要目的是查询存储在Azure数据仓库(ADW)中的数据,那么使用Azure Data Lake Analytics(ADLA)并没有什么好处。但是,只要您将其他(非)结构化数据存储在ADLS中,例如json文档或csv文件,ADLA的好处就变得清晰,因为U-Sql允许您使用(un)将存储在ADW中的关系数据加入存储在ADLS中的结构化/ nosql数据。

此外,它使您能够使用U-Sql准备此其他数据以便在ADW中直接导入,因此不再需要Azure数据工厂将数据导入数据仓库。有关详细信息,请参阅this blogpost

  

ADLS和SQL DW的常见用例如下。原始数据从各种来源被摄入ADLS。然后,ADL Analytics用于清理数据并将其处理为加载就绪格式。从那里,可以通过PolyBase将高价值数据导入Azure SQL DW。

...

  

您可以使用外部表格上的Create Table As Select(CTAS)语句将以ORC,RC,Parquet或Delimited Text文件格式存储的数据直接导入SQL DW。

答案 1 :(得分:3)

请注意,SQL数据仓库中的SQL语句当前不会在后台生成U-SQL。此外,ADLA / U-SQL和SDW之间的用例也不同。

ADLA正在为您提供一个处理引擎来进行批量数据准备/烹饪,以生成您的数据,以构建数据集市/仓库,然后您可以使用SQL DW以交互方式阅读。在上面的例子中,你似乎主要是做第二部分。添加"视图"在这些EXTERNAL表的顶部进行SQL DW中的转换如果你操作大数据(而不仅仅是几十万行),将很快进入可扩展性限制。