복붙노트

[SQL] 어떻게 created_at 및 하이브에서 타임 스탬프 updated_at를 기록하는?

SQL

어떻게 created_at 및 하이브에서 타임 스탬프 updated_at를 기록하는?

MySQL은 할 수 자동으로 기록 created_at와 타임 스탬프 updated_at. 합니까 하이브 비슷한 메커니즘을 제공? 그렇지 않다면, 어떻게이 기능을 달성하는 가장 좋은 방법이 있을까요?

해결법

  1. ==============================

    1.하이브는 메커니즘을 제공하지 않습니다. created_at로 (UNIX_TIMESTAMP ()) FROM_UNIXTIME : 당신은 당신의 선택에 UDF를 사용하여이 작업을 수행 할 수 있습니다. 이 각 매퍼 또는 감속기에서 실행되고 다른 값을 반환 할 수 있습니다. 당신이 (1.2.0 이전 하이브 버전) 모든 데이터 세트에 대해 동일한 값을 필요로하는 경우, 스크립트에 변수를 전달하고 내부 사용 : created_at과 같이 '$ {created_at hiveconf}'

    하이브는 메커니즘을 제공하지 않습니다. created_at로 (UNIX_TIMESTAMP ()) FROM_UNIXTIME : 당신은 당신의 선택에 UDF를 사용하여이 작업을 수행 할 수 있습니다. 이 각 매퍼 또는 감속기에서 실행되고 다른 값을 반환 할 수 있습니다. 당신이 (1.2.0 이전 하이브 버전) 모든 데이터 세트에 대해 동일한 값을 필요로하는 경우, 스크립트에 변수를 전달하고 내부 사용 : created_at과 같이 '$ {created_at hiveconf}'

    업데이트 : CURRENT_TIMESTAMP 반환 (하이브 1.2.0 기준) 쿼리 평가의 시작에서 현재 타임 스탬프. 동일한 쿼리 내에서 CURRENT_TIMESTAMP의 모든 통화는 같은 값을 반환합니다. UNIX_TIMESTAMP ()는 초 현재 유닉스 타임 스탬프를 취득. 이 기능은 비 결정적이며, 쿼리의 적절한 최적화를 방지 -이 CURRENT_TIMESTAMP 상수에 찬성 2.0 이후 사용되지 않습니다. 그래서, 그것은, 그것은 상수는 함수의 아니에요! 이 문서를 참조하십시오 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

    당신은 모든 파일 (들) 어쨌든 다시 작성되기 때문에,없는 기록으로 테이블이나 파티션 또는 삽입을 다시 때문에 created_at 타임 스탬프가 동일해야 할 때 하이브 쿼리의 CURRENT_TIMESTAMP 바람직하다.

  2. from https://stackoverflow.com/questions/41128740/how-to-record-created-at-and-updated-at-timestamps-in-hive by cc-by-sa and MIT license