大佬教程收集整理的这篇文章主要介绍了如果未提供列列表,Redshift COPY 命令将忽略表默认值,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 Json 文件,Jsonfile.Json
包含该表的数据,但表中的每个字段都没有值。
当我尝试执行这样的复制时:
copY myTable
from 's3://bucket/Jsonfile.Json'
IAM_RolE 'arn:aws:iam::111111111111:role/redshift-role'
FORMAT AS JsON 'auto'
GZIP
文件中缺失的字段应该让表在复制时设置其默认值,但这些值被设置为 null 或空。
如果我执行这样的复制:
copY myTable(a,b,C) --doesn't even have to have the full column List
from 's3://bucket/Jsonfile.Json'
IAM_RolE 'arn:aws:iam::111111111111:role/redshift-role'
FORMAT AS JsON 'auto'
GZIP
我四处搜索,但没有发现任何描述此情况的内容,或者至少我认为这是这种情况。
有人见过这个吗?
您应该发布一些示例数据以使事情更清楚。重要的是要记住,对于文本,空字符串和 NULL 是不同的。空字符串是一个值,其中 NULL 不是,并且只有在没有为列指定值时才分配默认值。那么在您的数据中,源文件中没有数据的字段是空字符串吗?我希望如此,但显示示例数据会澄清。有一个 JSON 文件的 COPY 选项,可以将空字符串映射到 NULL -“EMPTYASNULL”。如果我的假设是正确的,这可以解决您的问题。
,您使用什么类型的默认值? DEFAULT
、IDENTITY
或 GENERATED BY DEFAULT AS IDENTITY
?
我怀疑解释将取决于加载行时的预期行为,而这又取决于所使用的默认类型。
以上是大佬教程为你收集整理的如果未提供列列表,Redshift COPY 命令将忽略表默认值全部内容,希望文章能够帮你解决如果未提供列列表,Redshift COPY 命令将忽略表默认值所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。