netezza 如何在加载数据后重新排序 table

netezza how to reorder table after data has been loaded

我的 table 在 netezza 中看起来像这样:

b,2
b,1
a,2
a,1
a,3
c,1
c,2

我想按第一列重新排序,所以它看起来像这样:

a,2
a,1
a,3
b,2
b,1
c,1
c,2

如何在不创建新的情况下重新排序 table?

您可以使用以下排序算法之一,space 复杂度为 O(1)

https://en.wikipedia.org/wiki/Sorting_algorithm

您必须采用算法来匹配字母而不是数字,但这很容易。

如果要优化特定列的区域映射而不用 ORDER BY 重新创建 table,请将 table 更改为具有 ORGANIZE ON ( COL_NAME ) 子句。这不会立即导致磁盘上的 table 发生任何变化,但会为 GROOM 对数据进行集群设置阶段。

在那之后,运行新郎TABLETABLE_NAME记录了所有。这将聚类该列上的数据。

随后 运行 GROOM TABLE TABLE_NAME 记录准备好对新添加的行进行聚类。

我还应该补充一点,默认情况下区域映射只会跟踪 INTEGER、DATE 和 TIMESTAMP,但是使用 ORGANIZE 会导致区域映射针对字符列进行跟踪。