首页 > 解决方案 > 如何使用 lambda 将特定列从 csv 复制到红移表中

问题描述

我正在尝试使用 lambda 中的 aws copy 命令将 csv 文件 ins s3 加载到 redshift 中。问题是我在 csv 中的列比在 redshift 表中的多。所以每当我触发 lambda fnction 时,我都会收到错误“找到额外的列”

如何从csv加载特定列

我的 csv 文件是形式

年、月、描述、类别、SKU、销售额(月)

我的红移表是形式

year month description category SKU
-----------------------------------

我的复制命令如下

COPY public.sales 
FROM 's3://mybucket/sales.csv' 
iam_role 'arn:aws:iam::99999999999:role/RedShiftRole' 
delimiter ',' 
ignoreheader 1 
acceptinvchars

标签: amazon-web-servicesaws-lambdaamazon-redshift

解决方案


您可以指定要导入表的列列表 - 有关更多详细信息,请参阅COPY命令文档

COPY public.sales (year, month, description, category, SKU)
FROM 's3://mybucket/sales.csv' 
iam_role 'arn:aws:iam::99999999999:role/RedShiftRole' 
delimiter ',' 
ignoreheader 1 
acceptinvchars

推荐阅读