auto_increment 在 U-SQL
auto_increment in U-SQL
我正在尝试构建一个新的 table,其中包含来自现有 user_id 的独特 user_id。是否可以在 U-SQL 中添加 auto_increment 主键,就像我们可以在 MySQL?
中添加一样
这目前不可能。
详细说明 David 的回答:与 MySQL 不同,ADLA/U-SQL 在 scale-out 无共享架构中执行。因此,没有一种简单的方法来管理 auto-incremental 个号码。
但是,您可以使用一些技巧:
- 您可以使用
ROW_NUMBER()
函数为每行生成一个数字。您可以将其添加到您目前拥有的 MAX。
- 或者您可以使用
DateTime.Now.Ticks
获得初始种子(如果您想确保不同插入之间没有重叠范围,请加上一些额外的偏移量)并使用 ROW_NUMBER()
.
- 不太推荐使用
NewGUID()
,因为它会生成不同的 guid 并且不可重复。因此,如果重试一个顶点,它可能会因 non-determinism. 而导致作业失败
希望对您有所帮助。
我正在尝试构建一个新的 table,其中包含来自现有 user_id 的独特 user_id。是否可以在 U-SQL 中添加 auto_increment 主键,就像我们可以在 MySQL?
中添加一样这目前不可能。
详细说明 David 的回答:与 MySQL 不同,ADLA/U-SQL 在 scale-out 无共享架构中执行。因此,没有一种简单的方法来管理 auto-incremental 个号码。
但是,您可以使用一些技巧:
- 您可以使用
ROW_NUMBER()
函数为每行生成一个数字。您可以将其添加到您目前拥有的 MAX。 - 或者您可以使用
DateTime.Now.Ticks
获得初始种子(如果您想确保不同插入之间没有重叠范围,请加上一些额外的偏移量)并使用ROW_NUMBER()
. - 不太推荐使用
NewGUID()
,因为它会生成不同的 guid 并且不可重复。因此,如果重试一个顶点,它可能会因 non-determinism. 而导致作业失败
希望对您有所帮助。