terça-feira, 23 de agosto de 2016

Batch Commit

Empresa, CloudHub

Usando o processamento em lote, você pode refinar o trabalho que um passo lote executa sobre os registros que ele processa.

Você pode definir filtros em cima passos de lote, de modo a aceitar apenas alguns registros para processamento.

Você pode cometer registros em grupos, enviando-os como upserts granel para fontes ou serviços externos.

Este documento descreve como e quando usar filtros de lote e o lote cometer wrapper.

Pré-requisitos
Este documento assume que você está familiarizado com AnyPoint Studio, analisaram a visão geral e anatomia básica de processamento em lote, e que você entender como trabalhos em lote lidar com registros que falham processamento.

filtros
Você pode aplicar um ou mais filtros como atributos para qualquer número de passos descontínuos dentro de seu trabalho em lotes. Por ter etapas em lote aceitar apenas alguns registros para o processamento, você agilizar o processamento para que Mule incide apenas sobre os dados que são relevantes para uma etapa lote particular.

Por exemplo, você pode aplicar um filtro para a segunda etapa do lote no seu trabalho em lotes para certificar-se de que a segunda etapa só tenta processar registros que não falham durante o processamento na primeira etapa lote. Para colocar isso em contexto de um caso de uso, imagine um trabalho em lotes que usa seu primeiro passo em lotes para verificar para ver se existe um contato Salesforce para um registro; o segundo passo lote atualiza cada contato Salesforce existentes com novas informações. Em tal caso, poderia aplicar-se um filtro para o segundo passo de lote para assegurar que só processa registos que não falharam durante o primeiro passo de lote.

Os filtros são aplicados a poucos passos de lote. Usar uma expressão Accept para processar apenas os registos que, relativamente à expressão MEL, avaliam para true; se o registro for avaliada como falsa, o passo lote não processa o registro. Em outras palavras, os registros com uma expressão de filtro que resolve para false são a Mula os filtra.

O exemplo a seguir filtra todos os registros onde a idade é inferior a 21; o passo lote não processa esses registros.
Use uma Política Accept para processar apenas os registos que, em relação ao valor do atributo política de aceitar, avaliam para true. Consulte a tabela abaixo para obter uma lista dos valores disponíveis para a política de aceitar. O exemplo abaixo ilustra a segunda etapa de lote em um trabalho em lotes que processa somente os registros que falharam o processamento durante a etapa anterior. Na primeira etapa do lote, Mule verificada cada registro para ver se ele tinha um contato Salesforce existentes; a segunda etapa do lote, o que cria um contato para cada registro, processa apenas os registros falhou (ou seja, registros que não conseguiram ter uma conta existente).
Accept PolicyWhen evaluates to TRUE
NO_FAILURES
Default
Batch step processes only those records that succeeded processing in all preceding steps
ONLY_FAILURES
Batch step processes only those records that failed processing in a preceding batch step
ALL
Batch step processes all records, regardless of whether they failed processing in a preceding batch step

Filter Characteristics 

  • Batch filters only apply de passos descontínuos que, por sua vez, só podem ser usados ​​na fase de processo de lote de uma tarefa batch. Você não pode aplicar filtros com a entrada ou On fases completas.

    Se você não aplicar filtros a um passo de lote, os processos em lote somente os registros que succeededprocessing em todas as etapas anteriores. Em outras palavras, o padrão Política aplicada a todas as etapas de lote Aceitar é NO_FAILURES.

    Quando uma ocorrência de trabalho em lotes excede o seu valor não-max-registros, independentemente do filtro definido na etapa de lote, o passo não processa todos os registros, e simplesmente empurra a instância trabalho em lotes falhou ao On fase completa. Leia mais sobre tratamento de falhas em tarefas de lote.

    Consulte o lote de referência para obter detalhes sobre lotes atributos da etapa.

    Onde aplicar os dois tipos de filtros, Mule avalia-los na seguinte ordem:

    política de aceitar

    aceitar Expression
batch_commit

Batch Commit Características

Batch Commit escopos só pode existir em passos de lote, que, por sua vez, só são utilizáveis ​​na fase de processo de lote de um trabalho em lotes. Você não pode usar commits lote dentro da entrada ou On fases completas.


Um commit só pode embrulhar o elemento final na etapa de lote em que reside.


Vários AnyPoint conectores têm a capacidade de lidar com erros de nível recorde sem falhar um lote inteiro cometem (isto é upsert). Durante a execução, esses conectores manter o controle de quais registros foram aceitos com sucesso pelo recurso de destino, e que não conseguiu Upsert. Assim, ao invés de falhar um conjunto completo de registros durante uma atividade de cometer, o conector simplesmente upserts tantos registros quanto possível, e rastreia todas as falhas de notificação. O curta - mas logo a crescer - lista desses conectores segue:


Força de vendas


Google Contacts


Google Calendars


NetSuite


Banco de dados


Consulte o lote de referência para obter detalhes sobre lotes atributos da etapa.


O processamento em lote não suporta operações de trabalho de toda a instância. Você pode definir uma transação dentro de um passo de lote que processa cada registro em uma transação separada. (Pense nisso como um passo dentro de uma etapa.) Esta operação deve começar e terminar dentro dos limites do passo.


Você não pode compartilhar uma transação entre um passo de lote e um lote comprometer que existe dentro da etapa. Qualquer transação que o passo lote começa, termina antes do lote cometer começa processos. Em outras palavras, uma operação que não pode atravessar a barreira entre uma etapa de lote e o lote que contém cometer.


Mutável Registros Dentro Comprometer Blocos

Nas versões anteriores do Mule, o bloco de cometer exposto apenas a carga útil do registro agrupados e não permitem que você altere essas cargas úteis nem para recuperar as variáveis ​​de registro associado. Desde 3.8, Mule permite acessar cargas e variáveis ​​dos registros agrupados dentro do Batch cometer bloco e processá-los usando o Mule Expression Language (MEL).


Acesso sequencial


Você pode persistentemente passar por cima da carga útil de cada registro e sequencialmente armazená-lo como uma variável de registro.

Durante a fase de processo de seu trabalho em lotes, você pode substituir, alterar ou armazenar os dados de carga útil.


Ao adicionar um Scope Foreach você pode interagir através de um tamanho fixo cometer bloco, e usar a Referência de componente Expression para modificar a carga útil e criar uma variável registro para cada registro coletado.

1
2
3
4
5
6
7
8
9
10
<batch:step name="commitStep">
<batch:commit size="10">
        <foreach>
                <expression-component>
                        record.payload = 'foo';
                        record.recordVars['marco'] = 'polo';
                </expression-component>
        </foreach>
</batch:commit>
</batch:step>

Nenhum comentário:

Postar um comentário