Como outras transformações, a transformação CrossRows é aplicada às linhas de dados (entradas de log) nas fontes de log.
Para cada linha de dados, a transformação pega o valor do campo de entrada especificado, executa um conjunto de etapas de processamento e registra o resultado no campo de saída especificado. No entanto, quando a transformação CrossRows funciona em uma linha de dados (essa linha é chamada de linha de saída), leva em conta que a linha mais uma ou mais linhas de dados (essas linhas são chamadas linhas de entrada) que estão associadas à mesma ID de rastreamento. Portanto, para uma determinada ID de rastreamento, o valor do campo de saída para cada linha de saída é baseado nos valores do campo de entrada para uma ou mais linhas de entrada.
A transformação fornece várias condições e restrições que permitem limitar as linhas de entrada da transformação. Você pode expressar esses limites em termos das condições do servidor do Data Workbench (consulte Conditions), um intervalo de linhas de entrada em relação à linha de saída ou um intervalo de vezes em relação ao tempo da linha de saída. Para essas linhas de entrada que atendem às condições e restrições da transformação, é possível aplicar uma operação (como SUM) que determine o valor do campo de saída.
Para funcionar, a transformação CrossRows exige que os dados sejam solicitados no tempo e agrupados pela ID de rastreamento nos dados de origem. Portanto, CrossRows funciona somente quando definido no arquivo Transformation.cfg ou em um arquivo Transformation Dataset Include.
À medida que revisa as descrições dos parâmetros na tabela a seguir, lembre-se do seguinte:
Parâmetro | Descrição | Padrão |
---|---|---|
Nome | Nome descritivo da transformação. Você pode inserir qualquer nome aqui. | |
Comentários | Opcional. Observações sobre a transformação. | |
Condição | Limita a saída da transformação a determinadas entradas de log. Se a condição não for atendida para uma entrada de log específica, o campo no parâmetro Saída permanecerá inalterado. A entrada ainda pode ser usada para afetar outras entradas de log. | |
Entrada | O nome do campo da linha de entrada a ser usada como entrada. | |
Condição de entrada | Aceita entrada para a transformação a partir de apenas determinadas linhas de entrada. Se a Condição de entrada não for atendida para uma linha de entrada específica, o campo de entrada dessa linha será ignorado e não afetará outras linhas de saída. No entanto, o campo de saída dessa linha ainda será modificado de acordo com a Condição especificada. | |
Chave | Opcional. O nome do campo a ser usado como a chave. Se uma chave for especificada, as linhas de entrada de uma determinada linha de saída serão limitadas ao bloco contíguo de linhas com o mesmo valor Chave da linha de saída. Essa restrição é adicional a todas as outras limitações colocadas nas linhas de entrada por outros parâmetros da transformação CrossRows. Por exemplo, se estiver trabalhando com dados da Web e fizer com que o campo x-session-key (que tem um valor exclusivo para cada sessão) tenha a chave, as linhas de entrada da transformação serão limitadas às linhas que têm o mesmo valor x-session-key que a linha de saída. Portanto, você está considerando apenas as linhas de entrada que representam exibições de página que ocorrem durante a mesma sessão que a linha de saída. |
|
Operação | Uma operação que, para cada linha de saída, é aplicada a todas as linhas de entrada que satisfaçam todas as condições definidas pelos parâmetros Condição de entrada, Chave, Início da linha, Fim da linha, Início do tempo e Fim do tempo para produzir uma saída:
|
|
Saída | O nome do campo de saída. | |
Início da linha/Término da linha | Opcional. Especifica um intervalo de linhas de entrada em relação à linha de saída. Por exemplo, um valor de Início de linha "0" exclui todas as linhas antes da linha de saída. Um valor inicial de linha de "1" também exclui a linha de saída. Intervalos comuns incluem:
|
Todas as linhas |
Hora de início/hora de término | Opcional. Especifica um intervalo de vezes relativo ao tempo da linha de saída. Por exemplo, um Fim de tempo de 30 minutos inclui todas as linhas que ocorrem dentro de 30 minutos após a linha de saída. Um Início de tempo de -30 minutos inclui todas as linhas que ocorrem dentro de 30 minutos antes da linha de saída. As unidades de tempo disponíveis são dias, semanas, horas, minutos, ms (milissegundos), tiques (100 nanossegundos) e ns (nanossegundos). |
Todas as vezes |
A transformação CrossRows neste exemplo é aplicada a linhas de dados da Web a serem encontradas para cada exibição de página no momento da próxima exibição de página. Como sabemos que CrossRows é aplicado somente durante a fase de transformação do processo de construção do conjunto de dados, as linhas de dados são solicitadas pelo visitante (cada visitante tem uma ID de rastreamento exclusiva) e pelo tempo.
O campo de entrada, x-timestamp, é considerado apenas para as linhas de entrada nas quais x-is-page-view é preenchido (indicando que a linha de dados representa uma exibição de página). O campo x-session-key (que tem um valor exclusivo para cada sessão) é especificado para o parâmetro Key . Portanto, as linhas de entrada (entradas de log) para a transformação são limitadas ao bloco contíguo de linhas que têm o mesmo valor de x-session-key que a linha de saída. Em outras palavras, para ser considerada para a transformação, uma linha de entrada deve representar uma exibição de página que ocorre durante a mesma sessão que a exibição de página na linha de saída. A primeira operação de linha obtém o valor do campo de saída da primeira linha de entrada que satisfaz a condição Input e tem o mesmo valor de x-session-key que a linha de saída.
CrossRows O é executado em uma quantidade de tempo proporcional ao tamanho de suas entradas mais o tamanho de suas saídas. Isso significa que para as operações SUM, FIRST ROW e LAST ROW, não é menos eficiente do que outras transformações. Para TODOS, a situação é mais complexa porque é possível configurar CrossRows para produzir uma quantidade de dados para cada linha de dados (entrada de log) que é proporcional ao número total de linhas (entradas de log) para uma determinada ID de rastreamento.