U-Sql 视图通过排名合并重复项
U-Sql view to merge duplicates via ranking
我的数据位于多个文件中,命名约定为 {year}/{month}/{date},其中有重复项(记录可能每天更新的每天增量)。
我想创建一个视图,该视图将 return 具有重复项的记录合并/压缩。
重复项将被排序,并且只有对应于每个主键的最新更新的记录将被 returned.
但是好像不支持在视图中使用行集。基本上是这样的:
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
所以当我
select * from viewname
我直接从底层文件中获取合并数据。如何做到这一点?
视图中可以有多个 EXTRACT
语句与 UNION
语句堆叠在一起,这将 隐式删除重复项 。但是,您是否有任何特殊原因需要使用视图?这将限制您的选择,因为您必须在视图的限制范围内进行编码(例如,它们不能被参数化)。您还可以使用 table-valued 函数、存储过程或只是一个普通的旧脚本。这将为您提供更多选择,尤其是当您的 de-duplication 逻辑很复杂时。一个简单的例子:
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();
我觉得可以用table值函数来解决。您尝试过使用它吗?
https://msdn.microsoft.com/en-us/azure/data-lake-analytics/u-sql/u-sql-functions
我的数据位于多个文件中,命名约定为 {year}/{month}/{date},其中有重复项(记录可能每天更新的每天增量)。
我想创建一个视图,该视图将 return 具有重复项的记录合并/压缩。 重复项将被排序,并且只有对应于每个主键的最新更新的记录将被 returned.
但是好像不支持在视图中使用行集。基本上是这样的:
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
所以当我
select * from viewname
我直接从底层文件中获取合并数据。如何做到这一点?
视图中可以有多个 EXTRACT
语句与 UNION
语句堆叠在一起,这将 隐式删除重复项 。但是,您是否有任何特殊原因需要使用视图?这将限制您的选择,因为您必须在视图的限制范围内进行编码(例如,它们不能被参数化)。您还可以使用 table-valued 函数、存储过程或只是一个普通的旧脚本。这将为您提供更多选择,尤其是当您的 de-duplication 逻辑很复杂时。一个简单的例子:
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();
我觉得可以用table值函数来解决。您尝试过使用它吗?
https://msdn.microsoft.com/en-us/azure/data-lake-analytics/u-sql/u-sql-functions