오몰내알 데엔

데이터 엔지니어링/Bigquery

빅쿼리에 array 적재하기

문제상황 빅쿼리는 다른 DB와 다르게 array 형태를 repeated 데이터 구조로 효율적으로 저장할 수 있다. (물론 다른 DB도 저장이 불가능한 것은 아니지만 권장하지는 않는다) 나 또한 array를 빅쿼리에 저장할 일이 있어 bigquery client를 이용하여 array를 저장하려고 하였는데, 이상하게 계속 빅쿼리에는 null로 적재가 되었다. 그런데 더 희한한 점은 로컬에서 테스트 하였을 때는 분명이 제대로 저장이 되었는데, 서버에서는 다시 null로 저장된다는 것이다. 해결방법 결론부터 말하자면 나는 csv 형태로 array를 저장하려고 하였는데, 이는 그리 좋은 방법이 아니다. csv 자체가 array에 그리 친화적이지 않고 빅쿼리 또한 csv 안에 있는 array를 인식하지 못한다고 한..

데이터 엔지니어링/Bigquery

400 No matching signature for function DATE for argument types: INT64. Supported

오류내용 빅쿼리에서 fstring을 이용해서 날짜값을 빅쿼리 SQL에 전달할 때 발생하는 오류 코드 def sql(date): f""" SELECT keyword, ncc_keyword_id, uploaded_date FROM `project.dataset.table` WHERE uploaded_date = DATE_ADD(DATE({date}), INTERVAL -5 DAY) """ ... 해결방법 실제 fstring에서는 문자열이 아닌 그냥 숫자형태로 들어가게 된다. 하지만 실제 빅쿼리에서 날짜는 따옴표 안에 넣어주어야 한다. 2022-08-23 -> "2022-08-23" 따라서 f"\"{date}\""와 같이 역슬래시를 이용해 이스케이프 문자로 따옴표를 함께 넣어서 전달해야한다.

오몰내알
'데이터 엔지니어링/Bigquery' 카테고리의 글 목록