Я хотел бы объединить все месяцы и дни в одном файле, используя U SQL. Можно ли сделать это простым способом, не упоминая каждый путь в отдельности (в противном случае это безумие для всех дней года)?
Да! Вы можете сделать это, используя шаблоны, например: c:
REFERENCE ASSEMBLY [Newtonsoft.Json];
REFERENCE ASSEMBLY [Microsoft.Analytics.Samples.Formats];
DECLARE @input string = "/Data/2018/{*}/2/mydata.json";
USING Microsoft.Analytics.Samples.Formats.Json;
@a =
EXTRACT EventCategory string
, EventAction string
, EventLabel string
FROM @input
USING new JsonExtractor()
OUTPUT @a
TO "/Output/mydata.Csv"
USING Outputters.Csv(outputHeader:true);
. Это загрузит все данные второго дня месяца.
Другие варианты:
DECLARE @input string = "/Data/2018/{*}/{*}/mydata.json";
обработает все файлы 2018
DECLARE @input string = "/Data/{*}/12/{*}/mydata.json";
обработает все файлы, созданные в 12-м месяце всех лет
Если вы хотите получить части файла, чтобы получить фактическую дату части, которые вы можете сделать:
REFERENCE ASSEMBLY [Newtonsoft.Json];
REFERENCE ASSEMBLY [Microsoft.Analytics.Samples.Formats];
USING Microsoft.Analytics.Samples.Formats.Json;
@a =
EXTRACT EventCategory string
, EventAction string
, EventLabel string
, date DateTime
FROM "/Data/{date:yyyy}/{date:MM}/{date:dd}/mydata.json"
USING new JsonExtractor()
OUTPUT @a
TO "/Output/mydata.Csv"
USING Outputters.Csv(outputHeader:true);
Как видите, теперь есть дополнительный столбец date
типа DateTime
, который можно использовать в запросе и / или включить в вывод.