안녕하세요, 클루커스 구글 클라우드 컨설턴트 엄수민, 박보련, 오지수입니다.
BigQuery 사용자 정의 함수(User-Defined Functions, 이하 UDF)란 사용자가 작업을 정의 해 사용하는 함수입니다. Python과 같은 프로그래밍 언어에서도 함수를 정의하고 사용하는 것처럼, BigQuery에서도 사용자가 직접 함수를 만들고 활용할 수 있습니다.
영구(Persistent) 또는 임시(Temporary)로 생성할 수 있는 BigQuery UDF는 컬럼을 입력 값으로 받아 이를 기반으로 작업을 수행하고, 결과를 반환합니다.
BigQuery UDF는 SQL이나 JavaScript로 작성이 가능한데요,
따라서 표준 SQL로 구현하기 어렵지만 JavaScript 함수에서는 지원되는 경우, String이나 Date 등 특수한 데이터 타입을 다루는 경우에 특히 활용도가 높습니다.
또한, 조직 내 다수의 사용자가 동일한 함수를 반복적으로 사용할 때 Persistent UDF(영구 사용자 정의 함수) 활용 시 공유 및 관리의 편의성을 확보할 수 있습니다.
이번 데모에서는 SQL 쿼리를 사용해 BigQuery 영구 사용자 정의 함수를 생성하고, 해당 함수를 활용하여 BigQuery에 저장된 데이터를 프로세싱하는 방법을 알아봅니다.
본 Demo에서 사전 준비된 사항
- 데이터 프로세싱에 사용할 원본 BigQuery Table
꼭 알아둬야 할 BigQuery 사용자 정의 함수 Tip!
- BigQuery 공개 데이터세트는 기본적으로 US 멀티 리전에 저장되므로, 공개 데이터 세트에 저장된 커뮤니티 제공 UDF(bigquery-public data.persistent_udfs)를 사용할 경우, 가공할 데이터세트도 US 멀티 리전에 위치해야 합니다.
- 각 데이터 세트에서 영구 UDF의 이름은 유일해야합니다. (단, 데이터세트 내의 테이블 이름과 UDF의 이름은 동일할 수 있습니다.)
- 기타 제한사항은 여기를 참고하세요!
Reference
https://cloud.google.com/bigquery/docs/reference/standard-sql/user-defined-functions
https://www.youtube.com/watch?v=c3dtgLWRycs
https://github.com/GoogleCloudPlatform/bigquery-utils/tree/master/udfs/community