我有一个使用 matillion 在红移中创建光谱表的场景。我的 CSV 文件数据是这样的:-
column1,column2,column3
abc,"qwety,pqr",xyz
但在频谱表中,我将数据视为
column1 column2 column3
abc qwerty pqr
Matillion 没有将报价值作为一个值。您能否建议如何使用 matillion 的 EXTERNAL TABLE 组件来实现这一点。
我有一个使用 matillion 在红移中创建光谱表的场景。我的 CSV 文件数据是这样的:-
column1,column2,column3
abc,"qwety,pqr",xyz
但在频谱表中,我将数据视为
column1 column2 column3
abc qwerty pqr
Matillion 没有将报价值作为一个值。您能否建议如何使用 matillion 的 EXTERNAL TABLE 组件来实现这一点。
基本上,您想为您的 CSV 数据指定一个报价参数。
Redshift 有 2 种指定外部表的方法(参见Redshift Docs 以供参考):
ROW FORMAT DELIMITED
,FIELDS TERMINATED BY
ROW FORMAT SERDE
WITH SERDEPROPERTIES
我认为不可能使用内置的SerDes指定报价参数。
可以使用org.apache.hadoop.hive.serde2.OpenCSVSerde
(在此处查看有关其属性的详细信息)来指定它们,但请注意它存在已知问题,如此 SO question中所述。
现在为 Metillion:
我从未使用过 Matillion,但查看他们的Redshift External Table 文档页面,似乎只能指定 theFORMAT
和 the FIELD TERMINATOR
,但不能指定SerDe及其属性,因此无法为外部表指定报价参数- 除非有一些未记录的方法来指定自定义SerDe。
个人注意:我们在摄取存储为 CSV 的数据时遇到了很多问题,我们基本上尽量避免。CSV 没有标准,每个工具都实现了自己的支持版本,很难说服所有工具以相同的方式查看数据。