当我使用PROC SORT into Redshift加载按关键字(包含重复关键字)排序的SAS数据集时,Redshift中不会保留相同的排序顺序。例如。当我比较SAS数据集和Redshift表时,它们的排序顺序不同,数据在重复键中非常混乱,很难找到数据如何存储在Redshift列中的模式,或者为什么会发生这种情况。

]1
任何关于在数据从SAS加载到Redshift后保持相同排序的建议或指导都将非常有帮助。谢谢!
使用的代码:
PROC APPEND BASE = Target_Table (bulkload=yes bl_compress=yes bl_bucket='xxx' bl_default_dir = 'xxx' bl_use_escape =YES)
DATA = Source_Table force;
RUN;发布于 2021-02-13 01:27:22
创建表时需要设置sortkey,例如:
proc sql;
connect using myredlib as rs;
execute (create table iwant (
key INTEGER
,data char(1)
,load_dttm TIMESTAMP
)
distkey(key)
compound sortkey(key,data) )by rs;如果您有重复项或只需要保留源数据顺序,则在追加之前的数据步骤中创建一个新列(例如id),例如:
data iwant;
set ihave;
id=_n_;
run;
proc append .....发布于 2021-02-12 20:11:51
它取决于追加开始时目标表的状态。
在缺省情况下,新表没有固有的排序顺序,只有当SQL查询具有ORDER BY子句时,才能保证排序的结果集。
表可以具有SORT ORDER和INTERLEAVED SORT KEYS等功能,但必须添加通过Proc SQL pass通过EXECUTE BY或Amazon RedShift控制台执行Redshift语句。
有关更多有用的信息,请参阅SO Why does Redshift not need materialized views or indexes?。
https://stackoverflow.com/questions/66164079
复制相似问题