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 个号码。

但是,您可以使用一些技巧:

  1. 您可以使用 ROW_NUMBER() 函数为每行生成一个数字。您可以将其添加到您目前拥有的 MAX。
  2. 或者您可以使用 DateTime.Now.Ticks 获得初始种子(如果您想确保不同插入之间没有重叠范围,请加上一些额外的偏移量)并使用 ROW_NUMBER().
  3. 不太推荐使用 NewGUID(),因为它会生成不同的 guid 并且不可重复。因此,如果重试一个顶点,它可能会因 non-determinism.
  4. 而导致作业失败

希望对您有所帮助。