Mais ou menos exatamente dois meses após a segunda prévia para desenvolvedores, tenho o prazer de anunciar que lançamos a primeira (e, espero, única) versão beta do Couchbase Spark Connector. É um grande passo à frente, trazendo Spark 1.4 bem como a documentação oficial e vários aprimoramentos menores. Em particular:

  1. Suporte para Spark 1.4
  2. Suporte revisado ao Spark SQL DataFrame
  3. APIs Java
  4. saveToCouchbase() suporta StoreModes

Você pode obtê-lo imediatamente no repositório Maven do Couchbase:

A documentação já está oficialmente disponível aqui!

Suporte ao Spark 1.4

O Spark 1.4 foi selecionado como a versão de destino do Spark para a versão 1.0 GA. Como resultado, todas as dependências do Spark foram alteradas. Como a versão 1.4 traz uma nova API para DataFrames, o Connector também modificou sua API para se integrar perfeitamente a ela.

A API do DataFrame foi alterada para que a fonte subjacente funcione por meio do DataFrameReader e do DataFrameWriter. Fora isso, ela é muito semelhante à API anterior.

Aqui está um exemplo de como ler os dados do bucket de amostras de viagem:

Você também pode gravar um DataFrame no couchbase:

APIs Java

Muitas pessoas usam o Spark por meio de sua API Java, portanto, é claro que também queremos oferecer suporte a ele. Como a exposição da API do conector é, por definição, muito pequena, não é necessário converter muita API. A API Java reside no namespace com.couchbase.spark.java e pode ser usada desta forma:

StoreModes

Anteriormente, o método saveToCouchbase() usava apenas o método upsert subjacente para armazenar seus dados. Como pode haver cenários em que você não queira (ou apenas) substituir documentos, é necessária mais flexibilidade. É por isso que introduzimos o enum StoreMethod, que suporta os seguintes valores:

  • UPSERT: Insira se não existir e substitua se existir.
  • INSERT_AND_FAIL: Tenta inserir e falha se existir.
  • INSERT_AND_IGNORE: Tenta inserir e ignora as falhas se elas existirem.
  • REPLACE_AND_FAIL: Tenta substituir e falha se não existir.
  • REPLACE_AND_IGNORE: Tenta substituir e ignorar as falhas se elas não existirem.

Usá-lo é muito fácil, mas o procedimento a seguir falha corretamente, pois o documento já existe:

O caminho para a GA

A versão 1.0.0 GA do conector está planejada para daqui a um mês, deixando espaço para corrigir bugs e melhorar a documentação. Ajude-nos a testar o máximo possível para que possamos enviar uma versão GA incrível!

Autor

Postado por Michael Nitschinger

Michael Nitschinger trabalha como engenheiro de software principal na Couchbase. Ele é o arquiteto e mantenedor do Couchbase Java SDK, um dos primeiros drivers de banco de dados totalmente reativos na JVM. Ele também é o autor e mantenedor do Couchbase Spark Connector. Michael participa ativamente da comunidade de código aberto e contribui para vários outros projetos, como RxJava e Netty.

Deixar uma resposta