在U-SQL脚本中,我们希望将分区表中的数据选择为行集,进行一些操作,然后将数据插入到同一个表中。
以下工作正常:
@rowset =
SELECT PartitionColumn,
DataColumn * 2 AS DataColumn // Some manipulation
FROM MyTable;
INSERT MyTable (PartitionColumn, DataColumn)
ON INTEGRITY VIOLATION IGNORE
SELECT PartitionColumn,
DataColumn
FROM @rowset;
但是,如果我们在PartitionColumn
上添加WHERE条件,假设我们在@partition1
中有一个有效的分区存储区值:
@rowset =
SELECT PartitionColumn,
DataColumn * 2 AS DataColumn
FROM MyTable
WHERE PartitionColumn == @partition1
执行脚本时出现以下错误:
完成'错误':30-08-2017 10:18:32执行失败 错误'1_SV1_Extract_Split错误{ “diagnosticCode”:195887163, “严重”: “错误”, “组件”: “RUNTIME”, “源”:“系统”, “ErrorID中”: “E_RUNTIME_SYSTEM_INTERNALISSUE” “message”:“已报告内部错误'断言失败:'partitionDimension< vertexIndices.size()'
[删除堆栈跟踪]
如果我们在INSERT语句中显式指定分区:
INSERT MyTable (DataColumn)
PARTITION (@partition1)
SELECT DataColumn
FROM @rowset;
...脚本运行正常。但是,我们有一种情况,我们根据PartitionColumn
的一系列值从几个分区中选择数据,所以我们只想依赖于隐式插入到桶中。有解决方法吗?
我应该注意,这只是使用Data Studio for Visual Studio在本地数据库上测试过的。
答案 0 :(得分:0)
这看起来像一个错误(SYSTEM INTERNAL ISSUE)。如果只在本地运行中使用repros,或者如果集群中出现故障,则可以使用repro来报告事件吗?您也可以将信息发送给usql [at] microsoft dot com。