- SQL 사용
- UI와 직접 작성한 코드 사용(공개 베타)
SQL 사용자 정의 함수
CREATE FUNCTION SQL 문을 사용해 생성할 수 있습니다.
이 예시에서는 간단한 실행형 사용자 정의 함수 isBusinessHours를 생성합니다.
이 함수는 특정 타임스탬프가 일반적인 업무 시간 내에 해당하는지 확인하고, 해당하면 true를, 그렇지 않으면 false를 반환합니다.
- Cloud Console에 로그인한 다음 SQL 콘솔을 엽니다
- 다음 SQL 쿼리를 작성하여
isBusinessHours함수를 생성합니다:
- 새로 생성한 UDF를 테스트하려면 아래 명령을 실행하세요:
- 방금 생성한 UDF를 삭제하려면
DROP FUNCTION명령을 사용할 수 있습니다:
- 세션 수준 설정(
SET문로 설정)은 UDF 실행 Context로 전달되지 않습니다 - 사용자 프로필 설정은 UDF에 상속되지 않습니다
- 쿼리 수준 설정은 UDF 실행 중에는 적용되지 않습니다
UI를 통해 생성한 사용자 정의 함수
isBusinessHours를 생성합니다.
이전에는 SQL로 이를 생성했지만, 이번에는 Python으로 작성하고 UI를 통해 구성합니다.
Python 파일 생성
로컬에 새 파일main.py를 만드세요:requirements.txt 파일을 반드시 생성해야 합니다. 예시는 다음과 같습니다:ClickHouse Cloud는 다음 단계에서 UI를 통해 업로드할 zip 파일에
main.py가 포함되어 있다고 가정합니다.
파일 이름을 다르게 지정하면 오류가 발생합니다.번들 종속성 및 로컬 파일
종속성 패키지와 추가 로컬 파일(예: wheel 파일, 설정 파일, 데이터 파일)을 포함하려면main.py 및 requirements.txt와 같은 디렉터리에 배치하십시오. ZIP 아카이브를 만들 때는 모든 파일을 포함하십시오:os.path.dirname(os.path.abspath(__file__))를 사용하면 로컬에 번들된 기본 디렉터리 경로를 참조할 수 있습니다. 이 값은 ZIP 아카이브 내에서 main.py가 위치한 디렉터리의 절대 경로를 반환하므로, 함께 번들된 다른 파일에도 접근할 수 있습니다:- UDF와 함께 번들된 설정 파일에 액세스
- 사용자 지정 종속성에 필요한 wheel 패키지 로드
- 추가 스크립트 또는 데이터 파일 참조
UI를 통해 UDF 만들기
- Cloud Console 홈 페이지에서 왼쪽 하단 메뉴의 조직 이름을 클릭합니다.
- 메뉴에서 사용자 정의 함수를 선택합니다.
- 사용자 정의 함수 페이지에서 UDF 설정을 클릭합니다. 화면 오른쪽에 구성 패널이 열립니다.
- 함수 이름을 입력합니다. 이 예시에서는
isBusinessHours를 사용합니다. - 함수 유형으로 실행형 풀 또는 실행형 중 하나를 선택합니다.
- 실행형 풀: 지속적으로 유지되는 프로세스 풀이 관리되며, 읽기 시 풀에서 프로세스를 가져와 사용합니다.
- 실행형: 모든 쿼리마다 스크립트가 실행됩니다.
- 이 예시에서는 기본 설정을 사용합니다. 전체 구성 매개변수 목록은 Executable user-defined functions를 참조하십시오.
- 파일 찾아보기를 클릭하여 이 튜토리얼 시작 부분에서 만든
.zip파일을 업로드합니다. - 새 인수를 추가합니다. 이 예시에서는 유형이
DateTime인 인수timestamp를 추가합니다. - 반환 유형을 선택합니다. 이 예시에서는
Bool을 선택합니다. - UDF 만들기를 클릭합니다. 현재 빌드 상태를 보여주는 대화 상자가 표시됩니다.
- 문제가 있으면 상태가 오류로 변경됩니다.
- 그렇지 않으면 상태가 빌드 중에서 프로비저닝 중으로 진행됩니다. 프로비저닝을 완료하려면 서비스가 실행 중이어야 합니다. 서비스가 유휴 상태이면 서비스 이름 옆의 UDF 세부 정보 패널에서 서비스 깨우기를 클릭합니다.
- 완료되면 상태가 배포됨으로 변경됩니다.
UDF를 테스트해 보세요
- 페이지 왼쪽 상단의 Settings - return to your service view를 클릭하여 SQL 콘솔의 홈 페이지로 돌아가세요
- 왼쪽 메뉴에서 SQL 콘솔을 클릭하세요
- 다음 쿼리를 작성하세요:
새 버전 만들기
- Cloud Console 홈페이지에서 왼쪽 하단 메뉴의 조직 이름을 클릭합니다.
- 메뉴에서 사용자 정의 함수를 선택합니다.
isBusinessHoursUDF의 Actions 아래에 있는 점 3개를 선택한 다음 새 버전 만들기를 클릭합니다.- 수정된 코드가 포함된 zip 파일을 업로드하거나 설정을 변경한 다음 새 버전 만들기를 클릭합니다.