USQL 自定义提取器 - 最新版本
USQL Custom Extractor - Latest Version
我有一个数据湖,只要源系统更新,它就会发送数据。对于它的多个版本,这可能导致单个项目被多次发送。
在 USQL 中,我可以检索所有内容,然后对数据集进行分区并获取每个项目的最新版本。
但是,Views 中好像没有变量?我想要一个便于其他团队访问的视图。例如
CREATE VIEW MyDatabase.DataLakeViews.LastestDataVersion
AS
@output =
EXTRACT MyKey string,
MyData string,
EventEnqueuedUtcTime DateTime
FROM @"adl://bwdatalakestore.azuredatalakestore.net/Stream/MGS/pts/sportsbook/betinfo/csv/2017/11/27/{*}.csv"
USING Extractors.Text(delimiter : '|', skipFirstNRows : 1);
@PartitionedOutput =
SELECT *,
ROW_NUMBER() OVER(PARTITION BY MyKey ORDER BY EventEnqueuedUtcTime DESC) AS RowNumber
FROM @output;
@FinalOutput =
SELECT *
FROM @PartitionedOutput
WHERE RowNumber == 1;
OUTPUT @FinalOutput
TO "/ReferenceGuide/QSE/Extract/SearchLog_extracted.txt"
USING Outputters.Tsv();
这在视图中不起作用。有没有办法 shorthand 这个分区,而不是放入每个查询。
可能是一种通过自定义提取器实现此目的的方法?它似乎通过遍历每一行来工作,所以可能不适合这里...
视图遵循 SQL 在单个表达式上不带参数定义的语言。
您想参数化视图,它是 table-valued function。
我有一个数据湖,只要源系统更新,它就会发送数据。对于它的多个版本,这可能导致单个项目被多次发送。
在 USQL 中,我可以检索所有内容,然后对数据集进行分区并获取每个项目的最新版本。
但是,Views 中好像没有变量?我想要一个便于其他团队访问的视图。例如
CREATE VIEW MyDatabase.DataLakeViews.LastestDataVersion
AS
@output =
EXTRACT MyKey string,
MyData string,
EventEnqueuedUtcTime DateTime
FROM @"adl://bwdatalakestore.azuredatalakestore.net/Stream/MGS/pts/sportsbook/betinfo/csv/2017/11/27/{*}.csv"
USING Extractors.Text(delimiter : '|', skipFirstNRows : 1);
@PartitionedOutput =
SELECT *,
ROW_NUMBER() OVER(PARTITION BY MyKey ORDER BY EventEnqueuedUtcTime DESC) AS RowNumber
FROM @output;
@FinalOutput =
SELECT *
FROM @PartitionedOutput
WHERE RowNumber == 1;
OUTPUT @FinalOutput
TO "/ReferenceGuide/QSE/Extract/SearchLog_extracted.txt"
USING Outputters.Tsv();
这在视图中不起作用。有没有办法 shorthand 这个分区,而不是放入每个查询。
可能是一种通过自定义提取器实现此目的的方法?它似乎通过遍历每一行来工作,所以可能不适合这里...
视图遵循 SQL 在单个表达式上不带参数定义的语言。
您想参数化视图,它是 table-valued function。