You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS Redshift中通过COPY命令区分加载空白值与NULL值?

解决AWS Redshift COPY命令区分空白值与NULL值的问题

要实现把CSV中无引号的空字段加载为NULL、带引号的空字符串""加载为空白,你需要去掉EMPTYASNULL参数,改用NULL AS ''参数。

原因说明

  • Redshift默认在CSV模式下,无引号的空字段(比如,,中间的内容)和带引号的""都会被解析为空字符串;
  • 用EMPTYASNULL时,所有空字符串(不管是哪种来源)都会被统一转换为NULL,这就是你之前所有值都变成NULL的原因;
  • NULL AS ''的作用是专门将无引号的空字段识别为NULL,同时保留带引号的""作为空白字符串存入表中,刚好匹配你的需求。

修改后的COPY命令

COPY my_table
FROM 's3://my-bucket/path/null_vs_blank.csv'
IAM_ROLE 'arn:aws:iam::<your-role>'
CSV DELIMITER ','
IGNOREHEADER 1
NULL AS '';

预期加载结果

针对你的测试数据,加载后表中的数据会是:

  • 第一行:blank_column=NULL,null_column=NULL,extra='A'
  • 第二行:blank_column=''(空白字符串),null_column=NULL,extra='B'

内容的提问来源于stack exchange,提问作者Aditya Bhat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 09:06:06