Exemplo: Campo derivado persistente

Talvez você tenha um processo Selecionar configurado para escolher IDs com base em uma restrição em um campo derivado, conectado a um processo Snapshot para dar saída a registros selecionados que incluem aquele campo derivado. Se você marcar esse campo derivado para ser persistente, esse valor calculado será passado do processo Selecionar para o processo de Snapshot.

Outro uso de campos derivados persistentes é feito com qualquer campo derivado de tipo de agregação (por exemplo, AVG ou GROUPBY). Esses campos agregados são calculados com base nas várias linhas de dados dentro da célula atual e, portanto, o valor desses campos são alterados conforme o conteúdo da célula é alterado. Com os campos derivados persistentes, você pode optar por manter o valor calculado original e, em seguida, transportá-lo para outros processos. Em vez disso, se optar por recalcular o valor derivado, você obterá um valor calculado baseado nos registros restantes da célula atual.

Quando um processo utiliza várias entradas, como um processo Snapshot que trabalha com a entrada de dois processos de seleção, todos os campos derivados persistentes ficam disponíveis para o processo downstream.

Se um campo derivado persistente não estiver disponível em todos os processos de seleção de entrada, e estiver incluído na saída para um processo Snapshot, o processo Snapshot exibirá um valor NULL para o campo derivado persistente em todas as linhas de saída dos processos de seleção que não tiverem esse campo derivado persistente.

Se um campo derivado persistente não estiver disponível em todos os processos de seleção de entrada, e você usá-lo para definir um processo Segmentar, o processo Segmentar terá segmentos vazios para os processos de seleção que não tiverem esse campo derivado persistente.

O processo Segmentar permanecerá não configurado se você tentar definir um segmento com uma expressão que usa mais de um campo derivado persistente não disponível em todos os processos de seleção.

As seguintes diretrizes se aplicam a PDFs (campos derivados persistentes):

*
*
*
*
*
*
No entanto, quando você usar um campo derivado baseado em um campo de tabela, a saída incluirá um campo de tabela indiretamente. Portanto, haverá um registro para cada instância de um valor de ID (em outras palavras, se o valor da ID ocorrer sete vezes nos dados, haverá uma saída de sete registros).

Os campos derivados persistentes armazenam apenas um único valor para cada ID de audiência, que é selecionado aleatoriamente a partir dos valores disponíveis. Isso significa que ao trabalhar com dados não normalizados, você deve usar uma função de macro GROUPBY para obter o comportamento desejado.

Por exemplo, digamos que você deseja localizar na tabela de transações de compras o valor mais alto em dólares em uma única transação feita por um cliente e salvar esse valor como um campo derivado persistente para processamento downstream. Você pode gravar um campo derivado (e persisti-lo como um campo derivado persistente) da seguinte maneira:

Highest_purchase_amount = groupby(CID, maxof, Purch_Amt)

Em relação aos dados de transações de compras não normalizados como os seguintes, isso seria computado da seguinte maneira:

Quando o campo derivado é persistente, ele escolhe (aleatoriamente) qualquer valor (todos iguais a US$ 300) e persiste o valor de US$ 300 para o cliente A.

Um segundo exemplo menos óbvio pode ser a seleção de uma pontuação de modelo previsível de uma tabela de pontuações para um modelo X específico. Aqui, o campo derivado pode ser semelhante a este:

ModelX_score = groupby(CID, maxof, if(Model = 'X', 1, 0), Score)

E os dados podem ser semelhantes a:

A persistência do campo derivado, ModelX_Score, fornece o resultado desejado do valor de pontuação de 80. É incorreto criar um campo derivado:

Bad_ModelX_score = if(Model = 'X', Score, NULL)

Isso poderia resultar no seguinte:

Em seguida, quando você persistir o campo derivado Bad_ModelX_score, o valor persistido poderá ser NULL ou 80. Se estiver trabalhando com dados não normalizados e os valores do campo derivado não forem iguais, persistir aquele campo derivado pode resultar no retorno de qualquer um dos valores. Por exemplo, definir Derived_field_Score = SCORE e persisti-lo poderá resultar no valor de 57, 72 ou 80 para o cliente A. Para garantir o comportamento desejado, você deve usar a macro GROUPBY sobre o ID do cliente e garantir que o valor do campo derivado seja o mesmo para todos os dados desse cliente.



IBM Unica Campaign
 
8.5.0
For more information, see our support and community site: Customer Central