2017-09-19 8 views
1

데이터 레이크에서 파일 이름에 yyyyMM_data.csv 패턴이 있습니다. 이제 이전 3 일간의 데이터를 읽으 려합니다. 아래 코드를 사용 중입니다 -파일 이름 패턴에 일 부분이 없을 때 마지막 n 일간 USQL을 읽음

DECLARE @ReportDate DateTime= DateTime.Parse("05/08/2017"); 
DECLARE @FeatureSummaryInput [email protected]"/FolderPath/{InputFileDate:yyyy}{InputFileDate:MM}_data.csv"; 

@FeaturedUsed = 
    EXTRACT Id string,InputFileDate DateTime 
    FROM @FeatureSummaryInput 
    USING Extractors.Csv(silent : true, skipFirstNRows : 1); 

@FeaturedUsed= 
    SELECT * 
      FROM @FeaturedUsed 
    WHERE InputFileDate BETWEEN @ReportDate.AddDays(-3) AND @ReportDate; 

위 코드를 실행하면 빈 입력으로 실행됩니다. 제가 뭔가를 놓치고 있다면 알려주세요. 올바른 파일을 읽지 못하는 이유는 무엇입니까?

작동하려면 파일 이름 패턴에 "day"가 있어야하는 것처럼 보입니다.

답변

0

아마도 누락되었습니다. InputFileDate ~ DateTime으로 설정하면 아무런 일도 지정되지 않으므로 기본값으로 첫 번째 달이됩니다. 테스트 ReportDate05/08/2017으로 설정된 경우 WHERE 절은 기본적으로 Between 2017-08-02 And 2017-08-05으로 평가되며 이는 사실이 아닙니다.

yyyyMM으로 구조화 된 파일로 어디에서 day 요소가 올 것으로 예상됩니까?