Há cerca de um mês, A Simba Technologies anunciou que lançou prévias para desenvolvedores dos drivers ODBC e JDBC. No ano passado, anunciamos que A Simba Technologies estava criando esses drivers ODBC e JDBC para uso com o Couchbase. Esses drivers possibilitam que os analistas de dados que usam ferramentas como o Microsoft Excel e o Tableau acessem rapidamente os dados no Couchbase Server.
Como exatamente você usa esses drivers? Vamos examinar especificamente como consultar dados usando o driver ODBC com o Microsoft Excel para Mac e Windows.
Pré-requisitos
- Servidor Couchbase 4.0+
- Microsoft Excel 2011+
- Um balde com dados
Uso com o Mac OS X
Comece baixando e instalando o arquivo DMG do driver Simba ODBC mais recente para Mac OS. Neste artigo, usaremos a versão 1.0.0.0002 para Mac.
Se estiver usando uma versão recente do Mac OS, será necessário fazer o download de outro software para configurar o driver recém-instalado. Gerenciador ODBC para Mac detectará o driver instalado e permitirá que você configure a qual servidor e porta se conectar por meio do Microsoft Excel.
Criação de índices de compartimento
Antes de nos conectarmos ao Couchbase Server via Excel, devemos primeiro criar índices de bucket para permitir a execução de consultas N1QL. Com o Couchbase Server em execução, no Terminal do Mac, execute o seguinte comando:
1 |
./Aplicativos/Couchbase Servidor.aplicativo/Conteúdo/Recursos/couchbase-núcleo/caixa/cbq |
O comando acima iniciará o cliente de consulta do Couchbase. Para fins deste exemplo, vamos criar um único índice primário. Com o CBQ em execução, digite o seguinte:
1 |
CRIAR PRIMÁRIO ÍNDICE def_primary ON `viagens-amostra` USO gsi; |
A caçamba agora está pronta para o N1QL!
Conexão com o Microsoft Excel
Inicie o ODBC Manager e selecione a opção DNS do sistema ou DNS do usuário abas. Basicamente, o que atender às suas necessidades.
Quando estiver pronto, clique no botão Adicionar e o driver da Simba Technologies deverá aparecer na lista para escolha.
Dê um nome à fonte de dados e adicione dois pares de valores-chave muito importantes:
1 2 |
hospedeiro=127.0.0.1 porto=8093 |
Obviamente, o host deve corresponder ao host real em que o Couchbase Server reside. No exemplo acima, o Couchbase Server estaria sendo executado em seu computador local.
Crie uma nova planilha do Microsoft Excel e clique em Banco de dados do Dados tab. O mesmo pode ser feito com Data -> Get External Data -> New Database Query na barra de ferramentas.
Quando isso for feito, você verá uma janela semelhante à que vimos no software ODBC Manager. Se, por algum motivo, a entrada do driver criado anteriormente não for exibida, crie-a novamente. Clique no botão Teste e será solicitado que você digite um nome de usuário e uma senha. Esse é o mesmo nome de usuário e senha usados para se conectar ao seu Couchbase Server.
Se o teste for bem-sucedido, clique no botão Ok para se conectar e começar a analisar os dados.
Quando conectado, você verá uma lista de buckets encontrados no seu Couchbase Server. Agora você tem duas opções para consultar dados.
Consultas usando uma consulta N1QL
Clique no botão Visualização SQL e insira uma consulta de sua escolha. Esteja ciente de que quanto mais dados você planeja retornar, mais tempo levará para ser executado. Supondo que o amostra de viagem
esteja instalado e tenha a indexação apropriada configurada, digite a seguinte consulta:
1 |
selecionar * de `viagens-amostra` limite 30; |
Se houver trinta documentos, eles serão devolvidos.
Clique no botão Teste e, em seguida, clique em Dados de retorno quando a consulta for concluída.
Consultas usando o Microsoft Excel Builder
Supondo que o amostra de viagem
esteja instalado e tenha a indexação apropriada configurada, selecione a opção amostra de viagem
balde e clique em Adicionar tabela.
Depois de adicionado, altere os campos e clique em Dados de retorno quando estiver pronto.
Uso com o Microsoft Windows
Comece fazendo o download e instalando o arquivo MSI do driver Simba ODBC mais recente para o Microsoft Windows.
Criação de índices de compartimento
Antes de nos conectarmos ao Couchbase Server via Excel, devemos primeiro criar índices de bucket para permitir a execução de consultas N1QL. Com o Couchbase Server em execução, no prompt de comando do Windows, execute o seguinte comando:
1 |
C:/Programa Arquivos/Couchbase/Servidor/caixa/cbq.exe |
O comando acima iniciará o cliente de consulta do Couchbase. Para fins deste exemplo, vamos criar um único índice primário. Com o CBQ em execução, digite o seguinte:
1 |
CRIAR PRIMÁRIO ÍNDICE def_primary ON `viagens-amostra` USO gsi; |
A caçamba agora está pronta para o N1QL!
Crie uma nova planilha do Microsoft Excel e clique em De outras fontes do Dados tab. Se sua fonte de dados ainda não tiver sido adicionada, escolha a opção e você deverá preencher quatro itens.
- Dê à sua conexão um nome como
Simba Couchbase
- Escolha o Driver ODBC do Simba Couchbase
- Se o Couchbase Server estiver sendo executado localmente, use
127.0.0.1
caso contrário, digite o IP do seu servidor em execução remota. Os padrões para todo o resto estão corretos - Escolha uma tabela padrão para a fonte de dados se o teste da conexão for bem-sucedido
Nesse ponto, você pode continuar a seguir o assistente de criação de consultas ou clicar em cancelar para fazer as coisas por conta própria.
Consultando com o assistente
Com o assistente iniciado, primeiro adicione as colunas desejadas à sua consulta, ou todas elas, e clique em Próximo.
A próxima tela do assistente permitirá que você adicione qualquer lógica de consulta. Se você quiser retornar todas as linhas, basta deixar o padrão e clicar em Próximo.
A próxima tela do assistente permitirá que você escolha como classificar os dados por padrão. Você pode escolher o padrão e clicar em Próximo ou especificar alguma classificação.
Escolha Retornar dados para o Microsoft Excel e clique em Finalizado.
Todos os dados com base nos critérios inseridos serão extraídos para a planilha.
Consultas usando uma consulta N1QL
Clique no botão SQL e insira uma consulta de sua escolha. Esteja ciente de que quanto mais dados você planeja retornar, mais tempo levará para ser executado. Supondo que o amostra de viagem
esteja instalado e tenha a indexação apropriada configurada, digite a seguinte consulta:
1 |
selecionar * de `viagens-amostra` limite 30; |
Se houver trinta documentos, eles serão devolvidos.
Clique em Arquivo -> Retornar dados para o Microsoft Excel quando a consulta for concluída para retornar os dados à sua planilha.
Obrigado pelo excelente tutorial, Nic! Uma correção: você deve usar a chave \'server\' em vez da chave \'host\' para especificar o nome do host no qual o Couchbase é executado. Outras chaves e valores possíveis estão listados no Guia de instalação do driver que acompanha o driver. Obrigado!
Obrigado pelo feedback!
Você se importaria de compartilhar o guia de instalação do driver que encontrou? Não vi nenhum para esse driver específico, mas ele pode ter passado despercebido.
Melhor,
O guia é instalado junto com o driver em \'/opt/simba/couchbaseodbc/Simba ODBC Driver for Couchbase Install Guide.pdf\'. Você também pode baixá-lo separadamente do local de download mencionado no blog do Simba:
Presumo que esse seja um caminho do Mac OS. No meu Mac, o caminho não existe. As opções para mim são as seguintes:
/opt/simba/couchbaseodbc/ErrorMessages/
/opt/simba/couchbaseodbc/Setup
/opt/simba/couchbaseodbc/Tools
/opt/simba/couchbaseodbc/lib
Nenhum deles parece me levar a qualquer arquivo PDF. Qual versão do driver você instalou? Além disso, não tenho certeza se seu link foi cortado em relação à publicação do blog. Não vi nenhum link em nenhuma das publicações do blog que encontrei que apontasse para um guia.
Obrigado por todos os seus comentários. Ele é muito apreciado, pois certamente ajudará os futuros leitores :-)
Melhor,
Sim, é o caminho completo do Mac OS X para o arquivo PDF. O Guia deve estar no diretório \'/opt/simba/couchbaseodbc/\' (no nível superior). Usei a versão atual do driver mencionada no blog do Simba (v.1.0.0.0004). O guia também está disponível neste link: https://simba.app.box.com/s/fm…
Gostaria de saber se é possível consultar visualizações do Couchbase em vez de tabelas/buckets do Excel? Você poderia mostrar como, se possível? Agradecimentos
Você só pode emitir consultas baseadas em N1QL por meio dos drivers ODBC/JDBC e o N1QL tem acesso a visualizações criadas por meio da instrução N1QL CREATE INDEX. No entanto, você não pode consultar nenhuma visualização de redução de mapa criada por meio da API de visualização com ODBC/JDBC neste momento.
agradecimentos
Obrigado pela resposta rápida. Existe algum exemplo de como isso é feito usando o N1QL CREATE INDEX?
CREATE INDEX index_name ON bucket_name(...) USING VIEW;
Quero dizer, onde realmente escrever essa declaração? Quando crio a visualização, vou para o Couchase, por exemplo http://localhsot:8091 - Views - e depois Create Development Views. Onde posso escrever N1QL no Couchbase? Obrigado pela ajuda
Alguns links que podem ser úteis;
- Você pode usar uma ferramenta chamada CBQ se quiser fazer isso por meio da linha de comando: http://docs.couchbase.com/4.0/…
- Sintaxe de CREATE INDEX : http://docs.couchbase.com/4.0/…
estamos procurando adicionar mais ferramentas gráficas nas próximas versões para consultas N1QL.
agradecimentos
-cihan
Ainda estou um pouco perdido. Quando uso Create Index via CBQ, estou criando uma visualização ou estou consultando a visualização que já criei?
Depois que esse índice for criado no CBQ, como posso acessá-lo no Excel?
Desculpe, sou realmente novo no assunto.
Só para deixar claro.
Devo executar o seguinte no CBQ:
CRIAR ÍNDICE
índice de tipo de amostra de cerveja
ONamostra de cerveja
(tipo) USANDO GSI;Então, posso acessá-lo do Excel desta forma?
SELECT * FROM system:indexes WHERE name=\"beer-sample-type-index\";
Mais uma vez, obrigado.
Acho que agora entendi. O índice é como os índices do SQL Server - apenas relacionado ao desempenho. Fiquei confuso quando você disse \"visualizações criadas via N1QL CREATE INDEX\".
No entanto, não se trata de uma visualização propriamente dita, pois não posso consultá-la dessa forma:
SELECT * FROM \"beer-sample-type-index\"
Nesse caso, acho que o INDEX não ajudaria, pois o motivo pelo qual estou usando exibições é que meus arquivos json são muito complexos e têm muitos nós - preciso achatá-los e armazená-los como exibições, para que eu possa consultá-los facilmente no Excel.
Estou correto? Obrigado pela atenção
Recapitulando: o cbq é uma ferramenta de linha de comando para você passar quaisquer instruções N1QL. CREATE INDEX ou SELECT funcionam por meio da ferramenta de linha de comando cbq. Você também pode usar tudo isso por meio do Excel, mas precisará baixar um driver ODBC separado para isso.
O achatamento pode ser feito por meio de comandos N1QL (consulte unnest, por exemplo). Assim, você pode escrever comandos para ajudar a achatar os itens antes de expô-los ao Excel.
A Simba é proprietária do driver ODBC. Pedirei ao pessoal da Simba que comente sobre os recursos de nivelamento do driver ODBC também nesta postagem.
Como Cihan disse, o N1QL não é capaz de consultar o tipo de exibições de que você está falando (criadas por meio do console de administração). Dessa forma, o driver ODBC também não tem acesso a elas. Na versão Beta do driver, você pode emitir consultas N1QL usando a operação UNNEST para obter um conjunto de resultados que se pareça com o que você deseja.
Se você não aninhar, o driver tentará fazer isso por você quando receber o resultado. Por exemplo, se você SELECT * FROM
amostra de cerveja
ONDEtipo
=\'brewery\', você verá várias colunas resultantes do achatamento no driver: \"geo|accuracy\", \"geo|lat\", \"geo|lon\" e \"address[0]\". Você pode notar que isso tem apenas uma coluna para endereço, mas alguns documentos têm duas entradas em sua matriz de endereços. Isso ocorre porque a estrutura de resultados é baseada no primeiro documento visto. Por esse motivo, se você for emitir consultas N1QL diretas, seria aconselhável fazer o UNNEST com antecedência.No entanto, as coisas estão melhorando. A versão completa do driver ODBC que está chegando terá um recurso para apresentar uma visualização renormalizada de seus dados como tabelas virtuais que representam diferentes partes de seus documentos. Em seguida, você poderá usar o SQL padrão para consultar seus dados em uma variedade de ferramentas compatíveis com SQL. Continuando com a amostra de cerveja como exemplo, você terá três tabelas: cerveja, cervejaria e brewery_address. As três colunas geográficas mencionadas acima permanecem como parte da tabela brewery, mas o atributo address recebe sua própria tabela com uma coluna-chave que pode ser unida à coluna-chave associada na tabela brewery.
E não se limita apenas a simples matrizes de strings, como a matriz de endereços da amostra de cerveja. Em travel-sample, temos uma tabela route_schedule com colunas para as três partes dos objetos de programação: dia, voo e utc. E, novamente, isso pode ser unido à tabela de rotas por uma coluna chave em cada tabela.
Esse processo de renormalização também é personalizável. Se você não quiser que brewery_address seja sua própria tabela, mas preferir ter as colunas address[0] e address[1] na tabela brewery, poderá editar a definição da tabela brewery para adicionar essas colunas.
Alguém teve sucesso com o Open Office no Mac? Consigo fazer a conexão sem problemas, usando uma conexão odbc e um banco de dados do open office, mas a execução de uma consulta simplesmente trava e depois trava.
O que acontece se você limitar a consulta a um conjunto de resultados menor?
A Cdata Software desenvolveu o Couchbase Excel Add-In, uma ferramenta avançada que permite a conexão com bancos de dados NoSQL do Couchbase em tempo real, diretamente do Microsoft Excel. Use o Excel para ler, gravar e atualizar o Couchbase. Perfeito para importações/exportações/atualizações em massa, limpeza e desduplicação de dados, análise de dados com base no Excel e muito mais!
https://www.cdata.com/drivers/couchbase/excel/