BigQuery에서 조심하고 싶은 날짜 및 시간 데이터 유형
3713 단어 BigQuery
소개
삼작 #2 AdventCalendar 2020 의 12/8 기사입니다.
이번에는 BigQuery의 날짜 및 시간 데이터 유형에 대해 쓰고 싶습니다.
곤란한 일
BigQuery에 저장된 원본 데이터는 DB에서 CSV 형식 등으로 출력하여로드합니다.
샘플로서 다음과 같은 CSV 데이터를 BigQuery에 테이블 스키마 자동 감지 모드로 로드해 보겠습니다.
BigQuery에 로드한 결과는 다음과 같습니다.
미리보기에서 확인하면 날짜 및 시간 유형이 타임 스탬프 유형이며 날짜 및 시간 후에 "UTC"표시가 붙습니다.
본래의 의도로서는 「JST」가 되어 주었으면 합니다만, 표시상은 CSV의 데이터라고 하고 있지만, 타임 존이 UTC라고 표시되어 버리고 있으므로, 조금 위화감이 있습니다. 이것을 해결하기 위해 여러 가지 시도하고 싶습니다.
시간대와 함께 BigQuery에 로드
로드할 CSV 날짜 및 시간 데이터를 시간대를 부여한 다음 ISO 8601 형식으로 로드해 봅니다.
BigQuery 미리보기를 확인합니다.
CSV에 기재된 날짜와 시간이 UTC 시간으로 변환되어 저장되었습니다. 데이터적으로는 있습니다만, 표시는 어디까지나 UTC 표시이므로 조금 사용하기 어렵습니다.
다만, BigQuery의 쿼리 에디터로 「FORMAT_TIMESTAMP」함수를 사용하는 것으로, JST표시로 변환하는 것은 할 수 있습니다.
다만, 이것이라면 BigQuery의 데이터를 사용하는 측에서 매회 FORMAT_TIMESTAMP를 해야 하기 때문에, 조금 번거롭습니다.
BigQuery의 테이블 정의를 datetime 형식으로 지정
BigQuery에 데이터를 로드할 때, 테이블 스키마 자동 검출 모드로 하면 일시 데이터가 timestamp형이 되어 버리므로, 이하와 같이 수동으로 스키마를 datetime형으로 해 로드해 보겠습니다.
BigQuery 미리보기를 확인해 봅니다.
CSV에 명시된대로 날짜 및 시간이 표시됩니다. datetime 형은 타임 존을 가지지 않기 때문에, 당연하다고 하면 당연합니다만・・・.
BigQuery의 timestamp 유형을 datetime 유형으로 변경하고 싶습니다!
이미 대량의 데이터가 저장되어 있는 BigQuery의 테이블로, 일시 데이터가 timestamp형으로 되어 있는 것이 다수 있기 때문에, datetime형으로 변환하고 싶습니다만, 아무래도 형태의 변경은 할 수 없는 것 같습니다.
BigQuery 문서 테이블 스키마 변경
취할 수 있는 방법으로서는, datetime형으로 변경한 새로운 테이블을 만들어, 낡은 테이블로부터 새로운 테이블에 데이터를 이행할 수밖에 없는 것 같습니다.
끝에
BigQuery의 프리뷰 표시로, 일시의 표시에 「UTC」가 붙어 있는 것에 위화감을 느끼고 조사하기 시작했습니다만, 이미 timestamp형으로 격납되어 버리고 있는 데이터에 대해서는, 새로운 테이블을 만들어 다시 넣어야한다는 것을 알았습니다. 단지 데이터를 다시 넣으면 BigQuery 검색시에 드는 비용이 커질 것 같기 때문에, 현상은 「UTC라고 표시되고 있지만, 데이터적으로는 JST이야」라고 해석으로 사용해 갈 수 있을 것 같습니다.
향후 새로운 데이터 캡처를 하는 경우는 BigQuery의 테이블 작성시에 「테이블 스키마 자동 검출 모드」를 사용하지 않고, 수동으로 테이블 스키마를 지정해 캡처하고 싶습니다.
(언젠가 BigQuery에서 테이블 스키마의 형태 변경을 할 수 있게 되지 않을까・・・)
Reference
이 문제에 관하여(BigQuery에서 조심하고 싶은 날짜 및 시간 데이터 유형), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shimizu_toshihiko/items/1fa953261eef8e227da3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
BigQuery에 저장된 원본 데이터는 DB에서 CSV 형식 등으로 출력하여로드합니다.
샘플로서 다음과 같은 CSV 데이터를 BigQuery에 테이블 스키마 자동 감지 모드로 로드해 보겠습니다.
BigQuery에 로드한 결과는 다음과 같습니다.
미리보기에서 확인하면 날짜 및 시간 유형이 타임 스탬프 유형이며 날짜 및 시간 후에 "UTC"표시가 붙습니다.
본래의 의도로서는 「JST」가 되어 주었으면 합니다만, 표시상은 CSV의 데이터라고 하고 있지만, 타임 존이 UTC라고 표시되어 버리고 있으므로, 조금 위화감이 있습니다. 이것을 해결하기 위해 여러 가지 시도하고 싶습니다.
시간대와 함께 BigQuery에 로드
로드할 CSV 날짜 및 시간 데이터를 시간대를 부여한 다음 ISO 8601 형식으로 로드해 봅니다.
BigQuery 미리보기를 확인합니다.
CSV에 기재된 날짜와 시간이 UTC 시간으로 변환되어 저장되었습니다. 데이터적으로는 있습니다만, 표시는 어디까지나 UTC 표시이므로 조금 사용하기 어렵습니다.
다만, BigQuery의 쿼리 에디터로 「FORMAT_TIMESTAMP」함수를 사용하는 것으로, JST표시로 변환하는 것은 할 수 있습니다.
다만, 이것이라면 BigQuery의 데이터를 사용하는 측에서 매회 FORMAT_TIMESTAMP를 해야 하기 때문에, 조금 번거롭습니다.
BigQuery의 테이블 정의를 datetime 형식으로 지정
BigQuery에 데이터를 로드할 때, 테이블 스키마 자동 검출 모드로 하면 일시 데이터가 timestamp형이 되어 버리므로, 이하와 같이 수동으로 스키마를 datetime형으로 해 로드해 보겠습니다.
BigQuery 미리보기를 확인해 봅니다.
CSV에 명시된대로 날짜 및 시간이 표시됩니다. datetime 형은 타임 존을 가지지 않기 때문에, 당연하다고 하면 당연합니다만・・・.
BigQuery의 timestamp 유형을 datetime 유형으로 변경하고 싶습니다!
이미 대량의 데이터가 저장되어 있는 BigQuery의 테이블로, 일시 데이터가 timestamp형으로 되어 있는 것이 다수 있기 때문에, datetime형으로 변환하고 싶습니다만, 아무래도 형태의 변경은 할 수 없는 것 같습니다.
BigQuery 문서 테이블 스키마 변경
취할 수 있는 방법으로서는, datetime형으로 변경한 새로운 테이블을 만들어, 낡은 테이블로부터 새로운 테이블에 데이터를 이행할 수밖에 없는 것 같습니다.
끝에
BigQuery의 프리뷰 표시로, 일시의 표시에 「UTC」가 붙어 있는 것에 위화감을 느끼고 조사하기 시작했습니다만, 이미 timestamp형으로 격납되어 버리고 있는 데이터에 대해서는, 새로운 테이블을 만들어 다시 넣어야한다는 것을 알았습니다. 단지 데이터를 다시 넣으면 BigQuery 검색시에 드는 비용이 커질 것 같기 때문에, 현상은 「UTC라고 표시되고 있지만, 데이터적으로는 JST이야」라고 해석으로 사용해 갈 수 있을 것 같습니다.
향후 새로운 데이터 캡처를 하는 경우는 BigQuery의 테이블 작성시에 「테이블 스키마 자동 검출 모드」를 사용하지 않고, 수동으로 테이블 스키마를 지정해 캡처하고 싶습니다.
(언젠가 BigQuery에서 테이블 스키마의 형태 변경을 할 수 있게 되지 않을까・・・)
Reference
이 문제에 관하여(BigQuery에서 조심하고 싶은 날짜 및 시간 데이터 유형), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shimizu_toshihiko/items/1fa953261eef8e227da3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
BigQuery에 데이터를 로드할 때, 테이블 스키마 자동 검출 모드로 하면 일시 데이터가 timestamp형이 되어 버리므로, 이하와 같이 수동으로 스키마를 datetime형으로 해 로드해 보겠습니다.
BigQuery 미리보기를 확인해 봅니다.
CSV에 명시된대로 날짜 및 시간이 표시됩니다. datetime 형은 타임 존을 가지지 않기 때문에, 당연하다고 하면 당연합니다만・・・.
BigQuery의 timestamp 유형을 datetime 유형으로 변경하고 싶습니다!
이미 대량의 데이터가 저장되어 있는 BigQuery의 테이블로, 일시 데이터가 timestamp형으로 되어 있는 것이 다수 있기 때문에, datetime형으로 변환하고 싶습니다만, 아무래도 형태의 변경은 할 수 없는 것 같습니다.
BigQuery 문서 테이블 스키마 변경
취할 수 있는 방법으로서는, datetime형으로 변경한 새로운 테이블을 만들어, 낡은 테이블로부터 새로운 테이블에 데이터를 이행할 수밖에 없는 것 같습니다.
끝에
BigQuery의 프리뷰 표시로, 일시의 표시에 「UTC」가 붙어 있는 것에 위화감을 느끼고 조사하기 시작했습니다만, 이미 timestamp형으로 격납되어 버리고 있는 데이터에 대해서는, 새로운 테이블을 만들어 다시 넣어야한다는 것을 알았습니다. 단지 데이터를 다시 넣으면 BigQuery 검색시에 드는 비용이 커질 것 같기 때문에, 현상은 「UTC라고 표시되고 있지만, 데이터적으로는 JST이야」라고 해석으로 사용해 갈 수 있을 것 같습니다.
향후 새로운 데이터 캡처를 하는 경우는 BigQuery의 테이블 작성시에 「테이블 스키마 자동 검출 모드」를 사용하지 않고, 수동으로 테이블 스키마를 지정해 캡처하고 싶습니다.
(언젠가 BigQuery에서 테이블 스키마의 형태 변경을 할 수 있게 되지 않을까・・・)
Reference
이 문제에 관하여(BigQuery에서 조심하고 싶은 날짜 및 시간 데이터 유형), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shimizu_toshihiko/items/1fa953261eef8e227da3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
BigQuery의 프리뷰 표시로, 일시의 표시에 「UTC」가 붙어 있는 것에 위화감을 느끼고 조사하기 시작했습니다만, 이미 timestamp형으로 격납되어 버리고 있는 데이터에 대해서는, 새로운 테이블을 만들어 다시 넣어야한다는 것을 알았습니다. 단지 데이터를 다시 넣으면 BigQuery 검색시에 드는 비용이 커질 것 같기 때문에, 현상은 「UTC라고 표시되고 있지만, 데이터적으로는 JST이야」라고 해석으로 사용해 갈 수 있을 것 같습니다.
향후 새로운 데이터 캡처를 하는 경우는 BigQuery의 테이블 작성시에 「테이블 스키마 자동 검출 모드」를 사용하지 않고, 수동으로 테이블 스키마를 지정해 캡처하고 싶습니다.
(언젠가 BigQuery에서 테이블 스키마의 형태 변경을 할 수 있게 되지 않을까・・・)
Reference
이 문제에 관하여(BigQuery에서 조심하고 싶은 날짜 및 시간 데이터 유형), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shimizu_toshihiko/items/1fa953261eef8e227da3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)