O processamento em lote é um recurso muito importante ao trabalhar com bancos de dados. Eles não apenas fornecem aos desenvolvedores uma maneira de executar uma série de instruções de um único script, mas também fornecem atomicidade no cluster de destino.
Neste post, abordaremos o básico de trabalhar com processamento em lote em Apache Cassandra. Isso permite que você combine uma série de consultas em um único contexto de execução.
Vamos mergulhar.
Cassandra Batch Processing Sintaxe
A seguir, mostra a sintaxe da declaração em lote em Cassandra:
Comece [(não -englobado | contador)] em lote
[Usando timestamp [epoch_microseconds]]]
dml_statement [usando timestamp [epoch_microseconds]];
[DML_STATEMENT [Usando Timestamp [epoch_microseconds]] [;…]]
Aplicar lote;
Você pode usar uma inserção, atualização ou exclusão de declarações em uma cláusula em lote.
A declaração não cheia define se o lote está registrado ou não. Um lote registrado garante a máxima atomicidade, garantindo que todas as declarações no lote sejam executadas com sucesso. Se alguma das declarações em um lote registrado falhar, todo o lote não conseguirá executar.
As declarações de timestamp usando são usadas para definir o tempo de gravação para as transações que são realizadas pelas instruções no lote. Você pode permitir que o cluster atribua um único registro de data e hora em todas as transações realizadas pelo lote ou pode especificar as declarações nas quais deseja aplicar o registro de data e hora.
Um exemplo é como mostrado:
Comece o lote usando timestamp [epoch_microseconds]
declaração_1;
..
declaração_n;
Aplicar lote;
No exemplo anterior, Cassandra cria um registro de data e hora para todas as transações feitas pelas declarações especificadas no lote.
Outro exemplo é como mostrado:
Comece o lote
declaração_1;
declaração_2 usando timestamp [epoch_microseconds];
declaração_n;
Aplicar lote;
Nesse caso, Cassandra aplica apenas os registros de data e hora para as transações feitas pelo declaração_2.
Exemplo:
O exemplo a seguir ilustra como usar uma instrução em lote usando uma instrução DML Inserir:
Cassandra@cqlsh: testes> Criar usuários de tabela (
… eu não fiz,
… Texto do nome de usuário,
… Chave primária (id));
Depois de configurar a tabela, podemos executar uma inserção em lote da seguinte forma:
Cassandra@cqlsh: testando> Iniciar lote usando o timestamp 1664050149 Inserir nos valores de usuários (nome de usuário) (1, 'nome de usuário1'); inserir nos valores de usuários (ID, nome de usuário) (2, 'nome de usuário2'); aplicar lote;
A consulta deve realizar uma inserção de lote na tabela especificada. Como definimos o registro de data e hora em todas as declarações, a consulta deve garantir que todos os registros compartilhem um registro de data e hora semelhante.
Conclusão
Neste artigo, cobrimos o básico de trabalhar com o modo de lote em Apache Cassandra. É bom ter em mente que é um tutorial básico. Há muito mais a considerar ao trabalhar com processamento em lote, como partições únicas e múltiplas, chaves de destino, implicação de desempenho, declarações assíncronas e mais. Recomendamos verificar a documentação para obter informações detalhadas.