Polybase:将数据从外部表加载到特定日期/时间范围的根 blob 文件夹
Posted
技术标签:
【中文标题】Polybase:将数据从外部表加载到特定日期/时间范围的根 blob 文件夹【英文标题】:Polybase: Loading data from external table to root blob folder for specific date/time range 【发布时间】:2018-06-28 20:47:29 【问题描述】:我在 blob 存储帐户中有数据,该帐户按以下结构组织:
/logs/YYYY/mm/dd/HH
假设有几年的数据,我想将特定时间段(或多个时间段)中的数据提取到 Azure 数据仓库表中。
就 Polybase 检索数据的方式而言,以下各项有何不同:
1) 创建表作为从指向根文件夹 (/logs) 的外部表中选择的表,其中包含考虑特定时间值的一系列值(例如 x 和 y 之间的时间戳)的 where 子句。
2) 来自外部表 UNION 的 CTAS,指向构成我想要的特定时间段的各个文件夹。
我假设上面的 2) 会更快,因为 Polybase 不必查看任何不需要的文件夹?它是否正确?
如果是这样,有没有办法从指向根文件夹的外部表中进行选择,但以某种方式只选择特定时间段的文件?
也许有一些文档可以解释这一点?
【问题讨论】:
【参考方案1】:是的,你是对的。
1 将所有数据引入,然后在 SQL DW 中应用 where 子句。
2 会更快,因为它只会从单个文件夹中获取数据。
目前,PolyBase 外部表不支持文件夹/文件/分区,因此无法根据过滤子句跳过。
【讨论】:
以上是关于Polybase:将数据从外部表加载到特定日期/时间范围的根 blob 文件夹的主要内容,如果未能解决你的问题,请参考以下文章
带有日期分区的 HdInsight Azure DW Polybase 到 Hive 表 (ORC) 失败
将 ADLS Gen 2 中的数据加载到 Azure Synapse
Polybase - 将数据类型 VARCHAR 转换为 DATETIME 时出错