호랭이 분석가

[Redshift] 사용자 정의 함수 (UDF)로 정규표현식 함수 만들기 본문

AWS/Redshift

[Redshift] 사용자 정의 함수 (UDF)로 정규표현식 함수 만들기

데이터호랑이 2022. 9. 8. 18:04
반응형

Redshift에도 정규표현식을 사용할 수 있지만

사용자 정의 함수를 통해 원하는 정규표현식 함수를 만들 수 있습니다.

 

CREATE OR REPLACE FUNCTION my_schema.f_regexp( input_string varchar(max), 
                                               regexp_expression varchar(max))
    RETURNS varchar(max)
stable
as $$
    import re
    from sets import Set
    
    rg = re.compile(regexp_expression, re.IGNORECASE|re.DOTAIL)
    # findall로 일치하는 부분 찾기
    regexp_list = rg.findall(input_str)
    # Set 및 join으로 중복제거하고 문장 만들기
    text = ' '.join(Set(regexp_list)
    return text
$$ language plpythonu;

 

위 코드를 수정하여 원하는 출력 형태로 만들어 사용하시면 됩니다.

다만, Redshift의 사용자 정의 함수 (UDF)에서 파이썬을 활용할 수 있는데 지원되는 Python 버전은 2.7이니

유의하여 사용하시기 바랍니다.

 

 

 

 

 

Comments