Polybase:将数据从外部 table 加载到特定 date/time 范围的根 Blob 文件夹
Polybase: Loading data from external table to root blob folder for specific date/time range
我在 blob 存储帐户中有数据,该帐户按以下结构组织:
/logs/YYYY/mm/dd/HH
假设有几年的数据,我想将特定时间段(或多个时间段)的数据提取到 Azure 数据仓库 table。
以下在 Polybase 检索数据的方式方面有何不同:
1) Create table as Select from External table pointing to the root folder (/logs) with a where clause which accounts a range of values for a particular时间值(例如 x 和 y 之间的时间戳)。
2) 来自外部 table 的 UNION 的 CTAS,它指向构成我想要的特定时间段的各个文件夹。
我假设上面的 2) 会更快,因为 Polybase 不必查看任何不需要的文件夹?这个对吗?
如果是这样,有没有办法从指向根文件夹的外部 table select,但在某种程度上只能 selecting 特定时间段的文件?
也许有一些文档对此进行了解释?
是的,你是对的。
1 会带入所有的数据,然后在SQL DW 中应用where 子句。
2 会更快,因为它只会从单个文件夹中获取数据。
目前,PolyBase 外部表 folder/file/partition 无法根据过滤子句跳过。
我在 blob 存储帐户中有数据,该帐户按以下结构组织:
/logs/YYYY/mm/dd/HH
假设有几年的数据,我想将特定时间段(或多个时间段)的数据提取到 Azure 数据仓库 table。
以下在 Polybase 检索数据的方式方面有何不同:
1) Create table as Select from External table pointing to the root folder (/logs) with a where clause which accounts a range of values for a particular时间值(例如 x 和 y 之间的时间戳)。
2) 来自外部 table 的 UNION 的 CTAS,它指向构成我想要的特定时间段的各个文件夹。
我假设上面的 2) 会更快,因为 Polybase 不必查看任何不需要的文件夹?这个对吗?
如果是这样,有没有办法从指向根文件夹的外部 table select,但在某种程度上只能 selecting 特定时间段的文件?
也许有一些文档对此进行了解释?
是的,你是对的。
1 会带入所有的数据,然后在SQL DW 中应用where 子句。
2 会更快,因为它只会从单个文件夹中获取数据。
目前,PolyBase 外部表 folder/file/partition 无法根据过滤子句跳过。