批量上传到Amazon Redshift

时间:2019-04-22 06:52:58

标签: amazon-web-services amazon-redshift

我需要每天将数据插入到AWS Redshift。 要求是仅分析插入Redshift的每日批次。 BI工具将Redshift群集用于分析。

问题:

每天“更新”数据集的最佳实践是什么? 我担心的是,这是一项相当繁重的操作,性能将很差,但同时这是一种相当普遍的情况,我相信以前是由多个组织完成的。

1 个答案:

答案 0 :(得分:0)

如果数据在S3上,为什么不在其上创建EXTERNAL TABLE。然后,如果对外部表的查询速度还不够,则可以使用CREATE TABLE AS SELECT语句将其加载到临时表中,并在加载后将其重命名为惯用表名称。

速写SQL:

CREATE EXTERNAL TABLE external_daily_batch_20190422 (
    <schema ...>
)
PARTITIONED BY (
    <if anything to partition on>
)
ROW FORMAT SERDE <data format>
LOCATION 's3://my-s3-location/2019-04-22';


CREATE TABLE internal_daily_batch_temp 
    DISTKEY ...
    SORTKEY ...
AS 
SELECT * from external_daily_batch_20190422;


DROP TABLE IF EXISTS internal_daily_batch__backup CASCADE;


ALTER TABLE internal_daily_batch rename to internal_daily_batch__backup;


ALTER TABLE internal_daily_batch_temp rename to internal_daily_batch;

不能增加负荷吗?

顺便说一句,您的所有10TB数据都是可变的吗?不可能进行增量更新吗?