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 に答える