无法使用 INTEGRITY VIOLATION IGNORE 插入源 table
Cannot insert into source table with INTEGRITY VIOLATION IGNORE
在 U-SQL 脚本中,我们希望将分区 table 中的数据 SELECT 放入行集中,进行一些操作,然后将数据插入到相同的行集中table.
以下工作正常:
@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
执行脚本时出现以下错误:
Completed with 'Error' : 30-08-2017 10:18:32 Execution failed with
error '1_SV1_Extract_Split Error {
"diagnosticCode":195887163,"severity":"Error",
"component":"RUNTIME",
"source":"System",
"errorId":"E_RUNTIME_SYSTEM_INTERNALISSUE",
"message":"An internal error has been reported 'Assertion failed: 'partitionDimension < vertexIndices.size()'
[removed stack trace]
如果我们在 INSERT 语句中明确指定分区:
INSERT MyTable (DataColumn)
PARTITION (@partition1)
SELECT DataColumn
FROM @rowset;
...脚本运行良好。然而,我们有这样一种情况,我们 SELECT 来自多个分区的数据基于 PartitionColumn
的一系列值,所以我们只想依赖隐式插入到桶中。有解决办法吗?
我应该注意,这仅在本地数据库上使用 Data Lake Tools for Visual Studio.
进行了测试
这看起来像是一个错误(系统内部问题)。如果它仅在本地 运行 重现,或者如果它在集群中失败,你能否用重现来记录事件 link?您也可以将信息发送到 usql [at] microsoft dot com。
在 U-SQL 脚本中,我们希望将分区 table 中的数据 SELECT 放入行集中,进行一些操作,然后将数据插入到相同的行集中table.
以下工作正常:
@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
执行脚本时出现以下错误:
Completed with 'Error' : 30-08-2017 10:18:32 Execution failed with error '1_SV1_Extract_Split Error { "diagnosticCode":195887163,"severity":"Error", "component":"RUNTIME", "source":"System", "errorId":"E_RUNTIME_SYSTEM_INTERNALISSUE", "message":"An internal error has been reported 'Assertion failed: 'partitionDimension < vertexIndices.size()'
[removed stack trace]
如果我们在 INSERT 语句中明确指定分区:
INSERT MyTable (DataColumn)
PARTITION (@partition1)
SELECT DataColumn
FROM @rowset;
...脚本运行良好。然而,我们有这样一种情况,我们 SELECT 来自多个分区的数据基于 PartitionColumn
的一系列值,所以我们只想依赖隐式插入到桶中。有解决办法吗?
我应该注意,这仅在本地数据库上使用 Data Lake Tools for Visual Studio.
进行了测试这看起来像是一个错误(系统内部问题)。如果它仅在本地 运行 重现,或者如果它在集群中失败,你能否用重现来记录事件 link?您也可以将信息发送到 usql [at] microsoft dot com。