amazon-s3 - S3 -> Redshift 无法处理 UTF8

标签 amazon-s3 amazon-redshift paraccel

我们在 S3 中有一个文件,它通过 COPY 加载到 Redshift 中。命令。导入失败,因为 VARCHAR(20)值包含 Ä正在翻译成 ..在复制命令期间,现在对于 20 个字符来说太长了。

我已经验证了 S3 中的数据是正确的,但是 COPY命令在导入过程中无法识别 UTF-8 字符。有没有人找到解决方案?

最佳答案

tl;博士
您的 varchar 的字节长度列只需要更大。
细节varchar 支持多字节字符 (UTF-8)数据类型,但是提供的长度以字节为单位,不是 人物。
AWS documentation for Multibyte Character Load Errors声明如下:

VARCHAR columns accept multibyte UTF-8 characters, to a maximum of four bytes.


因此,如果您想要字符 Ä要被允许,那么您需要为该字符允许 2 个字节,而不是 1 个字节。
AWS documentation for VARCHAR or CHARACTER VARYING声明如下:

... so a VARCHAR(120) column consists of a maximum of 120 single-byte characters, 60 two-byte characters, 40 three-byte characters, or 30 four-byte characters.


有关 UTF-8 字符及其字节长度的列表,这是一个很好的引用:
Complete Character List for UTF-8
有关 Unicode 字符 'LATIN CAPITAL LETTER A WITH DIAERESIS' (U+00C4) 的详细信息,请访问 here .

关于amazon-s3 - S3 -> Redshift 无法处理 UTF8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27612294/

相关文章:

amazon-s3 - CloudFront 为第二个源提供 403

java - SparkApp 无法加载 Aws Java Sdk 定义

database - Redshift 中的 sortkey 内部如何工作?

amazon-redshift - AWS RedShift 的沙盒版本

sql - 使用 Amazon RedShift 透视表

analytics - ParAccel 的 FastLoad(在 Teradata 中)等效项是什么?

javascript - Amazon S3 POST,事件何时完成?

apache-spark - 最佳文件大小和 Parquet block 大小

sql - 通过查看所有列删除重复的 SQL 行

amazon-web-services - 如何在 RedShift/ParAccel 中测量磁盘上的表空间