vertica копирует эпоху unix в TIMESTAMPTZ

Я хочу загрузить данные в vertica из HDFS, но значение 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';

Или есть другой/лучший способ сделать это?


person roy    schedule 24.07.2014    source источник
comment
Перед фиксацией данных вы можете EXTRACT(EPOCH FROM unix_timestamp   -  person Kermit    schedule 25.07.2014
comment
Извините, я не понял вашу точку зрения. Как мне использовать его в моей команде COPY выше.   -  person roy    schedule 25.07.2014
comment
Взгляните на документация. Вам необходимо явно определить список столбцов.   -  person Kermit    schedule 25.07.2014


Ответы (1)


Вам нужно будет явно определить список столбцов, использовать заполнитель, а затем вывести его для преобразования типа данных при загрузке:

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;

Это дает нам

        datetime
------------------------
 2014-02-01 00:00:00-05
 2014-01-01 00:00:00-05
person Kermit    schedule 25.07.2014
comment
Идеально Это сработало для меня. COPY search_mmx2 (unix_timestamp FILLER VARCHAR(15),time_stamp AS TO_TIMESTAMPTZ(unix_timestamp),......) ИСТОЧНИК Hdfs(url='hadoop-namenode:50070/webhdfs/v1/tmp/exported/2014/07/15/00/*.bz2', username='xyz') filter BZip() DELIMITER E'\t'; - person roy; 25.07.2014
comment
Один быстрый вопрос. Как использовать раздел по неделям в datetime:TIMESTAMPTZ - person roy; 25.07.2014
comment
@user3579198 user3579198 Не могли бы вы задать новый вопрос? Я буду рад ответить на него. (Подсказка: вы извлекаете год + неделя, и вот документ) - person Kermit; 25.07.2014
comment
Я создал новый вопрос: stackoverflow.com/ вопросы/24958830/ - person roy; 25.07.2014