예: 지속성 파생 필드
파생 필드의 제한조건에 따라 ID를 선택하도록 구성되고 파생 필드를 포함하는 선택된 레코드를 출력하는 스냅샷 프로세스에 연결된 선택 프로세스가 있을 수 있습니다. 파생 필드를 지속성으로 표시하면 계산된 값이 선택 프로세스에서 스냅샷 프로세스로 전달됩니다.
지속성 파생 필드는 집계 유형 파생 필드(예: AVG 또는 GROUPBY)와 함께 사용할 수도 있습니다. 이러한 집계 필드는 현재 셀 내에 있는 여러 행을 기반으로 계산되므로 셀의 컨텐츠가 변경되면 이러한 집계 필드의 값도 변경됩니다. 지속성 파생 필드를 사용하여 초기 계산된 값을 보존하고 다른 프로세스로 전달하도록 선택할 수도 있습니다. 대신 파생 필드를 다시 계산하도록 선택하면 현재 셀에 남아 있는 레코드를 기반으로 계산된 값을 얻습니다.
프로세스가 여러 개의 입력을 받는 경우(예: 두 선택 프로세스로부터의 입력에 대해 작업하는 스냅샷 프로세스), 다운스트림 프로세스에 모든 지속성 파생 필드를 사용할 수 있습니다.
지속성 파생 필드를 사용할 수 없는 수신 선택 프로세스가 있고 스냅샷 프로세스의 출력에 포함된 경우, 스냅샷 프로세스는 해당 지속성 파생 필드가 없는 선택 프로세스로부터의 모든 출력 행에 있는 지속성 파생 필드에 널값을 표시합니다.
지속성 파생 필드를 사용할 수 없는 수신 선택 프로세스가 있고 이를 사용하여 세그먼트 프로세스를 정의하는 경우, 세그먼트 프로세스에는 지속성 파생 필드가 없는 선택 프로세스의 비어 있는 세그먼트가 있습니다.
모든 선택 프로세스에서 사용 가능하지는 않은 둘 이상의 지속성 파생 필드를 사용하는 표현식으로 세그먼트를 정의하려는 경우, 세그먼트 프로세스는 구성되지 않은 채로 남아 있습니다.
다음 가이드라인이 지속성 파생 필드(PDF)에 적용됩니다.
*
*
*
*
*
*
그러나 테이블 필드 기반의 파생 필드를 사용하는 경우 출력에는 간접적으로 테이블 필드가 포함됩니다. 그러므로 ID 값의 각 인스턴스에 대해 하나의 레코드가 있게 됩니다. (즉, 데이터에서 ID 값이 7번 발생하는 경우 7개의 레코드 출력이 있게 됩니다.)
지속성 파생 필드는 각 대상 ID에 대해 사용 가능한 값 중에서 무작위로 선택된 단일 값만 저장합니다. 즉 정규화되지 않은 데이터에 대해 작업하는 경우에는 GROUPBY 매크로 기능을 사용하여 원하는 작동을 달성해야 합니다.
예를 들어, 구매 트랜잭션 테이블에서 고객이 작성한 단일 트랜잭션의 최고 달러 양을 찾아서 다운스트림 처리의 지속성 파생 필드로 저장하려고 합니다. 다음과 같이 파생 필드를 작성(하고 지속성 파생 필드로 저장)할 수 있습니다.
Highest_purchase_amount = groupby(CID, maxof, Purch_Amt)
다음과 같은 정규화되지 않은 구매 트랜잭션 데이터에 대해 이 필드는 다음과 같이 계산됩니다.
파생 필드가 지속되는 경우 이는 무작위로 값(모두 $300)을 선택하고 고객 A에 대해 값 $300를 지속합니다.
두 번째 덜 분명한 예제는 특정 모델 X에 대한 스코어링 테이블에서 예측 모델 점수를 선택하는 것입니다.
ModelX_score = groupby(CID, maxof, if(Model = 'X', 1, 0), Score)
그러면 데이터는 다음과 같이 표시됩니다.
지속적인 파생 필드 ModelX_Score는 원하는 점수 값 결과 80을 부여합니다. 이는 파생 필드를 작성하기에 올바르지 않습니다.
Bad_ModelX_score = if(Model = 'X', Score, NULL)
결과는 다음과 같습니다.
그러면 파생 필드 Bad_ModelX_score를 지속할 때 지속된 값은 NULL 또는 80이 될 수 있습니다. 정규화되지 않은 데이터에 대해 작업 중이고 파생 필드 값이 모두 동일하지 않은 경우 해당 파생 필드를 지속하면 임의 값이 리턴될 수 있습니다. 예를 들어, Derived_field_Score = SCORE를 정의하고 지속하면 고객 A에 대해 값 57, 72 또는 80의 결과가 될 수 있습니다. 원하는 작동이 되도록 하기 위해 고객 ID에 대해 GROUPBY 매크로를 사용하여 파생 필드 값이 해당 고객의 모든 데이터와 동일하게 되도록 해야 합니다.