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 会导致区域映射针对字符列进行跟踪。
我的 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 会导致区域映射针对字符列进行跟踪。