データファクトリでジョブのスケジュール設定に問題があります。 私は時間ごとにスケジュールされたジョブにアプローチしようとしています。毎時同じスクリプトを異なる条件で実行します。仮想ファイルセットの列と行セットの変数U-SQL
私はAzure Data Lake Storeに広がったAvroファイルの束を次のパターンで持っています。/Data/SomeEntity/{date:yyyy}/{date:dd}/SomeEntity_ {date:yyyy} {date:MM} {date:dd} __ {date:H}
1時間ごとに新しいファイルがData Lake Storeに追加されます。 ファイルを一度だけ処理するために、U-SQL仮想ファイルセットの列とData Lake Storeで作成したSyncTableの助けを借りて処理することにしました。
私のクエリは次のようになります。
DECLARE @file_set_path string = /Data/SomeEntity/{date:yyyy}/{date:MM}/{date:dd}/SomeEntity_{date:yyyy}_{date:MM}_{date:dd}__{date:H};
@result = EXTRACT [Id] long,
....
date DateTime
FROM @file_set_path
USING someextractor;
@rdate =
SELECT MAX(ProcessedDate) AS ProcessedDate
FROM dbo.SyncTable
WHERE EntityName== "SomeEntity";
@finalResult = SELECT [Id],... FROM @result
CROSS JOIN @rdate AS r
WHERE date >= r.ProcessedDate;
私は句、私はクロスセットで焦がす行に参加するよどこに行セット変数を使用することはできませんので、しかし、この場合においてもU-SQLが正しいファイルを見つけることができませんし、常に設定されているすべてのファイルを返します。
回避策やその他の方法はありますか?
"WHERE date ** == ** r.ProcessedDate;"にする必要がありますか? –
最後に処理された日付の後にすべてのファイルを処理しようとしているので、いいえ – taffarel