如何在Snowpipe(SNOWFLAKE)中处理特殊字符

时间:2019-10-17 14:52:40

标签: snowflake-data-warehouse

(在SO中发布此Q&A序列,因为我确定有些新用户可能会遇到类似的“减速” -G)


如何在Snowpipe中处理特殊字符

我正在基于csv文件创建Snowpipe。我的csv文件在几列中包含特殊字符。请让我知道如何在Snowpipe中编写select语句,该语句将处理所有特殊字符。

2 个答案:

答案 0 :(得分:1)

要处理特殊字符,您需要对其进行转义。

有2种转义特殊字符的方法,但不幸的是,每种方法都需要您修改文件

1)您可以通过复制特殊字符来对其进行转义(以便对''使其改成'')

2)在定义文件格式时,可以添加ESCAPE参数来定义一个显式转义字符。例如,您可以使用ESCAPE='\\',然后在要转义的每个特殊字符之前添加一个\字符。

答案 1 :(得分:0)

snowpipe命令嵌入了可以包含select语句(转换)的copy语句,并且我们可以使用字符串函数来删除特殊字符。

/* Data load with transformation */
COPY INTO [<namespace>.]<table_name> [ ( <col_name> [ , <col_name> ... ] ) ]
     FROM ( SELECT [<alias>.]$<file_col_num>[.<element>] [ , [<alias>.]$<file_col_num>[.<element>] ... ]
            FROM { internalStage | externalStage } )
[ FILES = ( '<file_name>' [ , '<file_name>' ] [ , ... ] ) ]
[ PATTERN = '<regex_pattern>' ]
[ FILE_FORMAT = ( { FORMAT_NAME = '[<namespace>.]<file_format_name>' |
                    TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML } [ formatTypeOptions ] } ) ]

以上命令是以下网址“ https://docs.snowflake.net/manuals/sql-reference/sql/copy-into-table.html”的一部分。


注意:我很想看看是否有人成功使用了替代解决方案... -G