O Couchbase 6.6 vem com um recurso muito necessário, Importar documentos usando o Console da Web de administração do Couchbase. Isso proporciona uma maneira fácil de importar rapidamente pequeno conjuntos de dados em uma variedade de formatos para complementar cbimport que é uma solução de linha de comando mais abrangente, com muito mais opções de importação de dados.
Nesta postagem do blog, veremos alguns casos de uso e algumas pegadinhas ao importar dados.
Verificando o recurso
Importar documentos é acessado clicando em Documentos no painel esquerdo e o link Importar documento no painel azul na parte superior da página.

Os campos são todos autoexplicativos, mas vou dar uma olhada na importação de um pequeno conjunto de dados (apenas 5 linhas) para demonstrar o recurso. Criei quatro arquivos com formatos diferentes em meu laptop para demonstrar o recurso. Observe que não precisamos necessariamente de um Bucket de destino vazio, mas, para esse teste, criei um bucket teste que ainda não possui nenhum documento.
Vamos importar nosso conjunto de dados de lista JSON.

- Cliquei no botão Selecione o arquivo para importar e selecionou airport.jsonEm meu laptop, tenho um arquivo com 5 documentos JSON.
- Antes de importar de fato os dados, a tela mostra uma amostra do arquivo Conteúdo do arquivo em diferentes formatos. Isso serve como uma verificação rápida.
- Em seguida, tenho a opção de definir o chave do documento durante a importação, na seção Importar com ID do documento botões de rádio. As opções são UUID, ou, quando possível, um Valor do campo.
- Observação ao selecionar Valor do campo:
- Esse campo deve estar em todos os documentos com um valor exclusivo e não nulo.
- Tferramenta não garante que os campos de ID de candidato tenham valores exclusivos em todos os documentos. A interface de importação verifica apenas se o campo é presente em todos os documentos.
- Se você selecionar um campo de ID com valores duplicados, os documentos mais antigos serão substituídos por novos documentos com o mesmo ID.
- Por enquanto, vou continuar com o UUID escolha e siga em frente com a importação.
- Observação ao selecionar Valor do campo:
- Em seguida, selecionei teste como meu Balde de destino.
- Em seguida, clico no botão Importar dados na parte inferior da tela.
A importação é bem-sucedida e também exibe o número de documentos importados em uma caixa pop-up.
A tela também mostra uma útil cbimport caso o tamanho dos dados seja grande.
Vamos importar o mesmo conjunto de documentos, mas, desta vez, escolha a opção Valor do campo assim:

Eu escolherei id.
Agora que importei o mesmo conjunto de documentos duas vezes, mas com diferentes chavesAgora, terei 10 documentos no balde. Vamos verificar isso clicando no botão Editor de documentos no botão azul painel na parte superior.

Aqui vemos os 10 documentos, um conjunto de 5 com o id como a chave do documento e outro conjunto de 5 com o UUID gerado pelo servidor como a chave.
Vamos dar uma olhada em um documento:

Parece bom.
Testes adicionais
Você também pode testar a importação do mesmo conjunto de dados em diferentes formatos.
Formatos de arquivo
Lista JSON
Uma lista JSON é uma lista (indicada por colchetes) de qualquer número de objetos JSON (indicados por chaves) separados por vírgulas.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
[ { "nome do aeroporto": "Calais Dunkerque", "cidade": "Calais", "país": "França", "faa": "CQF", "geo": { "alt": 12, "lat": 50.962097, "longo": 1.954764 }, "icao": "LFAC", "id": 1254, "tipo": "aeroporto", "tz": "Europa/Paris" }, .... { "nome do aeroporto": "Bray", "cidade": "Albert", "país": "França", "faa": nulo, "geo": { "alt": 364, "lat": 49.971531, "longo": 2.697661 }, "icao": "LFAQ", "id": 1258, "tipo": "aeroporto", "tz": "Europa/Paris" } ] |
Linhas JSON
As linhas JSON são um arquivo em que cada linha tem um objeto JSON completo separado nessa linha.
|
1 2 3 4 5 |
{"nome do aeroporto":"Peronne St Quentin","cidade":"Peronne","país":"França","faa":nulo,"geo":{"alt":295,"lat":49.868547,"longo":3.029578},"icao":"LFAG","id":1255,"tipo":"aeroporto","tz":"Europa/Paris"} {"nome do aeroporto":"Bray","cidade":"Albert","país":"França","faa":nulo,"geo":{"alt":364,"lat":49.971531,"longo":2.697661},"icao":"LFAQ","id":1258,"tipo":"aeroporto","tz":"Europa/Paris"} {"nome do aeroporto":"Calais Dunkerque","cidade":"Calais","país":"França","faa":"CQF","geo":{"alt":12,"lat":50.962097,"longo":1.954764},"icao":"LFAC","id":1254,"tipo":"aeroporto","tz":"Europa/Paris"} {"nome do aeroporto":"Les Loges","cidade":"Nangis","país":"França","faa":nulo,"geo":{"alt":428,"lat":48.596219,"longo":3.006786},"icao":"LFAI","id":1256,"tipo":"aeroporto","tz":"Europa/Paris"} {"nome do aeroporto":"Couterne","cidade":"Bagnole-de-l'orne","país":"França","faa":nulo,"geo":{"alt":718,"lat":48.545836,"longo":-0.387444},"icao":"LFAO","id":1257,"tipo":"aeroporto","tz":"Europa/Paris"} |
CSV (variáveis separadas por vírgulas)
|
1 2 3 4 5 6 |
nome do aeroporto,cidade,país,faa,geo.alt,geo.lat,geo.solitário,icao,id,tipo,tz "Calais Dunkerque","Calais","França","CQF",12,50.962097,1.954764,"LFAC",1254,"aeroporto","Europa/Paris" "Peronne St Quentin","Peronne","França","null",295,49.868547,3.029578,"LFAG",1255,"aeroporto","Europa/Paris" "Les Loges","Nangis","França",nulo,428,48.596219,3.006786,"LFAI",1256,"aeroporto","Europa/Paris" "Couterne","Bagnole-de-l'orne","França",nulo,718,48.545836,-0.387444,"LFAO",1257,"aeroporto","Europa/Paris" "Bray","Albert","França",nulo,364,49.971531,2.697661,"LFAQ",1258,"aeroporto","Europa/Paris" |
Observação:
- O formato CSV "achata" os dados JSON e não oferece suporte a matrizes ou valores aninhados.
- O formato CSV não tem uma maneira bem definida de suportar valores nulos. Os valores de cadeia de caracteres em CSV são opcionalmente citados, portanto, não há uma maneira padrão de distinguir a cadeia de caracteres "null" do valor null. Portanto, após a importação de um conjunto de dados CSV, o valor nulo será importado como a cadeia de caracteres "null".
TSV (Tab Separated Variables, variáveis separadas por tabulação)
|
1 2 3 4 5 6 |
nome do aeroporto cidade país faa geo.alt geo.lat geo.solitário icao id tipo tz "Calais Dunkerque" "Calais" "França" "CQF" 12 50.962097 1.954764 "LFAC" 1254 "aeroporto" "Europa/Paris" "Peronne St Quentin" "Peronne" "França" nulo 295 49.868547 3.029578 "LFAG" 1255 "aeroporto" "Europa/Paris" "Les Loges" "Nangis" "França" nulo 428 48.596219 3.006786 "LFAI" 1256 "aeroporto" "Europa/Paris" "Couterne" "Bagnole-de-l'orne" "França" nulo 718 48.545836 -0.387444 "LFAO" 1257 "aeroporto" "Europa/Paris" "Bray" "Albert" "França" nulo 364 49.971531 2.697661 "LFAQ" 1258 "aeroporto" "Europa/Paris" |
Observação:
- O formato TSV "achata" os dados JSON e não oferece suporte a matrizes ou valores aninhados.
- O formato TSV não tem uma maneira bem definida de suportar valores nulos. Os valores de cadeia de caracteres em TSV são opcionalmente citados, portanto, não há uma maneira padrão de distinguir a cadeia de caracteres "null" do valor null. Portanto, após a importação de um conjunto de dados CSV, o valor null será importado como a cadeia de caracteres "null".