사용자 지정 표현식과 변환 경로
사용자 지정 함수는 파이프라인 안의 반복 로직을 한곳에서 관리합니다. Reusables에서 Custom Expressions와 Custom Transform Path를 별도로 엽니다.
사용자 지정 표현식은 하나의 표현식과 선택적인 인자를 저장하며 Filter나 Case 안에서도 사용할 수 있습니다. 사용자 지정 변환은 여러 변환 보드를 하나의 변환으로 묶습니다. 이름과 함수 정의는 필수이고 설명과 인자는 선택 사항입니다.
표현식 만들기
그래프 위의 Reusables > Custom Expressions를 선택합니다.
Add custom expression을 선택합니다.
왼쪽 위에 이름을 지정합니다. 필요한 인자는 Arguments > Add argument로 추가하고 표현식을 정의합니다. Apply를 선택하면 변환 노드나 보드에서 일반 표현식과 같은 방식으로 검색할 수 있습니다.
여러 보드로 공통 로직 작성
다음 가상 사용자 테이블에서 first_name, last_name, first_login_date의 조합으로 같은 사용자를 식별한다고 가정합니다. 이 조합으로 String형 primary_key를 만들고, 같은 사용자에게 여러 행이 있으면 가장 작은 age만 남기려 합니다.
문자열 결합
Concatenate strings를 추가합니다.
Separator는 -로 하고 첫 두 입력에 first_name, last_name을 선택합니다. first_login_date는 Date이므로 String만 받는 이 표현식의 열 목록에는 나오지 않습니다.
세 번째 입력의 Expressions에서 Cast를 넣습니다. Expression에는 first_login_date, Type에는 String을 지정합니다. 이렇게 중첩하면 원래 Date 열 자체를 바꾸지 않아 하위 변환에서 Date로 계속 사용할 수 있습니다.
Apply로 결합한 열을 확인합니다.
이 예시의 구분 방식은 입력값과 열 조합을 모호하지 않게 표현할 수 있어야 합니다. 실제 키에 적용할 때는 구분자, null 및 날짜 표현의 안정성을 식별자 구성 조건에 맞춥니다.
해시와 집계
같은 보드에서 Reuse value로 Concatenate strings를 Hash sha256의 첫 입력으로 감쌀 수 있습니다.
이 옵션은 기존에 구성한 인자들을 유지합니다.
결과의 primary_key는 String입니다. 해시로 원래 이름의 직접 노출을 줄일 수는 있지만 해시만으로 익명화나 키의 고유성이 보장되는 것은 아닙니다. 같은 입력 조합은 같은 키가 됩니다.
Aggregate를 추가하고 Group by columns에 primary_key, Aggregations에 age의 Min을 지정합니다. 그룹 열과 집계 결과만 남으므로 원래 이름과 날짜 열은 출력에서 제외됩니다.
가상 예시에서 b3c01로 시작하는 키는 한 행으로 합쳐지고 age는 25가 됩니다. 이 연산은 최소 나이 값을 계산하며, 임의의 다른 열까지 최소 나이 원본 행에서 보존하는 동작은 아닙니다.
보드를 함수로 변환
여러 위치에서 이 로직을 쓰려면 Shift+Down Arrow로 두 보드를 선택하고 위쪽의 +를 선택합니다.
새 함수 화면에서는 원래의 first_name, last_name, first_login_date, age 열 참조에 취소선이 보입니다. 다른 테이블에서도 사용할 수 있도록 구체적인 열을 함수 인자로 바꾸어야 합니다.
Add argument를 네 번 선택하고 노란 이름 칸에서 인자 이름을 지정합니다.
각 인자 옆의 톱니바퀴에서 유형을 지정합니다.
| 인자 역할 | 유형 |
|---|---|
| 첫 번째 이름 열 | Expression<String> |
| 두 번째 이름 열 | Expression<String> |
| 첫 로그인 날짜 | Expression<Date> |
| 집계할 나이 | Expression<Integer> |
보드의 열 참조를 새 인자로 다시 연결합니다. 인자들은 Columns가 아니라 Parameters에서 선택합니다.
함수 이름을 Primary key generator로 정하고 필요한 설명을 추가한 뒤 Apply all changes를 선택합니다.
다른 위치에 적용
다른 변환 경로에서 Primary key generator를 검색합니다.
호출할 테이블의 열을 네 인자에 매핑합니다. 같은 테이블에 적용한다면 first_name, last_name, first_login_date, age를 선택합니다.
같은 인자를 넣으면 원래 두 보드와 같은 로직을 수행합니다. 이후 함수 정의를 관리하여 반복된 변환 경로를 함께 유지할 수 있습니다.