与CTAS相比,CREATE EXTERNAL TABLE的优缺点是什么?

时间:2019-04-17 12:46:39

标签: sql azure azure-data-factory azure-data-lake azure-sqldw

我正在尝试建立一个Azure数据工厂管道,该管道从Azure数据湖中获取数据并进行转换。

我想将转换后的数据存储在Azure SQL数据仓库中(作为事实和维度)。

我最终提出了两种解决方案,以使数据在仓库中可用:

  1. 使用CREATE EXTERNAL TABLE,并在.csv文件中引用位于Lake中的转换数据;
  2. 使用CTAS.csv文件从湖中复制到仓库中;

问题

对我来说,折衷方案并不明显。一方面,在我看来,第一种选择是避免将副本复制到仓库中(是吗?)。但是第二个选项将提供更多选项,例如索引。

与CTAS相比,CREATE EXTERNAL TABLE的优缺点是什么?

1 个答案:

答案 0 :(得分:2)

将数据放入DW(使用CTAS)的主要好处是,针对该数据的后续查询将明显更快。您将获得跨节点和分布的数据的完整分布。任何过滤或联接表的查询都将更快。

正如您所指出的,不利之处在于您现在正在存储数据的另一份副本...假设一旦将其提取,就不会从数据湖中删除该文件。

将“创建外部表”视为仅提供外部文件到SQL数据结构的映射。