3

我想将数据从 HDFS 加载到 vertica,但数据中的 time_stamp 值是 Unix 纪元格式,我想将它作为 Vertica 中的 TIMESTAMPTZ 加载到 vertica。

在这种情况下,不知道如何动态使用强制转换功能。任何人都可以帮我解决这个问题吗?

我想将铸造添加到以下内容中

COPY search_mmx2 SOURCE Hdfs(url='http://hadoop-namenode:50070/webhdfs/v1/tmp/exported/2014/07/15/00/SEARCHES/part-m-0000*.bz2', username='xyz') filter BZip() DELIMITER E'\t';

或者有没有其他/更好的方法来做到这一点?

4

1 回答 1

2

您需要显式定义列列表,使用填充符,然后派生它以在加载时转换数据类型:

CREATE TABLE public.test (
  datetime TIMESTAMPTZ NOT NULL
);

COPY public.test (unix_timestamp FILLER VARCHAR(15),
                  datetime AS TO_TIMESTAMP(unix_timestamp))
FROM STDIN;

>> 1388552400
>> 1391230800
>> \.

SELECT * FROM public.test;

这给了我们

        约会时间
----------------------
 2014-02-01 00:00:00-05
 2014-01-01 00:00:00-05
于 2014-07-25T01:33:19.810 回答