Redshift插入查询的最大大小是多少?

时间:2018-09-19 14:15:21

标签: amazon-web-services elasticsearch amazon-redshift

我正在尝试将多行数据批处理到Redshift INSERT查询中。为了保持效率,我想知道在开始新批次之前可以走的最大长度。如果有更好的方法可以进行此操作,请告诉我。

编辑:我有点模糊。我正在尝试从Elasticsearch转到Redshift。这会导致我将JSON格式转换为:INSERT INTO xxxx VALUES (a1, a2, a3), (b1, b2, b3), (c1, c2, c3)

2 个答案:

答案 0 :(得分:1)

Redshift语句的最大长度为16MB。 请参阅 https://docs.aws.amazon.com/redshift/latest/dg/c_redshift-sql.html

如果需要定期加载大量数据,首先将数据移至S3的速度要快得多,然后使用Redshift COPY命令。

答案 1 :(得分:1)

最佳加载数据的方式是使用firebase.database().ref('msgs').orderByChild('g_id').equalTo(gID) once("value", function(snapshot) { snapshot.forEach(function(child) { child.ref.update({ dBy: [user_id] }); }); }); 语句从Amazon S3加载。这允许所有节点并行参与负载,这是最有效的方法。

如果您的应用程序生成的小批量数据不需要COPY,那么建议您 Use a Multi-Row Insert 。。

>

没有关于插入多少行的具体建议,但是越多越好(因为它导致更少的批次)。

如果数据已经在另一个Amazon Redshift表中,则可以Use a Bulk Insert 从一个表中选择并插入到另一个表中

请参阅:Amazon Redshift Best Practices for Loading Data - Amazon Redshift