AWS Redshift批量插入+编码定义

时间:2014-06-19 16:38:27

标签: postgresql amazon-web-services bulkinsert amazon-redshift

在同时定义数据类型和编码时,是否可以使用create table as语法对REdshift进行批量插入?什么是正确的语法?

EG以下是'as'附近的语法错误:

create table my_table (
  a int not null encode runlength,
  b int not null encode runlength
) distkey(a) sortkey (a, b) as (
    select * from other_table
);

我只能通过定义列名(a或b)来实现它,这是一个巨大的限制......

1 个答案:

答案 0 :(得分:0)

此处提供了有关Redshift CTAS的更多详细信息:http://docs.aws.amazon.com/redshift/latest/dg/r_CTAS_usage_notes.html。简而言之,没有提到您可以在CTAS语句中定义编码。但您可以定义排序键和哈希键。此语句的默认编码选择为none。

但是,如果您想进行批量插入,为什么不分两步执行。

  1. 使用您的编码和排序/哈希键创建表new_table
  2. 从old_table
  3. 插入new_table作为select *