Каков правильный формат для хранения даты и времени для Pig и Hive?

При использовании Pig для ETL я помещаю обработанные данные в Hive с помощью HCatStorer:

STORE dataprocessed INTO 'database.table' USING org.apache.hcatalog.pig.HCatStorer();

Моя цель - сделать данные целевой таблицы пригодными для использования либо из Pig, либо из Hive (в зависимости от навыков пользователя).

Каков рекомендуемый формат для хранения даты и времени?

я забочусь о:

  • Хранение информации о часовом поясе
  • Возможность сравнивать даты
  • Быть удобочитаемым для человека (например, я не верю, что временная метка удобочитаема для человека)

Спасибо за помощь


person Avanbelle    schedule 30.09.2014    source источник


Ответы (1)


Вероятно, я бы сохранил информацию, связанную с датой/временем, в виде строк/массивов в формате ISO-8601, поскольку HCatStorer не поддерживает типы даты (по крайней мере, в свинье) напрямую.

Существуют функции для преобразования информации о дате/времени в pig: http://pig.apache.org/docs/r0.13.0/func.html#datetime-functions

person Frederic    schedule 30.09.2014
comment
Спасибо за Ваш ответ. Я плохо себя чувствую при хранении даты в виде строки: сложно синхронизироваться со всеми людьми в компании, чтобы использовать один и тот же формат. Насколько я понимаю, нет способа сохранить дату как объект. Это правильно? - person Avanbelle; 01.10.2014
comment
Насколько я знаю, это правильно в отношении свиньи. Эта страница содержит все типы данных, поддерживаемые HCatStorage, DateTime не входит в их число: hive.apache.org/javadocs/hcat-r0.5.0/loadstore.html (см. Типы данных HCatalog) - person Frederic; 01.10.2014
comment
Да, это то, что я думал. Это немного грустно, потому что это усложняет управление датами :(. Большое спасибо за вашу помощь. - person Avanbelle; 01.10.2014