UDF ========================================= IRIS는 사용자 정의한 함수 (UDF; User Defined Function) 기능을 제공하고 있습니다. 단, 함수 중에서 Aggregate 계열의 UDF는 등록이 불가능 하며, 일반 함수(레코드 단위로 사용 되는 함수) 만 UDF로 등록할 수 있습니다. UDF를 등록하기 위해서는 다음과 같은 과정을 거쳐야 합니다. #. UDF 기능 활성화 #. UDF 함수 제작 #. UDF 함수 배포 및 설치 UDF 기능 활성화 ----------------------------------------- IRIS를 기본설치할 경우 UDF 는 사용하지 않도록 설정이 되어 있습니다. 따라서, 해당 기능을 사용하기 위해서는 IRIS의 설정값 변경을 통해 UDF기능을 활성화 시켜주어야 합니다. 해당 설정은 모든 노드에서 반복적으로 이루어 져야 합니다. 이래와 같이 m6.config의 SYSTEM_INFO 섹션의 udf 항목을 True로 변경 합니다. .. code:: [iris@master ~] vi ~/IRIS/conf/common/m6.config ################################################# [SYSTEM_INFO] … udf = True … UDF 함수 제작 ----------------------------------------- UDF함수를 제작하기 위해서는 python언어를 사용해야 합니다. 아래는 power함수를 제작하는 예제 입니다. .. code:: def _power(m, n): return pow(m, n) fun_name = 'power' fun_params = 2 fun = _power UDF 함수에서는 3개의 변수를 선언해 주어야 합니다. - fun_name: 쿼리상에서 사용할 함수 이름 - fun_param: 함수에 들어가는 인자의 개수 - fun: UDF로 사용되는 메인 함수 이름 UDF 함수 배포 및 설치 ----------------------------------------- UDF함수는 각 노드에 배포 및 설치가 이루어 져야 합니다. 사용자가 작성한 파일은 각 노드에 다음 경로에 배포를 합니다. .. code:: ${M6_HOME}/libext/udf 이후 다음 파일을 수정 합니다. .. code:: [iris@master ~]$ vi ${M6_HOME}/libext/udf/__init__.py __all__ = [‘power’] __all__ = [] 변수 안에 생성한 UDF 파일의 파일 명을 기록해 둡니다. 만약 power.py 로 파일을 생성했을 경우 __all__ = ['power'] 를 기록하게 됩니다. 위의 작업을 전부 거친 이후부터 power함수를 사용할 수 있습니다.