首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >u-sql:在u-sql脚本中加载文件

u-sql:在u-sql脚本中加载文件
EN

Stack Overflow用户
提问于 2017-06-21 04:04:03
回答 1查看 165关注 0票数 0

我有数千个包含从2016年1月到今天的csv文件。我想加载2016年11月25日到2017年1月2日的所有文件。

我知道我可以像下面这样使用虚拟路径,但这不会从磁盘加载所有数据吗?我只想要上面这段时间的数据。添加@result查询(修改为我的时间段)是否可以确保只将我感兴趣的文件加载到内存中?

代码语言:javascript
复制
DECLARE @file_set_path2 string = @dir + "{date:yyyy}/{date:MM}/{date:dd}/{date:MM}{date:dd}{date:yyyy}.csv";

@data = 
    EXTRACT vala int, 
            valb long, 
            valc DateTime, 
            date DateTime // virtual file set column
    FROM @file_set_path2
    USING Extractors.Csv();

@result = 
SELECT *
FROM @data
WHERE date > DateTime.Parse("2016-11-24")
AND   date < DateTime.Parse("2017-01-03");

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-21 04:24:53

如果谓词与编译器可以看到的值(例如,常量、常量可折叠表达式或脚本参数)进行比较,并且谓词可以移动(例如,在用于连接的谓词中使用and而不是&& ),那么优化器将只接触指定范围内的文件。所以上面的查询应该没问题。

如果谓词不是上述之一,您应该会收到警告。

如果您不了解此行为,请让我知道。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44662077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档