본문 바로가기

Study/데이터 분석을 위한 SQL 레시피

[빅쿼리(BigQuery) - SQL] 문자열을 배열로 분해하기(SPLIT 함수)

문자열을 배열로 분해하기(split 함수)

 

 

빅데이터 분석에서 가장 많이 사용되는 자료형은 문자열이지만, 문자열 자료형은 범용적인 자료형이므로 더 세부적으로 분해해서 사용해야 하는 경우가 많다. 예를 들어 영어 문장을 공백으로 분할해서 하나하나의 단어로 구분하는 경우, 쉼표로 연결된 데이터를 잘라 하나하나의 값을 추출하는 경우 등이다.

 

아래와 같은 샘플데이터를 사용하겠다.

 

 

 

 

 

접근 로그 샘플 기반으로 폐이지 계층을 나누어 본다. 다음 코드예는 URL 경로를 슬래시로 분할해서 계층을 추출하는 쿼리이다.

 

 

 

 

 

배열의 인덱스는 일반적으로 1부터 시작하지만, BigQuery의 경우 배열의 값에 접근하는 방법이 조금 특이하다. 배열의 인덱스를 0부터 시작하려면 OFFSET, 1부터 시작하려면  ORDINAL을 지정한다. 추가로 배열 길이 이상의 인덱스에 접근하면 일반적으로 NULL을 리턴하지만, BigQuery는 오류를 리턴한다. NULL을 리턴하게 하려면 SAFE_OFFSET 또는 SAFE_ORDINAL을 지정해야한다.

 

 

# split 함수의 자세한 설명은 https://cloud.google.com/bigquery/docs/reference/standard-sql/string_functions?hl=ko#split 에서 찾아볼 수 있다.