사용자 정의 함수를 사용하면 변환 작업을 하나의 변환으로 저장하여 파이프라인 전반에 걸쳐 재사용할 수 있습니다. 이 기능은 파이프라인 전반에 걸쳐 로직을 반복하면서 한 곳에서 관리하는 데 유용합니다.
사용자 정의 함수는 이름 (필수), 설명 (선택), 함수 인수 (선택), 함수 정의 (필수)로 구성됩니다.
사용자 정의 함수를 생성하려면 다음 두 단계가 필요합니다.
아래에서 각 단계에 대한 예를 검토하겠습니다.
예를 들어 users
테이블이 있고 각 사용자를 고유하게 식별하는 기본 키를 생성하려고 합니다. 각 사용자의 first_name
, last_name
, first_login_date
조합이 고유하다는 것을 알고 있습니다. 데이터셋에 String
유형의 primary_key
열을 추가하여 이 세 열의 해시를 만들고, first_name
, last_name
, first_login_date
를 제거하려고 합니다. 마지막으로 중복이 있는 경우 사용자 당 한 행만 남기고 age
값이 가장 낮은 행을 유지하려고 합니다.
먼저 first_name
, last_name
, first_login_date
를 하나의 열로 결합합니다. 문자열 연결
변환을 사용하여 이 세 열을 함께 추가할 수 있습니다.
구분자
필드에 -
를 입력합니다. 그런 다음 표현식 드롭다운에서 각 열을 선택합니다. 처음 두 열은 first_name
과 last_name
을 선택합니다. 그러나 first_login_date
열은 세 번째 필드에서 선택할 수 없는 옵션입니다. 이것은 Date
유형이기 때문이며, 문자열 연결
함수는 String
유형만 허용하기 때문입니다.
이 문제를 해결하려면 표현식 탭에서 Cast
표현식을 삽입합니다. 표현식
에는 first_login_date
를 입력하고, 캐스트할 유형
에는 String
을 입력합니다. 이렇게 하면 모든 하위 변환 보드에 영향을 주는 전역적으로 first_login_date
를 변경할 필요가 없습니다.
적용하기
를 선택하면 결과 테이블이 다음과 같아야 합니다.
이제 primary_key
내의 데이터를 비식별화해야 합니다. 이를 위한 한 가지 방법은 primary_key
의 각 값에 대해 Hash sha256
변환을 적용하여 해시를 생성하는 것입니다. 같은 보드에서 값 재사용
옵션을 선택하여 문자열 연결
을 Hash sha256
으로 바꿀 수 있습니다.
이 옵션은 기존 값을 유지하고 새 변환의 첫 번째 입력으로 만듭니다.
적용하기
를 선택한 후 결과가 예상대로 primary_key: String
열이 각 행에 대한 고유한 데이터를 포함하는지 확인합니다.
이제 primary_key
의 첫 번째와 마지막 행이 동일하다는 것을 알 수 있습니다. age
가 25인 낮은 행을 유지하고 first_name
, last_name
, first_login_date
를 삭제하려고 합니다. 이를 위해 집계
변환을 추가합니다. 첫 번째 필드 그룹화 열
에 primary_key
를 입력하고, 두 번째 필드 집계
에는 Min
표현식이 있는 age
를 입력합니다.
마지막으로 결과 테이블은 아래 이미지와 같아야 합니다. primary_key = b3c01...
에 대해 한 행만 있고 age
가 25인지 확인할 수 있습니다.
이제 파이프라인 내에서 이 로직을 세 곳에서 재사용하려고 합니다. Shift + 아래 화살표
를 사용하여 두 보드를 모두 선택한 다음 상단 표시줄의 + 버튼을 선택하여 로직을 사용자 정의 함수로 변환할 수 있습니다.
이렇게 하면 사용자 정의 함수 생성 페이지가 열립니다. 입력 열 first_name
, last_name
, first_login_date
, age
가 취소선으로 표시되어 있는 것을 알 수 있습니다. 이는 생성하는 함수가 열 이름에 관계없이 파이프라인 내에서 올바른 유형의 4개 입력에 대해 일반적으로 적용되기 때문입니다.
이러한 입력을 정의하려면 네 번의 인수 추가를 선택합니다. 노란 상자에 클릭하여 인수 이름을 설정합니다.
그런 다음 각 인수의 오른쪽 기어 아이콘을 클릭하여 인수 유형을 설정합니다. 여기에서 첫 번째와 두 번째 인수는 Expression<String>
유형으로 설정하고, 세 번째 인수는 Expression<Date>
유형으로 설정하며, 마지막 열은 Expression<Integer>
유형으로 설정하려고 합니다.
이제 새 인수를 이전처럼 두 보드에 추가할 수 있습니다. 그러나 이제 Parameters
섹션에서 Columns
섹션 대신 사용할 수 있습니다.
구성을 완료한 후 함수에 기본 키 생성기
라는 이름을 붙이고 선택적 설명을 추가한 다음 모든 변경 적용을 선택합니다.
이제 새 함수는 어떤 변환 경로에서든 사용할 수 있습니다. 다음에 이 패턴으로 기본 키를 생성해야 할 때 변환 드롭다운에서 기본 키 생성기
를 검색할 수 있습니다.
원래 열인 first_name
, last_name
, first_login_date
, age
를 사용하여 사용자 정의 함수를 채울 수 있습니다.
관련 열 이름을 사용자 정의 함수에 입력함으로써 경로에서 동일한 변환으로 함수를 생성한 것과 동일한 결과를 만들 수 있습니다. 그러나 사용자 정의 함수를 생성함으로써 변환 보드를 별도로 생성하는 것이 아니라 파이프라인 전반에 걸쳐 함수 로직을 재사용할 수 있습니다.