2017-06-20 1 views
0

2016年1月から今日まで、数千のcsvファイルが含まれています。 2016年11月25日25日から2017年1月02日までのすべてのファイルをロードします。u-sql:u-sqlスクリプトでファイルをロード

私は以下のように仮想パスを使用できますが、ディスクからすべてのデータをロードすることはできません。私は上記の期間のデータのみを必要とします。 @resultクエリを追加すると(自分の期間に変更する)、興味のあるファイルだけがメモリにロードされるようになりますか?

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");

答えて

1

述語は、使用コンパイラは(例えば、定数、定数折り畳み式の表現やスクリプトパラメータ)を見ることができる値と述語を移動することができる(例えば、と比較するととされている場合一致の述語で& &でない場合)、オプティマイザは指定された範囲内のファイルにのみアクセスします。したがって、上記のクエリはうまくいくはずです。

述語が上記のいずれでもない場合は、警告が表示されます。

この現象が発生しない場合は、私にお知らせください。

関連する問題