Seguindo o suporte para o Analytics coleções externas para o Serviço de Armazenamento Simples (S3) da Amazon Web Services (AWS) no Lançamento do Couchbase Server 6.6A Couchbase tem o prazer de anunciar o próximo suporte e a disponibilidade geral para Armazenamento de Blob do Azure para coleções externas do Analytics. Isso permitirá que os clientes combinem dados de fontes externas (por exemplo, AWS S3 e Azure Blob Storage) com dados locais (Analytics Collections), bem como dados remotos do Couchbase (Coleções de análise remota).
Caso de uso do cliente
Alguns clientes usam o Armazenamento de Blobs do Azure para reduzir os custos de armazenamento e armazenar grandes volumes de dados (por exemplo, vários anos de dados históricos, dados comerciais offline para aprendizado de máquina, análises de produtos etc.). Eles expressaram o desejo de combinar, consultar e utilizar os dados do Armazenamento de Blobs do Azure em tempo real para disponibilizar esses dados aos usuários corporativos para análise de dados. Leia aqui para saber mais sobre outros Casos de uso de análise.
Como funcionam as coleções externas do Analytics?
Esta seção foi abordada anteriormente em Blog de conjuntos de dados externos do AWS S3 Analytics. Se você já usou coleções externas do Analytics usando o S3 antes, esta parte já lhe será familiar.
As coleções do External Analytics oferecem a capacidade de consultar e analisar dinamicamente os dados que residem em fontes externas (por exemplo, AWS S3 e Azure Blob Storage), permitindo que os usuários combinem facilmente os dados em tempo real de dentro e de fora dos nós do Couchbase Analytics. Isso é feito em três etapas simples:
-
- Configure um link externo usando um Chamada à API REST, interface de linha de comando (CLI)ou Workbench do servidor Couchbase.
- Crie uma coleção externa do Analytics no link externo.
- Consultar a coleção do Analytics usando SQL++ para análise (ou use Tableau com conector do Tableau do Couchbase Analytics).
Vamos ver um exemplo simples. A iMaz, uma empresa de comércio eletrônico, vende produtos de consumo on-line. Seus dados de pedidos, produtos e usuários são armazenados em um cluster do Couchbase com os serviços de dados e de análise (em conjuntos separados de nós no cluster). A iMaz também armazena as avaliações dos produtos no Azure Blob Storage e gostaria de combinar e analisar os três produtos mais bem avaliados usando o Couchbase Analytics Service.
Amostra de dados do produto:
1 2 3 4 5 6 7 8 9 |
[{ "id": "Product_1", "docType": "Produto", "productId": 1, "price" (preço): 811.76, "salePrice": 70.14, "productName": "Bola de algodão ergonômica", "desc": "Bola de algodão ergonômica metálica fundida com plástico" }] |
Amostra de dados de revisão:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
{ "id": "Review_0001764a17a844279a2227e137cc4e36", "docType": "Revisão", "reviewId": "0001764a17a844279a2227e137cc4e36", "productId": 1, "userId": 5862, "reviewerName": "M. Schaefer", "reviewerEmail": "...@mmail.com", "classificação": 5, "título": "Funciona bem e atende às expectativas.", "revisão": "O produto funciona muito bem e comprarei mais um para minha família.", "reviewDate": 1597273484 } |
Vamos examinar cada uma das três etapas acima com um exemplo de código de configuração, juntamente com um SQL++ consulta. Aqui está um vídeo de demonstração para você também:
Etapa 1: Configurar os links
Criaremos um link do Azure Blob Storage usando um Chamada à API REST ou usando o Workbench do servidor Couchbase. Precisamos fornecer:
-
- Nome do host do Analytics Service
- Credenciais de usuário do Analytics
- Nome do link do Azure Blob Storage, neste caso myAzureLink
- Nome do escopo (anteriormente conhecido como dataverse), neste caso Padrão
- Tipo de link (AzureBlob)
- Credenciais (somente uma é permitida):
- Anônimo (sem credenciais)
- Chave compartilhada, ou
- Assinatura de acesso compartilhado, ou
- ID de identidade gerenciada, ou
- Segredo do cliente do Azure Active Directory ou
- Certificado de cliente do Azure Active Directory (e senha do certificado de cliente, se protegido por senha)
1 2 3 4 5 6 |
enrolar -u <nome de usuário>:<pwd> \ -X POST "http:///analytics/link/Default/myAzureLink" \ -d tipo=AzureBlob \ -d ponto final=https://.blob.core.windows.net/ \ -d accountName=... \ -d accountKey=... |
Abaixo está um instantâneo de como criar o link do AzureBlob usando o método de autenticação Shared Key usando o Couchbase Server Workbench:
Para obter mais detalhes sobre os métodos de autenticação compatíveis com o Azure Blob, verifique Link do Blob do Azure.
Etapa 2: Criar uma coleção externa do Analytics
Depois que os links externos são criados, as coleções externas do Analytics podem ser criadas usando instruções DDL que se referem aos nomes de links criados anteriormente. A seguir, a instrução DDL para criar a coleção do Analytics no link do Azure Blob Storage criado anteriormente:
1 2 3 4 5 |
CRIAR EXTERNO ANALÍTICA COLEÇÃO comentários sobre o produto azure ON `cb-análises-7-0-0-demonstração` AT myAzureLink USO "revisões" COM { "formato": "json", "include": "*.json" } ; |
Onde as configurações acima refletem o seguinte:
-
- comentários sobre o produto azureé o nome da coleção externa do Analytics.
- cb-analytics-7-0-0-demoé o nome do contêiner de Blob do Azure do qual a coleção externa do Analytics está lendo.
- myAzureLinké o nome do link no qual a coleção externa é criada (criada na etapa anterior).
- revisões: é o prefixo usado para ler os dados. Portanto, somente os arquivos sob o prefixo revisões O prefixo será lido.
- formatoé a propriedade que informa ao Analytics que os dados que estão sendo lidos são do tipo json.
- incluir (ou excluir): é a propriedade que informa ao Analytics para aplicar o filtro nos arquivos, de modo que somente os nomes de arquivos que satisfazem a condição do filtro sejam incluídos,
Conforme mostrado acima, depois que os links são criados, a criação da coleção externa do Analytics é independente do tipo de link. Várias coleções do Analytics podem ser criadas no mesmo link externo para apontar para diferentes contêineres de dados externos.
Atualmente, o recurso de coleta do Analytics externo é compatível com o JSON, CSV (valores separados por vírgula) e TSV (valores separados por tabulação), incluindo formatos de arquivo compactados GZIP (nomes de arquivos que terminam com .gz ou .gzip). Os formatos CSV e TSV exigem que você especifique uma definição de tipo em linha (mais sobre isso abaixo). Outros formatos de arquivo, como o parquet, serão suportados em versões futuras.
Mais detalhes sobre definições de tipos em linha podem ser encontrados aqui.
Etapa 3: Consulta usando o SQL++
Como última etapa, podemos agora executar a consulta SQL++ listada abaixo. Ela une a coleção de análise de produtos existente do Couchbase Analytics Service com os dados de análises de produtos do Azure Blob Storage para recuperar os três produtos mais bem avaliados.
1 2 3 4 5 6 |
SELECIONAR p.productName, AVG(s.classificação) AS `Classificação` DE comentários sobre o produto azure s, produtos p ONDE s.productId = p.productId GRUPO BY p.productName ORDEM BY AVG(s.classificação) DESC LIMITE 3; |
Aqui estão os Resultados da consulta JSON:
1 2 3 4 5 |
[ { "Classificação": 4.33, "productName": "Atum de borracha licenciado"}, { "Classificação": 4.29, "productName": "Linda salada de plástico"}, { "Classificação": 3.86, "productName": "Bicicleta de algodão inteligente"} ] |
Isso é ótimo - agora podemos combinar e analisar dados externos localizados no Armazenamento de Blobs do Azure usando o Couchbase Analytics Service. Observe como foram necessárias poucas etapas para que pudéssemos analisar nossos dados; Nenhum ETL foi envolvido e os dados ficaram imediatamente disponíveis! Além disso, se os dados forem alterados, veremos essas alterações quando executarmos novamente a consulta, pois os dados externos são acessados sob demanda no momento da execução da consulta.
Agora você deve estar se perguntando: "Como isso teria funcionado se o formato do arquivo de análises do Azure Blob Storage fosse do tipo CSV em vez de JSON?" A resposta é simples: você simplesmente teria definido sua coleção externa do Analytics de acordo. Abaixo, mostramos como seria a declaração de criação de coleção externa do Analytics acima para oferecer suporte a CSV:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
CRIAR EXTERNO ANALÍTICA COLEÇÃO comentários sobre o produto azure ( id STRING NÃO DESCONHECIDO, docType STRING NÃO DESCONHECIDO, reviewId STRING NÃO DESCONHECIDO, productId BIGINT, userId BIGINT, reviewerName STRING NÃO DESCONHECIDO, RevisorEmail STRING NÃO DESCONHECIDO, classificação BIGINT, título STRING NÃO DESCONHECIDO, revisão STRING NÃO DESCONHECIDO, reviewDate BIGINT ) ON `cb-análises-7.0.0-demonstração` AT myAzureLink USO "avaliações" COM { "formato": "csv", "include": "*.csv", "cabeçalho": falso }; |
Observe como a instrução create agora inclui informações de tipo em linha. O tipo é necessário para informar ao Analytics como interpretar os dados CSV (por exemplo, não apenas como cadeias de caracteres) a fim de transformá-los internamente no formato JSON.
A consulta SQL++ permanece exatamente a mesma. É isso mesmo, ela requer nenhuma mudança! As coleções do External Analytics são fáceis de configurar, flexíveis e simples de usar graças ao poder da linguagem SQL++. Os usuários podem desenvolver consultas ad hoc complexas para a exploração interativa de dados, responder a novas perguntas comerciais e combinar dados externos com dados de Links remotos para envolver também outras fontes de dados do Couchbase.
Benefícios
Aqui estão alguns dos principais benefícios decorrentes do uso de coleções externas do Analytics:
-
- Enriquecimento de dados. Os dados do Couchbase agora podem ser enriquecidos com informações adicionais obtidas de dados que residem em armazenamentos de dados externos.
- Acesso dinâmico a dados. Os dados mais atuais podem ser recuperados dinamicamente, transmitidos, combinados e analisados de qualquer contêiner do S3 ou do Azure Blob Storage (DP) em qualquer região durante a execução da consulta do Analytics.
- Processamento de consultas paralelas. Os usuários podem configurar e organizar o acesso a dados externos usando a arquitetura de processamento de consultas de processamento paralelo massivo (MPP) do Analytics para obter uma resposta rápida a consultas que envolvam dados externos.
Próximas etapas
Espero que você esteja animado com essa nova funcionalidade do Couchbase Analytics 7.1. As coleções do External Analytics desbloqueiam o valor dos dados externos ao vivo e arquivados que residem em armazenamentos de dados externos. Os usuários podem combinar e analisar dados em tempo real, provenientes do AWS S3, do Azure Blob Storage e do Couchbase Analytics Service. Isso permite análises de dados mais rápidas e abrangentes e uma tomada de decisão ágil.
Saiba mais sobre coleções externas do Analytics DDL.
Aqui estão mais recursos para ajudá-lo a começar:
Agradecimentos
Este post foi escrito em coautoria com Idris Motiwala. Idris é gerente de produto principal de análise na Couchbase, com mais de 20 anos de experiência em design, desenvolvimento e execução de produtos de software em empresas da Fortune 500 e startups, liderando equipes de transformação digital, nuvem e análise. Idris tem mestrado em gerenciamento de tecnologia e certificações em gerenciamento de produtos.