escaping - 雪花中的文件格式问题 - Tilda(字段分隔符),两个双引号
问题描述
我们正在从红移过渡到雪花。有一个由 S3 文件加载的红移表。将文件加载到红移的语法是
copy edfenormalisedconfzone.address_1
from 's3://aws-d**/addr**.dat'
iam_role 'arn:aws:iam::659**:role/AWS_DUB_**'
delimiter '~' REMOVEQUOTES ACCEPTINVCHARS gzip MAXERROR 1 null as 'NULL' EXPLICIT_IDS;
雪花中对应的命令是
COPY INTO "FLK_DUB_DB_DATALAKE_PRE"."EDFENORMALISEDCONFZONE"."ADDRESS1"
from @FLK_DUB_DB_DATALAKE_PRE.S**.FLK**/SNOWFLAKE/ad**.dat0005_part_00.gz
FILE_FORMAT = (TYPE = CSV,
FIELD_DELIMITER = '~',
NULL_IF = ('NULL', 'NULL')
FIELD_OPTIONALLY_ENCLOSED_BY = '"'
EMPTY_FIELD_AS_NULL = FALSE
COMPRESSION = GZIP
ENCODING = 'UTF8'
FILE_EXTENSION=DAT)
ON_ERROR = ABORT_STATEMENT;
文件加载到 Red-Shift 没有问题,但是文件无法加载到雪花中,进一步检查后我们发现表中的邮政编码字段在 tilda(~) 之后有两个双引号 ("")
enter code here
:47"~""W!U""""""RU""~""
我们正在从 Red Shift 文件格式转换为 Snowflake 文件格式,但不确定为什么这在雪花中不起作用。
解决方案
推荐阅读
- php - Laravel + Swift Mailer:错误:没有有效的收件人
- postgresql - 在 PostgresSQL 函数中,是否可以检查列值是否与给定参数值匹配?
- php - Google Ads 无法在 Multi-park 域网站上运行
- javascript - 检查输入字符串是否只有数字且最大长度为 4
- docker - 阻止服务不受限制地在某些工作人员上运行
- kubernetes - Vagrant:在所有虚拟机启动后运行 Ansible 配置,Ansible 无法连接到所有主机
- ios - 单击通知而不是通知操作时打开输入文本字段
- mysql - 获取由 Sequelize Association 生成的错误查询
- server - 显示 DNS_PROBE_FINISHED_NXDOMAIN 的错误消息
- google-cloud-storage - 从没有互联网的云存储桶下载