bigquery

    [SQL] 유저 데이터 분석에서 유용한 ROW_NUMBER, LAG 함수

    오늘은 다음과 같은 유저 데이터 분석에서의 특정한 상황을 가정해 봅시다. 아래 질문을 해결해나가며, ROW_NUMBER와 LAG 함수의 활용에 대해 알아봅시다. 유저가 방문한 사이트를 구분해서 유저의 행동 패턴을 집계하고 싶어. 특정 이벤트 이전에 어떤 이벤트가 일어났는지 궁금해 하지만, 1번째 방문한 경우와 2번째 방문한 경우를 다르게 구분 짓고 싶어. 그러니까 내 말은.. 단순히 GROUP BY SITE 구문으로는 불가능하단 말이야. 어떻게 할 수 있을까? 본 글은 기본적인 SQL 구문을 알고 있다고 가정합니다. 그리고 윈도우 함수(LAG, ROW_NUMBER 등)의 정의를 들어본 적은 있어야 합니다. 매번 함수의 정의를 다시 찾아보고 실제 데이터 정제나 분석 업무에서 활용하기 어려운 사람을 대상으로..

    [Python] Iterable 과 Iterator의 차이

    개요 최근 빅쿼리를 사용하여 슬랙봇을 개발할 일이 있었습니다. 빅쿼리 테이블에서 쿼리한 결과를 보기 좋게 편집하여 슬랙을 보내는 배치 서비스를 개발하는 중에 헷갈렸던 파이썬 개념이 있어 정리해 보려고 합니다. *해당 글은 다음 기준으로 작성되었습니다. python~=3.10 google-cloud-bigquery~=3.9.0 빅쿼리 패키지에서 쿼리 결과를 객체로 받아 사용하는 여러 가지 방법이 있습니다. 그중에서도 bigquery.Client.query().result()라는 함수를 사용하여 리턴되는 bigquery.table.rowiterator 객체를 바로 사용하려고 했었으나, for문 실행 중에 ‘iterator has already started'라는 오류가 발생하였습니다. 😭 파이썬의 기본 개념..