Servidor Couchbase

FakeIt Série 1 de 5: Geração de dados falsos

Aaron Benton é um arquiteto experiente, especializado em soluções criativas para desenvolver aplicativos móveis inovadores. Ele tem mais de 10 anos de experiência em desenvolvimento de pilha completa, incluindo ColdFusion, SQL, NoSQL, JavaScript, HTML e CSS. Atualmente, Aaron é Arquiteto de Aplicativos da Shop.com em Greensboro, Carolina do Norte, e é um Campeão da comunidade do Couchbase.

Aaron Benton

FakeIt Série 1 de 5: Geração de dados falsos

Há inúmeras postagens em blogs sobre modelagem de dados, chave e padrões de documentos. Todas essas publicações oferecem uma ótima introdução sobre como estruturar e modelar seus documentos no Couchbase, mas nenhuma delas diz a você o que fazer em seguida. Nesta série de blogs, responderemos à pergunta: o que fazer depois de definir o modelo de dados?

Modelo de usuários

Nesta série, trabalharemos com um aplicativo de comércio eletrônico greenfield. Como na maioria dos aplicativos de comércio eletrônico, nosso aplicativo terá usuários, portanto, é por aí que começaremos.

Para começar, definimos um modelo básico de usuário.

Fizemos a parte mais difícil, que é definir nosso modelo, mas e agora?

  • Como representamos esse modelo?
  • Como documentamos esse modelo?
  • Esse modelo se baseia em dados de outros modelos?
  • Como os dados podem ser gerados a partir desse modelo?
  • Como podemos gerar dados falsos/teste?

Felizmente para nós, há um projeto NodeJS chamado Falsa que pode responder a todas essas perguntas para nós. Falsa é um utilitário de linha de comando que gera dados falsos nos formatos json, yaml, yml, cson ou csv com base em modelos definidos em yaml. Os dados podem ser gerados usando qualquer combinação de FakerJS, ChanceJS ou funções personalizadas. Os dados gerados podem ser gerados nos seguintes formatos e destinos:

  • json
  • yaml
  • cson
  • csv
  • Arquivo Zip de arquivos json, yaml, cson ou csv
  • Servidor Couchbase
  • Servidor de gateway de sincronização do Couchbase

Podemos definir um modelo FakeIt em YAML para representar nosso modelo JSON. Isso nos fornece um modelo documentado e tipado por dados que nos permite comunicar como nosso modelo deve ser estruturado e para que servem as propriedades.

Você provavelmente está se perguntando, "Ótimo, defini meu modelo em YAML, mas de que isso me serve?" Um dos maiores problemas que os desenvolvedores enfrentam ao iniciar o desenvolvimento é ter dados para trabalhar. Muitas vezes, uma quantidade exorbitante de tempo é gasta na criação manual de documentos, escrevendo códigos descartáveis para preencher um bucket. Além disso, você pode ter um dump de dados completo ou parcial do seu banco de dados que precisa ser importado.

Esses procedimentos são demorados, tediosos e, no caso de um despejo de dados, não fornecem nenhuma visão ou documentação sobre os modelos disponíveis. Podemos adicionar algumas propriedades simples ao nosso modelo FakeIt que descrevem como o nosso modelo deve ser gerado e, por meio de um único arquivo, podemos criar uma quantidade infinita de documentos falsos randomizados.

Adicionamos uma propriedade de dados a cada uma das propriedades de nossos modelos, descrevendo como esse valor deve ser gerado. A FakeIt oferece suporte a 5 maneiras diferentes de gerar um valor:

  • pre_build: para inicializar o valor
  • construir: função que cria um valor
  • falso: Uma string de modelo do FakerJS, ou seja, {{internet.userName}}
  • valor: Um valor estático a ser usado
  • post_build: uma função que é executada depois que todas as propriedades do modelo são definidas

Essas funções de compilação são um corpo de função JavaScript. Cada uma dessas funções recebe as seguintes variáveis que podem ser usadas no momento de sua execução:

  • documents - Um objeto que contém uma chave para cada modelo cujo valor é uma matriz de cada documento que foi gerado
  • globals - Um objeto que contém quaisquer variáveis globais que possam ter sido definidas por qualquer uma das funções de execução ou compilação
  • inputs - Um objeto que contém uma chave para cada arquivo de entrada usado, cujo valor é a versão desserializada dos dados do arquivo
  • faker - Uma referência ao FakerJS
  • chance - Uma referência ao ChanceJS
  • document_index - Esse é um número que representa a posição do documento gerado atualmente na ordem de execução
  • require - Essa é a função require do nó, que permite que você exija seus próprios pacotes. Para obter um melhor desempenho, exija e configure-os na função pre_run.

Por exemplo, se observarmos a função de criação de propriedades de nome de usuário, ela terá a seguinte aparência:

Agora que definimos como nosso modelo deve ser gerado, podemos começar a gerar alguns dados falsos com ele.

Com nosso modelo de usuários salvo em um arquivo models/users.yaml, podemos enviar dados diretamente para o console usando o comando

blog1 example1

Usando esse mesmo modelo, podemos gerar 100 arquivos JSON e salvá-los em um diretório chamado output/ usando o comando

blog 1 example 2

Além disso, podemos criar um arquivo zip com 1.000 arquivos JSON usando o comando:


blog1 example3

Podemos até mesmo gerar um único arquivo CSV do nosso modelo usando o seguinte comando:


Isso criará um único arquivo CSV cujo nome é o nome do modelo, neste caso, o nome: Users, e o arquivo resultante será denominado Users.csv

Se você estiver usando arquivos JSON, arquivos Zip ou arquivos CSV, todos eles podem ser importados para o Couchbase Server usando as ferramentas CLI carregador de arquivos cbdocloader (para arquivos *.json e *.zip) ou cbimport (para arquivos *.json e *.csv)

Embora a geração de arquivos estáticos seja vantajosa, ainda há a etapa adicional de importá-los para o Couchbase Server por meio das ferramentas CLI disponíveis. O FakeIt também oferece suporte ao Couchbase Server e ao Sync Gateway como destinos de saída. Podemos gerar 10.000 documentos JSON a partir do nosso modelo users.yaml e enviá-los para um bucket chamado ecommerce em um Couchbase Server executado localmente usando o comando:

blog 1 example 5

Conclusão

Vimos como podemos representar o modelo JSON de um usuário usando YAML para documentar e descrever como um valor de propriedades deve ser gerado. Esse único arquivo users.yaml pode ser enviado para o console, arquivos JSON, arquivo Zip de arquivos JSON, arquivos CSV e até mesmo diretamente para o Couchbase. O FakeIt é uma ferramenta fantástica para acelerar seu desenvolvimento e gerar conjuntos de dados de desenvolvimento maiores. Você pode salvar seus modelos FakeIt como parte de sua base de código para facilitar a repetição de conjuntos de dados por qualquer desenvolvedor.

O FakeIt é uma ferramenta para facilitar o desenvolvimento e o teste de sua implantação do Couchbase. Embora possa gerar grandes quantidades de dados, não é uma verdadeira ferramenta de teste de carga. Há ferramentas CLI disponíveis para teste de carga e dimensionamento, como cbc-pillowfight e cbworkloadgen

Próximo

Couchbase Champion

Esta postagem faz parte do Programa de Redação da Comunidade Couchbase

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Laura Czajkowski, gerente da comunidade de desenvolvedores, Couchbase

Laura Czajkowski é a Snr. Developer Community Manager da Couchbase, supervisionando a comunidade. Ela é responsável pelo nosso boletim informativo mensal para desenvolvedores.

4 Comentários

  1. [...] FakeIt Série 1 de 5: Geração de dados falsos Aprendemos que o FakeIt pode gerar uma grande quantidade de dados aleatórios com base em um único arquivo YAML e [...]

  2. [...] até agora, em nossa série FakeIt, vimos como podemos gerar dados falsos, compartilhar dados e dependências e usar definições para modelos menores. Hoje vamos dar uma olhada [...]

  3. No Couchbase 5.0 e superior, é necessário especificar um nome de usuário e uma senha para o Couchbase.
    Você pode fazer isso adicionando os parâmetros -username (ou -u) e -password (ou -p) ao comando "fakeit couchbase"

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.