【发布时间】:2012-11-05 15:07:27
【问题描述】:
我想使用外部表将纯文件加载到 Greenplum 数据库中。 我可以为时间戳/日期/时间字段指定输入格式吗? (如果你知道PostgreSQL的答案,也请回复)
例如,对于 Oracle,我可以使用 DATE_FORMAT DATE MASK 'YYYYMMDD' 来告诉如何解析日期。对于 Netezza,我可以指定 DATESTYLE 'YMD'。对于 Greenplum,我找不到答案。我可以将字段描述为 char,然后在加载期间解析它们,但这是一个丑陋的解决方法。
这是我的暂定代码:
CREATE EXTERNAL TABLE MY_TBL (X date, Y time, Z timestamp )
LOCATION (
'gpfdist://host:8001/file1.txt',
'gpfdist://host:8002/file2.txt'
) FORMAT 'TEXT' (DELIMITER '|' NULL '')
【问题讨论】:
-
在使用
COPY加载 CSV 之前,您是SET DATESTYLE = 'YMD';,但我不确定外部表。好点子。DATESTYLE在创建外部表时是否有效?如果在创建外部表后更改它会发生什么? -
SET DATESTYLE 也适用于从外部表读取。这有帮助!谢谢你。它适用于选择期间(创建表后)。看起来这是控制格式的唯一方法 - 全局控制它们。 -- 你能把它作为答案发布吗?
-
顺便说一句,这并不真正适用于 PostgreSQL。在 PostgreSQL 中,您将使用
file_fdw外部数据包装器 (postgresql.org/docs/current/static/file-fdw.html),因为没有CREATE EXTERNAL TABLE。
标签: database postgresql greenplum