首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据加载到Redshift后,Redshift表不会保留SAS排序顺序

将数据加载到Redshift后,Redshift表不会保留SAS排序顺序
EN

Stack Overflow用户
提问于 2021-02-12 06:46:03
回答 2查看 143关注 0票数 0

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

]1

任何关于在数据从SAS加载到Redshift后保持相同排序的建议或指导都将非常有帮助。谢谢!

使用的代码:

代码语言:javascript
复制
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;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-13 01:27:22

创建表时需要设置sortkey,例如:

代码语言:javascript
复制
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),例如:

代码语言:javascript
复制
data iwant;
  set ihave;
  id=_n_;
run;
proc append .....
票数 3
EN

Stack Overflow用户

发布于 2021-02-12 20:11:51

它取决于追加开始时目标表的状态。

在缺省情况下,新表没有固有的排序顺序,只有当SQL查询具有ORDER BY子句时,才能保证排序的结果集。

表可以具有SORT ORDERINTERLEAVED SORT KEYS等功能,但必须添加通过Proc SQL pass通过EXECUTE BY或Amazon RedShift控制台执行Redshift语句。

有关更多有用的信息,请参阅SO Why does Redshift not need materialized views or indexes?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66164079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档