빅쿼리 스터디/빅쿼리

빅쿼리에서 REGEXP_EXTRACT 함수로 URL 요소 추출하기

황금붕어빵 2024. 2. 19. 06:44

 


 

데이터를 분석하면서 정규식의 요소를 외우기는 힘들지만 대신 알고있으면 분석하고 전처리하는데 매우 유용한 것이 바로 정규식입니다. 

 

오늘은 url과 같은 컬럼을 정규식을 활용해서 특정 요소를 추출하는 과정을 정리해보려고 합니다. 요 정규식을 알고있으면 GTM에서 불필요한 이벤트를 굳이 추가할 필요가 없을 것 같기도 합니다.

 

* REGEXP_EXTRACT  함수 

regexp_extract(page_location, r'정규식입력')

 

url과 같은 데이터를 전처리하기 위해서는 위 함수에서 첫 번째 value에는 url과 관련된 컬럼을 넣어주시고 두 번째 요소에는 정규식을 입력해주면 됩니다.

 

그리고 정규식입력하는 value에서 ()를 사용하면 캡쳐링 그룹이라고해서 ()사이에 있는 값을 추출합니다.

 

제 블로그의 GA4 데이터를 예시로 한 번 알아보도록 하겠습니다.

 

* URL에서 특정 요소 추출하기

select
 page_location,
 regexp_extract(page_location, r'entry\/.*') as test
from blog_data

 

두번째 요소에서 내가 추출하고자 하는 정규식을 입력하면 해당 정규식과 일치하는 값들이 나오게 됩니다. 여기에 캡쳐링(괄호)를 같이 사용하면 정규식안에서도 세부적으로 요소를 추출할 수 있습니다.

 

저는 entry이후의 블로그 제목만 추출하고 싶어 캡쳐링을 통해 블로그 제목만 가져오도록 하겠습니다.

 

select
 page_location,
 regexp_extract(page_location, r'entry\/.*') as test,
 regexp_extract(page_location, r'entry\/(.*)') as test2 --entry/이후의 블로그제목 부분에 () 캡쳐링 사용
from blog_data

 

캡쳐링을 사용해서 블로그 제목값만 불러올 수 있습니다. 이러한 함수는 이커머스 페이지의 경우 상세페이지에 제품의 실제 코드(숫자 등)를 url에 포함하고 있어 regexp_extract 함수를 통해 해당 코드를 추출한 후 실제 DB에 조인해서 분석해볼 수도 있습니다.

 

아래 빅쿼리 공식 문서에서도 확인할 수 있으니 같이 참고해주세요!

 

String functions  |  BigQuery  |  Google Cloud

GoogleSQL for BigQuery supports string functions. These string functions work on two different values: STRING and BYTES data types. STRING values must be well-formed UTF-8. Functions that return position values, such as STRPOS, encode those positions as IN

cloud.google.com