首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在RedShift中的临时表中编码

在RedShift中的临时表中编码
EN

Stack Overflow用户
提问于 2017-01-20 16:20:45
回答 1查看 636关注 0票数 0

我正在使用临时临时表TempStaging进行一些合并。主表MainTable的某些列中的数据以lzo格式编码,比如C1。合并输出返回到MainTable。

为了确保TempStaging的dist键相同,我使用create table创建它。由于某些原因,我不能使用Create Table as。

那么,我应该将列C1编码到lzo中吗?或者让它不编码?会不会RedShift在从MainTable中选择时短路解码,在写入TempStaging时编码,在从TempTable中选择时解码进行合并,在将其写入MainTable时重新编码回来

因为我在想,如果短路没有发生,我最好离开编码,用一些内存来换取CPU收益。

-Amit

EN

Stack Overflow用户

回答已采纳

发布于 2017-01-25 23:48:24

Redshift中的数据总是在从表AFAIK中读取时被解码。有一些数据库可以直接操作压缩数据,但Redshift不能。

对于是否应在临时表中使用编码,没有绝对规则。这取决于正在写入的数据量。我发现用当时的90+%编码速度更快,所以这是我的默认方法。

正如您所注意到的,确保临时表使用相同的dist键是第一要务。但是,您可以在CREATE TABLE AS中指定dist键(和列编码):

代码语言:javascript
复制
CREATE TABLE my_new_table
DISTKEY(my_dist_key_col)
AS
SELECT *
FROM my_old_table
;
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41759015

复制
相关文章

相似问题

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