Azure U-Sql视图通过排名合并重复项

Azure U-Sql视图通过排名合并重复项,azure,azure-data-lake,u-sql,Azure,Azure Data Lake,U Sql,我的数据存在于多个文件中,命名约定为{year}/{month}/{date},这些文件都有重复的数据(每天增量,记录可能每天更新) 我想创建一个视图,该视图将返回合并/压缩重复项的记录。 将对重复项进行排序,只返回与每个主键对应的最新更新记录 但是在视图中使用行集似乎不受支持。基本上是这样的: CREATE VIEW viewname AS @sourcedata = EXTRACT //schema from //filenamePattern (regex) using Extra

我的数据存在于多个文件中,命名约定为{year}/{month}/{date},这些文件都有重复的数据(每天增量,记录可能每天更新)

我想创建一个视图,该视图将返回合并/压缩重复项的记录。 将对重复项进行排序,只返回与每个主键对应的最新更新记录

但是在视图中使用行集似乎不受支持。基本上是这样的:

CREATE VIEW viewname AS 

@sourcedata  = EXTRACT  //schema
from //filenamePattern (regex)
using Extractors.TSV()

@sourceData =  SELECT *,
       ROW_NUMBER() OVER(PARTITION BY primary_Key ORDER BY timestamp DESC) AS RowNumber FROM @SourceData;

SELECT //schema
from @sourceData WHERE RowNumber == 1
所以当我这么做的时候

从视图名称中选择*


我直接从底层文件获取合并数据。如何做到这一点

一个视图中可以有多个
EXTRACT
语句与一个
UNION
语句堆叠在一起,该语句将隐式删除重复项。但是,您需要使用视图有什么特别的原因吗?这将限制您的选项,因为您必须在视图的限制范围内编码(例如,它们无法参数化)。您也可以使用表值函数、存储过程或只是一个普通的旧脚本。这将为您提供更多选项,尤其是在重复数据消除逻辑复杂的情况下。一个简单的例子:

DROP VIEW IF EXISTS vw_removeDupes;

CREATE VIEW vw_removeDupes
    AS

EXTRACT someVal int
FROM "/input/input59a.txt"
USING Extractors.Tsv()

UNION

EXTRACT someVal int
FROM "/input/input59b.txt"
USING Extractors.Tsv();

我认为它可以通过表值函数来解决。你试过用它吗


我现在已经把问题说清楚了,这不是简单的删除重复项,而是包含排名,它会为每个主键保留最新更新的记录。