复合主键表的列分区器?

Columnpartitioner for composite primay key tables?

就我而言,我必须将大量数据从一个 table 加载到另一个。 (Tera 到 sqlserver)。使用 JdbcCursorItemReader,加载 200000 条记录平均需要 30 分钟,因为 table 有 40 列。所以我打算使用分区技术。

以下是挑战

  1. table 有一个复合主键(2 列)。
  2. 并且其中一个列值具有负值。
  3. 在这种情况下可以使用列分区技术吗?
  4. 我看到列分区技术使用一个主键并查找最大值和最小值。在我的例子中,使用复合主,即使我想出了最大、最小、网格大小。框架是否支持处理用于分区的复合主键?

这里有几点需要注意:

  1. JdbcCursorItemReader 不是线程安全的,因此它通常不用于分区场景。而是使用 JdbcPagingItemReader
  2. 您对数据进行分区的逻辑完全取决于您。虽然通过列中的值来执行此操作很有用,但它并不适用于所有用例(如本例)。在这个特定的用例中,您可能希望按 ROW_NUMBER() 或类似的东西进行分区,或者添加一列以按
  3. 进行分区