如何处理 U-SQL EXTRACT 语句中丢失的文件?

How to handle a missing file in a U-SQL EXTRACT statement?

我有以下 EXTRACT 从暂存文件和生产文件中获取数据的语句:

DECLARE @staging  string = "/staging/events.csv";
DECLARE @production string = "/production/events.csv";

@events =
        EXTRACT dimensionId         string
              , tenantId            string 
              , internalEntityId    long
              , name                string
              , modifiedTimestamp   DateTime
        FROM @staging, @production
        USING Extractors.Csv();

如果缺少两个文件中的任何一个,语句将失败,这将导致整个 Azure Data Factory 管道失败:

问题

如何优雅地处理 U-SQL EXTRACT 语句中丢失的文件?

我不确定我是否可以将其限定为 "Gracefully" 但至少它可以解决问题。

我可以使用FILE.EXISTS语句预先测试文件是否存在并选择是否包含它:

DECLARE @staging  string = "/staging/events.csv";
DECLARE @production string = "/production/events.csv";

IF FILE.EXISTS(@production) == true THEN
 @events =
     EXTRACT    dimensionId         string
              , tenantId            string 
              , internalEntityId    long
              , name                string
              , modifiedTimestamp   DateTime
        FROM @staging, @production
        USING Extractors.Csv();
ELSE
@events =
     EXTRACT    dimensionId         string
              , tenantId            string 
              , internalEntityId    long
              , name                string
              , modifiedTimestamp   DateTime
        FROM @staging
        USING Extractors.Csv();
END;