Desenvolvendo um Grande Aplicativo de Dados para Exploração e Descoberta de Dados

Dicas, técnicas e diretrizes práticas para ajudá-lo

Explorar big data e dados corporativos tradicionais é um requisito comum de muitas organizações. Neste artigo, descrevemos uma abordagem e diretrizes para indexar big data gerenciados pela plataforma baseada em Hadoop para uso com uma solução de descoberta de dados. Especificamente, descrevemos como dados armazenados no InfoSphere® BigInsights™ da IBM (uma plataforma baseada em Hadoop) pode ter push realizado para o InfoSphere Data Explorer, uma ferramenta sofisticada que permite que usuários corporativos explorem e combinem dados de diversas fontes de dados corporativos e externos.

Seeling Cheung, Senior Software Engineer, IBM

Seeling CheungSeeling Cheung é engenheira de software senior para a equipe IBM Big Data no IBM Silicon Valley Lab. Ela atualmente passa muito de seu tempo com clientes, ajudando-os a desenvolver soluções em torno da plataforma Big Data. Anteriormente, Seeling teve outros cargos técnicos avançados, incluindo responsabilidades em desenvolvimento para a tecnologia de federação e os recursos pureXML na equipe do banco de dados Distributed DB2. Ela passou a fazer parte da IBM após concluir seu bacharelado e mestrado em ciência da computação e trabalhar por dois anos na Oracle.



Luciano Resende, Senior Software Engineer, IBM

Luciano ResendeLuciano Resende é engenheiro de software senior na organização IBM Big Data and Analytics e trabalha no Data Explorer e no BigInsights. Luciano também faz parte da The Apache Software Foundation e é vice-presidente e diretor da Apache Community Development PMC. Ele também contribui para diversos outros projetos Apache. Luciano trabalhou anteriormente como membro da equipe Platform and Architecture na Shutterfly Inc. como arquiteto de serviços. Luciano tem interesse em big data, computação distribuída e SOA.



Scott Lindner, Senior Solution Architect, IBM

Scott LindnerScott Lindner é arquiteto de soluções senior para o IBM InfoSphere Data Explorer no Grupo Big Data Software da IBM e trabalhou anteriormente na Vivisimo, uma empresa de acesso a informações adquirida pela IBM em 2012. Ele se formou na Universidade Lehigh e é bacharel e mestre em ciência da computação.



Cynthia M. Saracco, Senior Solutions Architect, IBM

Cynthia SaraccoCynthia M. Saracco é arquiteta de soluções senior no Laboratório da IBM no Vale do Silício e especialista em tecnologias emergentes e gerenciamento de informações. Ela tem mais de 25 anos de experiência no segmento de mercado de software, escreveu três livros e mais de 70 trabalhos técnicos e possui sete patentes.



31/Jul/2013

Introdução

Se você tiver acompanhando muitos dos primeiros casos de referência em torno de big data, pode ser que tenha passado a acreditar no ditado de que "você não sabe o que não sabe". Realmente, os aplicativos de big data frequentemente focam a compilação de insights de negócios de dados que poderiam do contrário ser descartados ou ignorados por diversas razões. Cada vez mais, as empresas estão procurando desenvolver uma estratégia de gerenciamento de informações abrangente que envolve mais do que simplesmente explorar ou analisar big data. Especificamente, elas querem integrar big data às suas estratégias gerais de gerenciamento de informações juntamente com sistemas de dados existentes, incluindo DBMSes relacionais, sistemas de gerenciamento de conteúdo corporativo, data warehouses etc.

Este artigo examina um aspecto desse desafio, descrevendo uma arquitetura e abordagem para indexar big data e fontes de dados tradicionais, assim como fornecendo uma interface baseada na web para descobrir novos insights nessas fontes de dados díspares. Especificamente, descreve como o Data Explorer, uma plataforma de descoberta de dados, pode indexar dados gerenciados pelo InfoSphere BigInsights, permitindo que formatos persistentes de big data sejam combinados com dados corporativos existentes. Tanto o Data Explorer quanto o BigInsights são componentes chave da plataforma de big data da IBM, então, vamos começar com uma visão geral dessa plataforma e dessas duas ofertas chave.


Visão Geral da Plataforma de Big Data da IBM

A plataforma de big data da IBM é projetada para ajudar organizações a explorar, analisar e gerenciar uma ampla gama de dados, incluindo dados de fluxo, dados de negócios tradicionais e dados "não convencionais" ou auxiliares que anteriormente tinham dificuldade de serem incorporados a plataformas de business intelligence e analíticas para a empresa. Vamos dar uma olhada nessa plataforma rapidamente antes de focarmos dois componentes chave. — InfoSphere Data Explorer e InfoSphere BigInsights — para o restante deste artigo.

Figura 1 representa a arquitetura da plataforma de big data da IBM, que difere de outras ofertas comerciais na amplitude de seus recursos. Trabalhando de cima para baixo, verá que a plataforma IBM apresenta ferramentas e tecnologias para visualizar e descobrir insights em diversas fontes de dados, desenvolver aplicativos analíticos e gerenciar seu ambiente. O Data Explorer fornece recursos chave de visualização e descoberta para a plataforma de big data da IBM, portanto, vamos discutir esse componente em mais detalhes em breve. Os aceleradores mostrados na Figura 1 são kits de ferramentas fornecidos pela IBM que incluem dezenas de artefatos de software pré-desenvolvidos para ajudar as empresas a implementarem rapidamente soluções para analisar mídia social e dados de máquina (ou seja, registros de log). Três mecanismos de processamento de dados permitem que as organizações trabalhem de forma efetiva com a variedade, volume e velocidade inerentes de big data. Esses mecanismos incluem um sistema baseado em Hadoop (BigInsights, que iremos discutir posteriormente em mais detalhes), um plataforma de stream computing (InfoSphere Streams) e uma plataforma de data warehouse (como PureData™ for Analytics ou DB2®). Por fim, a plataforma de big data da IBM inclui conectividade com outros software corporativos populares, incluindo DBMSes relacionais, plataformas de extração/transformação/carregamento, ferramentas de business intelligence, sistemas de gerenciamento de conteúdo e mais.

Figura 1. Arquitetura da Plataforma de Big Data da IBM
Arquitetura da Plataforma de Big Data da IBM

Visão Geral do InfoSphere BigInsights

O InfoSphere BigInsights é a plataforma da IBM para persistir e analisar muitos formatos de big data. Com base no projeto Apache Hadoop de software livre, o BigInsights é projetado para ajudar as empresas a descobrirem e analisarem insights de negócios ocultos em grandes volumes de dados que, do contrário, poderiam ser ignorados ou descartados porque são pouco práticos ou difíceis de processar usando os meios tradicionais. Exemplos desses dados incluem registros de logs, fluxos de cliques, dados de mídia social, feeds de notícias, emails, saída de sensor eletrônico e, até mesmo, alguns dados transacionais.

Para ajudar as empresas a derivarem valor de forma eficiente desses tipos de dados, o BigInsights Enterprise Edition inclui diversos projetos de software livre do ecossistema Hadoop, assim como diversas tecnologias desenvolvidas pela IBM que aprimoram e estendem o valor desse software livre. Como a Figura 2 indica, essas tecnologias variam de aceleradores de aplicativos a recursos analíticos, ferramentas de desenvolvimento, melhorias de plataformas e integração de software corporativo. Por exemplo, clientes do BigInsights podem usar recursos sofisticados de analítica de texto para extrair conteúdo e contexto de documentos, email e mensagens. Desenvolvedores de aplicativos podem implementar assistentes baseados no Eclipse para acelerar o desenvolvimento de aplicativos Java™ MapReduce, Jaql, Hive, Pig e de analítica de texto customizados. Administradores podem gerenciar e monitorar seus ambientes BigInsights por meio de um console da web integrado e usuários corporativos podem ativar aplicativos fornecidos pela IBM ou desenvolvidos de forma customizada por um catálogo baseado na web.

Neste artigo, vamos focar um subconjunto de recursos do BigInsights, como analítica de texto e ferramentas do ciclo de vida do aplicativo. Para mais informações sobre o BigInsights, consulte Recursos.

Figura 2. Arquitetura do InfoSphere BigInsights
Arquitetura do InfoSphere BigInsights

Visão Geral do InfoSphere Data Explorer

O InfoSphere Data Explorer permite indexar grandes conjuntos de dados estruturados, não estruturados e semiestruturados de fontes de dados díspares. Também fornece a capacidade de desenvolver aplicativos de exploração de big data e aplicativos de informações de 360 graus. O InfoSphere Data Explorer permite que o usuário crie uma visualização de informações relevantes sobre diferentes entidades como clientes, produtos, eventos, parceiros etc. de grandes conjuntos de dados armazenados em diferentes repositórios de dados internos e externos sem precisar mover dados.

Um desafio chave nas empresas de hoje é que usuários não podem localizar rapidamente as informações necessárias para solucionar um problema de negócios ou para concluir uma tarefa. Frequentemente, dados estão espelhados por diferentes sistemas para suportarem aplicativos específicos gerenciados por diferentes organizações. Além disso, novas fontes de dados estão surgindo como recursos críticos que as pessoas podem precisar considerar em seu trabalho no dia a dia e para tomarem decisões importantes, como mídia social, feeds de dispositivos móveis, Twitter etc.

Como um exemplo, informações do cliente, como informações de contato, produtos comprados, tickets de serviço abertos e informações de garantia, são armazenadas em diferentes aplicativos de negócios, como CRM, sistemas de criação de ticket de suporte, portal de marketing etc. Imagine um vendedor que deseje ligar para um cliente para uma venda incrementada. Ele precisa primeiro efetuar login em 10 aplicativos para agregar os dados sobre o cliente ou falar com cinco pessoas para entender todas essas informações.

O Data Explorer aborda esse desafio chave. Informações são armazenadas em muitos sistemas e silos diferentes, no entanto, os usuários precisam de uma maneira consistente para visualizar todos os dados e navegar rapidamente ao que é mais relevante para eles. O desafio é entregar informações no ponto de impacto no qual funcionários mais precisam delas para tomarem decisões.

Figura 3. Arquitetura do InfoSphere Data Explorer
Arquitetura do InfoSphere Data Explorer

Integração do BigInsights e do Data Explorer

O BigInsights e o Data Explorer se complementam, permitindo que organizações expandam o escopo de informações que podem analisar de maneira consistente e coerente. Por exemplo, o BigInsights é frequentemente usado para armazenar conteúdo não estruturado e semiestruturado. Além do mais, a necessidade de explorar e navegar pelo conteúdo está se tornando mais crítica — frequentemente em uma interface semelhante à de procura. Isso permite que as informações sejam mais consumíveis pelo usuário da linha de negócios. Por exemplo, se você estiver armazenando dados de máquina, um usuário final pode querer navegar por datas de conteúdo, procurar tipos de falhas de máquina específicos etc. Por outro lado, se estiver armazenando dados sociais, um usuários final pode querer procurar sentimentos do usuário relacionados a produtos. Tudo isso requer uma capacidade de indexação rica. Além da indexação, o Data Explorer pode fornecer uma experiência de usuário rica, incorporando conteúdo do BigInsights e outro conteúdo corporativo para permitir a exploração total de big data.


Cenário de amostra

Para implementar tal arquitetura, precisamos seguir diversas etapas. Vamos resumi-las aqui e explorá-las em mais detalhes posteriormente:

  • Coletar e preparar seus dados de mídia social para análise
    • O BigInsights fornece diversos mecanismos de coleta de dados por meio de aplicativos pré-desenvolvidos. Quando as postagens de mídia social baseados em texto residirem no BigInsights, será necessário extrair informações de interesse para que possam ser facilmente indexadas e exploradas posteriormente. O BigInsights fornece recursos sofisticados de analítica de texto para ajudá-lo a extrair suas entidades de interesse, incluindo produto, pessoas e sentimentos sobre produtos.
  • Modelar entidades de negócios e relacionamentos de interesse
    • Um aplicativo pode dar um impulso nesse processo, especificando um modelo de entidade para o Data Explorer para ajudar a configurar várias opções de configuração que iremos mostrar em breve. Esse modelo de entidade é crítico para o sucesso geral do cenário de seu aplicativo.
    • O modelo de entidade irá capturar o conjunto de entidades de negócios e relacionamentos importantes em que seus analistas de negócios estarão interessados para procura, descoberta e exploração no Data Explorer. Assim, um design de modelo de entidade efetivo irá presumir um entendimento de como e o que os analistas de negócios gostariam de procurar e explorar.
    • O modelo de entidade irá capturar o conjunto de configurações importantes de seu cluster do Data Explorer para refletir seu planejamento de capacidade e implementação. Um pouco mais tarde, você verá como capturamos produtos e tweets como entidades de negócios chave de interesse, especificamos ainda mais os relacionamentos entre essas entidades e fornecemos as informações de implementação de topologia do cluster do Data Explorer.
  • Desenvolver seu primeiro aplicativo de indexação para indexar dados sociais extraídos no Data Explorer
    • Você estará pronto para desenvolver seu aplicativo de indexação alavancando o ciclo de vida de desenvolvimento do aplicativo BigInsights, que permite criar, publicar e implementar seu aplicativo com mínimo esforço. Uma vez implementado, a extração da entidade de seus dados sociais terá push realizado para uma coleção de procura do Data Explorer e estará pronta para exploração adicional usando o recursos de procura facetado do Data Explorer e para desenvolver um aplicativo de visualização de 360 graus.
  • Usando o Data Explorer para visualização
    • O Data Explorer Application Builder fornece uma maneira de desenvolver um aplicativo que reúne as informações relevantes sobre dados espalhados entre diferentes sistemas. Em nosso cenário de amostra, um executivo de planejamento de produto pode se importar com um produto ou família de produtos, de forma que um aplicativo com visualização de 360 graus possa incluir feedbacks, problemas de produtos e interações passadas de clientes.

Coletar e Preparar seus Dados de Mídia Social no BigInsights para Análise

O BigInsights fornece diversos mecanismos de coleta de dados por meio de aplicativos pré-desenvolvidos, como os aplicativos Boardreader.

Figura 4. Aplicativos Boardreader
Aplicativos Boardreader

É possível coletar seus dados sociais e armazená-los no BigInsights, alavancando diversas opções de armazenamento, incluindo os sistemas de arquivos distribuídos e um mecanismo de armazenamento como HBase.

Figura 5. Sistemas de Arquivos Distribuídos e Mecanismos de Armazenamento BigInsights
Sistemas de Arquivos Distribuídos e Mecanismos de Armazenamento BigInsights

Quando as postagens de mídia social baseadas em texto residirem no BigInsights, será necessário extrair informações de interesse para que possam ser facilmente indexadas e exploradas posteriormente. BigInsights fornece recursos sofisticados de analítica de texto para ajudar a extrair sentimentos relacionados a produtos e extrair perfis de usuários de mídia social. A figura a seguir mostra fragmentos de saída de extração de entidade e sentimento dos dados sociais, destacando alguns campos de interesse para a extração dessa entidade, incluindo Category, Brand, Product, Source, IsSentiment, IsCustomerOf, Polarity, Created Time, FullName, Screenname, UserID, Text.

Figura 6. Publicar um Tweet de Sentimento sobre o Produto
Publicar um Tweet de Sentimento sobre o Produto

Projetar e Gerenciar seu Modelo de Entidade do Aplicativo

Quando tiver a extração da entidade da analítica de texto do BigInsights do sistema anterior, você estará pronto para projetar o modelo de entidade do Data Explorer.

Esta seção abrange um conjunto de elementos em seu modelo de entidade a ser considerado em sua solução e projetá-los em seu modelo. Este processo irá assegurar que sua solução de aplicativo atenderá o padrão de acesso e exploração dos dados de que seus analistas de negócios precisam para entregar um ambiente de procura escalável para seus big data. Vamos resumir o conjunto de etapas nesse processo de design e explorá-los em mais detalhes em breve:

  • Determine o conjunto importante de entidades de negócios e relacionamentos que está interessado em suportar para procura e exploração adicionais no Data Explorer e identifique a variedade de fontes que estarão fornecendo nas quais essas entidades de negócios podem estar distribuídas.
  • Capture essas entidades e relacionamentos no modelo de entidade de seu cenário.
  • Determine a escalabilidade de seu cluster do Data Explorer e projete essas especificações em seu modelo de entidade. Essas especificações determinarão a escalabilidade de sua implementação do Data Explorer.
  • Implemente seu modelo de entidade no cluster Zookeeper para gerenciamento centralizado de definições de configuração.

Determinando o Conjunto de Entidades de Negócios Importantes e Relacionamentos para Desenvolver Informações Contextuais

Em nosso cenário de amostra, acumulamos dados internos sobre clientes existentes e nossos produtos. Esses dados são armazenados em um DBMS relacional. Além disso, há tweets sociais que coletamos e dos quais extraímos os sentimentos dos usuários com relação a nossos produtos usando analítica de texto do BigInsights. Nossos analistas de negócios podem querer obter uma visão mais abrangente de como os clientes percebem nossos produtos e da visibilidade que nossos produtos têm no mercado em geral. A combinação de dados corporativos e de mídia social pode, assim, fornecer mais insights para nossa análise de negócios. Identificamos que as entidades a seguir serão de excelente interesse para nosso analista de negócios:

  • Sentimento dos usuários com relação aos produtos extraídos de dados sociais no BigInsights
  • Dados dos produtos armazenados em um banco de dados relacional
  • Clientes online armazenados em um banco de dados relacional

Igualmente importante é a necessidade de fornecer as informações contextuais certas para os analistas de negócios. Para atingir esse objetivo, é necessário definir o conjunto de relacionamentos entre as entidades. Relacionamento é o elemento crucial usado pelo Data Explorer Application Builder para vincular a interação entre entidades e fornecer o benefício crítico de desenvolver as informações contextuais. Por exemplo, em nosso cenário, é necessário capturar o fato de que tweets estão associados a usuários (clientes) específicos e alguns tweets podem estar relacionados a produtos.

Capturando estas Entidades e qualquer Relacionamento Importante no Modelo de Entidade

O modelo de entidade do Data Explorer está em um formato XML. Use um editor de XML de sua opção para criar um novo arquivo para o modelo de entidade:

  • Incluindo a entidade sentiment:
    • O fragmento para incluir a entidade sentiment no modelo de entidade será semelhante à listagem a seguir: Ela inclui as informações adicionais para os campos que desejamos capturar para permitir que sejam usados no aplicativo de procura que o Data Explorer Application Builder pode desenvolver.
      Lista 1. Entidadesentiment definition
      <entity-definition default-searchable="true" identifier="@hash"
      name="tweet" store-name="tweet-search-store">
          <field external-name="Category" name="Category"/>
          <field external-name="Brand" name="Brand"/>
          <field external-name="Product" name="Product"/>
          <field external-name="IsSentiment" name="IsSentiment"/>
          <field external-name="Polarity" name="Polarity"/>
          <field external-name="CreatedTime" name="CreatedTime"/>
          <field external-name="Screenname" name="Screenname"/>
      </entity-definition>
  • Incluindo a entidade products:
    • O fragmento para incluir a entidade product e os campos relacionados no modelo de entidade será semelhante à listagem a seguir:
      Lista 2. Entidadeproduct definition
      <entity-definition default-searchable="true" identifier="@hash"
      name="product" store-name="product">
          <field external-name="BRAND" name="BRAND"/>
          <field external-name="PRODUCT_NUMBER" name="PRODUCT_NUMBER"/>
          <field external-name="PRODUCT_BRAND_CODE" name="PRODUCT_BRAND_CODE"/>
          <field external-name="PRODUCT_DESCRIPTION" name="PRODUCT_DESCRIPTION"/>
      </entity-definition>
  • Incluindo os relacionamentos essenciais entre nossas entidades:
    • Relacionamento é o elemento crucial usado pelo Data Explorer Application Builder para vincular a interação entre entidades e fornece o benefício crítico de desenvolver as informações contextuais. Como um exemplo para nosso cenário, podemos querer capturar o fato de que alguns tweets estão relacionados a produtos. As definições de relacionamentos podem ser semelhantes à listagem a seguir:
      Lista 3. Definição de relacionamento
      <entity-definition default-searchable="true" identifier="@hash"
      name="product" store-name="product">
         ...
         <association-definition name="feedback" to="FEEDBACK_TYPE">
      	<link from-field="BRAND" fuzzy="false" to-field="Brand"/>
         </association-definition>
      </entity-definition>

Fornecer Especificações de Topologia para seu Cluster do Data Explorer

  • Especificando armazenamento de coleção de cluster para o Data Explorer:
    • Quando tiver identificado entidades de interesse e relacionamentos, será necessário desenvolver um índice para suporte à procura, descoberta e análise. Para fazer isso, é necessário especificar um mecanismo de armazenamento — um armazenamento de coleção— para esse índice. Para casos de uso envolvendo o BigInsights, como nosso cenário, o ideal seria usar um armazenamento de coleção de cluster. É um dos diversos tipos de armazenamentos de coleção suportados pelo Data Explorer. Escolher o tipo de armazenamento de coleção de cluster permitirá que o mecanismo do Data Explorer alavanque um cluster de máquina para escalar horizontalmente para manipular uma escala maior de indexação para dados do BigInsights.
    • O fragmento a seguir mostra como especificar o armazenamento de coleção de cluster para indexar dados sociais vindos do BigInsights. A outra entidade que representa os dados do DBMS relacional usará a coleção simples mais típica.
      Lista 4. Armazenamento de Coleção de Cluster para Dados do BigInsights
      <cluster-collection-store activity-collection="false"
          collection-name="tweet-search-store"
          monitor-activities="false"
          name="tweet-search-store"
          base-collection="default-push"
          n-shards="2"/>
      <collection-store activity-collection="false"
          collection-name="gssdb-product"
          monitor-activities="false"
          name="product"/>
  • Especificando a escalabilidade de seu cluster do Data Explorer:
    • Incluir shards em seu aplicativo de procura permite que dados sejam particionados horizontalmente, principalmente quando esses shards estão espalhados por diversas instâncias físicas do Data Explorer. O desempenho geral pode ser aumentado ao manipular grandes quantias de dados já que as operações de indexação e procurar estão distribuídas em um ambiente em cluster. Reutilizando o exemplo de modelo de entidade acima, especificamos o número de shards em nosso armazenamento de coleção de cluster e espalhamos os mesmos entre duas instâncias físicas diferentes do Data Explorer.
      Lista 5. Especificando Escalabilidade para Dados do BigInsights
      <velocity-instance url="http://velocity1.domain.com:9080/vivisimo/cgibin/
      velocity?v.app=api-soap&amp;wsdl=1&amp;use-types=true&amp;"
          username="api-user"
          password="password">
          <serves name="tweet-search-store"
         	 shard="1"
         	 n-shards="2"
         	 port="9081"/>
          <serves name="tweet-search-store"
         	 shard="2"
         	 n-shards="2"
         	 port="9082"/>
          </velocity-instance>
          <velocity-instance url="http://velocity2.domain.com:9080/vivisimo/cgibin/
      velocity?v.app=api-soap&amp;wsdl=1&amp;use-types=true&amp;"
          username="api-user"
          password="password">
          <serves name="tweet-search-store"
         	 shard="1"
         	 n-shards="2"
         	 port="9081"/>
          <serves name="tweet-search-store"
         	 shard="2"
         	 n-shards="2"
         	 port="9082"/>
          </velocity-instance>

Usando o ZooKeeper para Gerenciar seu Modelo de Entidade do Data Explorer

O Data Explorer usa o ZooKeeper para gerenciar o modelo de entidade de seu aplicativo. O Zookeeper é um serviço centralizado para manter informações de configuração, fornecer sincronização distribuída e fornecer serviços de grupo. Agora que definimos nosso modelo de entidade de aplicativo, precisamos disponibilizá-lo para o aplicativo fazendo upload para um cluster do ZooKeeper. Esse cluster de configuração será usado pelo aplicativo para descobrir a topologia de implementação em uso:

  • Upload de seu modelo de entidade para o cluster do ZooKeeper:
    • Quando seu cluster do ZooKeeper estiver configurado, será possível fazer upload e gerenciar seu modelo de entidade de aplicativo do Data Explorer usando esse cluster do ZooKeeper. O JAR bigindex incluído na pasta lib do ZIP da API BigIndex do Data Explorer é um executável que pode ser usado como uma ferramenta básica de linha de comando para fazer upload e gerenciar o modelo de entidade no ZooKeeper. O uso da linha de comandos é mostrado abaixo.
      Lista 6. Upload do Modelo de Entidade para o Cluster do ZooKeeper
      java -jar bigindex-2.0.0.jar 
             --properties-file zookeeper.properties 
             --import-file scenario_entity_model.xml 
             --export-to-screen --legacy-model

      Observe que se você usar a UI administrativa do Data Explorer Application Builder para gerenciar seu modelo de entidade de aplicativo, é possível ignorar a etapa acima e, como alternativa, apontar seu aplicativo para a mesma instância e namespace do servidor do ZooKeeper usados pelo Data Explorer Application Builder. É possível localizar detalhes adicionais sobre a configuração do ZooKeeper que está sendo usada no zookeeper.yml localizado em IBM/IDE/AppBuilder/wlp/usr/servers/AppBuilder/apps/AppBuilder/WEB-INF/config.


Desenvolvendo seu Primeiro Aplicativo de Indexação do BigInsights com o Data Explorer

Quando tiver concluído o design de seu modelo de entidade do Data Explorer, você estará pronto para alavancar o ciclo de vida de desenvolvimento do aplicativo do BigInsights para desenvolver seu primeiro aplicativo de indexação para realizar o push de seus dados sociais para uma coleção de procura no Data Explorer. A estrutura de aplicativo do BigInsights permite criar, publicar e implementar seu primeiro aplicativo de indexação com esforço mínimo.

Criar um Projeto do BigInsights e Criar uma Nova Classe Java

É necessário criar um projeto apropriado para seu aplicativo, como é de se esperar de qualquer esforço de desenvolvimento de aplicativo com base no Eclipse. Consulte o artigo "Developing, publishing, and deploying your first Big Data application with InfoSphere BigInsights" para criar um projeto do BigInsight (consulte Recursos). Após criar o projeto do BigInsights, será necessário incluir uma nova classe Java no projeto. Para fazer isso, a partir de seu ambiente Eclipse, selecione File > New > Java > Class. Preencha as informações para sua classe (nome do pacote etc.) e ao concluir, clique em Finish.

Usando Novas APIs BigIndex para Indexar Dados do BigInsight no Data Explorer

Seu aplicativo chamará um conjunto de APIs Java de indexação pelo Data Explorer (APIs BigIndex) para realizar o push de dados do BigInsights. As etapas a seguir mostram as várias partes chave das APIs para realizar esse objetivo:

  • Recuperando a topologia de implementação do Data Explorer para indexação:
    • Como você se lembra da seção anterior no modelo de entidade, a topologia de cluster do Data Explorer é capturada no modelo de entidade transferido por upload para o ZooKeeper. Seu aplicativo de indexação precisará estabelecer uma conexão com esse cluster do ZooKeeper para recuperar a topologia e localizar o cluster do Data Explorer para indexação. A listagem a seguir é um fragmento de código que realiza essa tarefa.
      Lista 7. Estabelecendo Conexão com o Cluster do ZooKeeper
      ZookeeperConfiguration zookeeperConfiguration =
      new ZookeeperConfiguration("namespace_sample_big_data_app",
      new ZookeeperEndpoint("zkhost1.domain.com", 2181));
  • Usando um analisador de campo para processar seu formato de dados de entrada:
    • Quando a instância do Data Explorer que vamos usar para indexação estiver estabelecida, estaremos prontos para processar nossos dados de entrada para indexação. Para nosso cenário de amostra, os dados sociais são capturados em formato CSV. Podemos precisar usar o analisador OpenCSV de software livre para analisar cada arquivo CSV e processar cada linha em uma lista de valores chave. Isso irá preparar os dados no formato certo para o mecanismo de indexação do Data Explorer. Abaixo está um fragmento de código para fornecer uma amostra da lógica de aplicativo para analisar dados CSV. Observação: Será necessário usar o analisador de campo apropriado para processar o formato de dados de seus dados de entrada para indexação.
      Lista 8. Código de Amostra para Analisar Dados CSV
      // Read each  CSV input file stored on BigInsights HDFS
      for (FileStatus fStatus : listFilesFromHDFS(inputDirectory)) {
      
        // For each CSV file, parse each row into a list of key values
        CSVReader reader = 
          new CSVReader(new InputStreamReader(fs.open(fStatus.getPath())));
          
        // For each key, we will show later how to index it into 
        // the Data Explorer index record
        while((listOfFields = reader.readNext())!= null){
        ...
  • Definindo seu esquema de registro para dados sociais de amostra:
    • O indexador do Data Explorer também espera que o aplicativo defina o esquema de um registro de índice. A listagem a seguir mostra o fragmento de código Java usando a API BigIndex do Data Explorer para definir o esquema de registro para os vários campos chave de nossos dados de Tweet. Observação: Na chamada a seguir a addRecordType(), o valor de entrada deve corresponder ao nome da entidade conforme definido em seu modelo de entidade. Em nosso cenário, o nome da entidade é "tweet".
      Lista 9. Definindo Esquema de Registro
      RecordSchema recordSchema = new RecordSchemaBuilder()
          .addRecordType("tweet")
         	 .addTextField("Category").retrievable(true).sortable(true)
         	 .addTextField("Brand").retrievable(true).sortable(true)
         	 .addTextField("Product").retrievable(true).sortable(true)
         	 .addTextField("isSentiment").retrievable(true).sortable(true)
         	 .addDateField("CreatedTime").retrievable(true).sortable(true)
         	 .addTextField("Screenname").retrievable(true).sortable(true)
          .build();
  • Indexando os registros no mecanismo do Data Explorer:
    • Agora que concluiu a definição do esquema de um registro, você está pronto para incluir cada campo do registro no índice e continuar com o próximo registro até concluir a indexação de todos os registros em seus dados de tweet social. Abaixo está o fragmento de código para mostrar indexação dos registros no mecanismo do Data Explorer. Observação: Na chamada a newRecordBuilder(), o valor deve corresponder ao nome da entidade conforme definido em seu modelo de entidade. Por exemplo, em nosso cenário de amostra, o nome da entidade é "tweet".
      Lista 10. Indexando Registros
      RecordBuilderFactory recordBuilderFactory = 
         new RecordBuilderFactory(recordSchema);
         
      // In the following call, provide the name of 
      // the entity as defined in the entity model
      RecordBuilder recordBuilder = 
         recordBuilderFactory.newRecordBuilder("tweet");
         
      // For each CSV row that's been parsed into a list of fields
      while((listOfFields = csvreader.readNext())!= null){
         recordBuilder.id(String.valueOf(recordId++));
         
         // For each field, set field name and field value
         while (i != listOfFields.length){
           String fieldName = listOfFieldNames[i];
           String fieldValue = listOFields[i];
           
           // Add the field to the indexing record
           recordBuilder = recordBuilder.addField(fieldName, fieldValue);
           ...
         }
      }
      
      // Finally, call to generate the record with the 
      // current data and add it to the indexer
      RequestStatus status = indexer.addOrUpdateRecord(recordBuilder.build());

Publicar e Implementar seu Aplicativo de Indexação

Após desenvolver seu aplicativo de indexação, você estará pronto para publicá-lo no catálogo de aplicativos do BigInsights. Empacotar e publicar seu aplicativo de indexação permite definir o fluxo de trabalho do aplicativo, especificar parâmetros, como dados de entrada (seus dados de mídia social) e seu terminal do ZooKeeper do Data Explorer. Consulte o artigo "Developing, publishing, and deploying your first Big Data application with InfoSphere BigInsights" para obter as etapas rápidas para criar um projeto do BigInsight (consulte Recursos) para obter uma visão geral das etapas de publicação de seu aplicativo do BigInsights. Durante esse processo de publicação, as informações a seguir devem ser publicadas para seu aplicativo de indexação:

  • Tipo de aplicativo:
    • Selecione o fluxo de trabalho do tipo de aplicativo, conforme mostrado na Figura a seguir.
      Figura 7. Tipo de aplicativo
      Tipo de aplicativo
  • Definição do fluxo de trabalho Oozie:
    • O console da web do BigInsights gera um fluxo de trabalho Oozie para ajudar a gerenciar tarefas MapReduce. Na guia workflow, aceite o padrão de permitir que o assistente crie uma nova ação: workflow.xml. No menu suspenso, altere o tipo de fluxo de trabalho para Java, conforme mostrado abaixo.
      Figura 8. Tipo de Ação do Fluxo de Trabalho Oozie
      Tipo de Ação do Fluxo de Trabalho Oozie
  • Indexando parâmetros de aplicativos:
    • Na página Parameters, especifique o parâmetro para seu aplicativo de indexação, incluindo o diretório de entrada. Como opção, também é possível fornecer as informações do terminal do ZooKeeper como um parâmetro de entrada para o aplicativo de indexação, em vez de tê-lo codificado permanentemente no aplicativo. O fluxo de trabalho final pode ser semelhante à figura a seguir.
      Figura 9. Amostra do Fluxo de Trabalho Oozie
      Amostra do Fluxo de Trabalho Oozie

Configurando Bibliotecas do Cliente do Data Explorer no Cluster do BigInsights

Antes de executar seu aplicativo de executar, é necessário configurar determinadas bibliotecas do cliente do Data Explorer no cluster do BigInsights.

  • Copie a pasta install-dir/AppBuilder/bigindex.zip da instalação de seu cluster do Data Explorer para o sistema de arquivos local do cluster do BigInsights.
  • Descompacte a pasta bigindex.zip. Você vê a lista de arquivos JAR de dependência do Data Explorer.
  • Crie um diretório HDFS como /biginsights/oozie/sharedLibraries/DataExplorer.
  • Copie os arquivos JAR de dependência do Data Explorer para o diretório HDFS /biginsights/oozie/sharedLibraries/DataExplorer usando o comando de cópia do Hadoop (por exemplo, hadoop fs -copyFromLocal *jar /biginsights/oozie/sharedLibraries/DataExplorer/) ou use o Console do BigInsights para fazer upload dos arquivos para o diretório HDFS.

Monitorando seu Aplicativo de Indexação

Quando seu aplicativo for implementado, ele aparecerá no console da web do BigInsights, conforme mostrado na figura a seguir. É possível usar o console da web para inspecionar detalhes do aplicativo e executá-lo. É possível saber mais sobre o console da web do BigInsights para monitorar seu fluxo de trabalho consultando o artigo "Exploring your InfoSphere BigInsights cluster and sample applications" (consulte Recursos).

Figura 10. Aplicativo de Indexação do BigInsights
Aplicativo de Indexação do BigInsights

Visualizando com o Data Explorer

Verificando seus Dados Sociais no Índice do Data Explorer

Quando seus dados sociais tiverem push realizado do BigInsights para coleções de procura no Data Explorer, você deve ser capaz de usar a UI administrativa do Data Explorer Engine para inspecionar os dados indexados. Por exemplo, é possível verificar visualmente que os vários campos de interesse foram indexados conforme necessário. Para acessar a UI do administrador, siga as etapas abaixo:

  • Efetue login na UI administrativa do Data Explorer Engine.
  • Selecione Search Collection no menu esquerdo.
  • Procure o armazenamento de coleção para os dados sociais, conforme especificado em seu modelo de entidade.
  • Abra a coleção de procura e clique no botão Search no painel esquerdo.
    Figura 11. UI Administrativa do Data Explorer Engine
    UI Administrativa do Data Explorer Engine
  • Procurando tweets do usuário sobre o produto:
    • Na caixa search, um usuário pode digitar palavras-chave, como golf para executar procura de texto usando a interface existente, conforme mostrado na figura a seguir.
      Figura 12. Procura de Texto em Tweets do Usuário Relacionados a Golf
      Procura de Texto em Tweets do Usuário Relacionados a Golf

Alavancando o Data Explorer Application Builder

O Application Builder é novo no Data Explorer e fornece a estrutura para desenvolver aplicativo de exploração de dados convincentes, como procura facetada, assim como aplicativos de informações de 360 graus que podem reunir as informações relevantes sobre dados espalhados entre os sistemas.

  • Procura facetada:
    • A figura a seguir ilustra o widget de procura que pode ser desenvolvido usando o Application Builder para fornecer um aplicativo de procura facetada intuitivo para usuários que estejam explorando seus dados sociais. A procura facetada permite navegar facilmente pelos conjuntos de resultados sobre um tópico específico usando um conjunto de refinamentos. Neste exemplo, exploramos tweets de usuários sobre produtos como golf, conforme mostrado.
      Figura 13. Procura Facetada para Tweets de Usuários Relacionados a Golf
      Procura Facetada para Tweets de Usuários Relacionados a Golf
  • Aplicativo de informações de 360 graus:
    • Após explorar aspectos dos dados sociais, também é possível relacioná-los a tipos de dados adicionais, como dados de clientes ou de produtos, que podem ser extraídos de outros sistemas. O Data Explorer fornece conectividade e capacidade de crawl para vários bancos de dados relacionar, sistemas CRM corporativos, compartilhamentos de arquivos e outros. O Data Explorer Application Builder fornece a maneira para desenvolver um aplicativo de visualização de 360 graus que reúne as informações relevantes sobre dados espalhados entre esses sistemas díspares, tudo isso deixando os dados onde residem originalmente.
      Figura 14. Aplicativo de Visualização de 360 Graus
      Aplicativo de Visualização de 360 Graus

      Em nosso cenário de amostra, um analista de marketing pode se importar com um produto ou família de produtos, de forma que um aplicativo com visualização de 360 graus possa incluir feedback do usuário e detalhes do produto. A figura a seguir ilustra uma página de produto na qual diversos widgets são reunidos, exibindo informações do produto com comentários relacionados do usuário. Para obter informações adicionais sobre desenvolvimento de páginas de entidade com diversos widgets mostrados aqui, consulte Recursos.

      Figura 15. Aplicativo de Visualização de 360 Graus — Página da Entidade
      Aplicativo de Visualização de 360 Graus Página da Entidade

      Observe que as figuras 14 e 15 demonstram um aplicativo de 360 graus e envolvem dados de diferentes sistemas que não foram mencionados neste artigo.


Resumo

Este artigo explorou uma arquitetura de software que permite que analistas de negócios explorem dados derivados de várias fontes díspares com facilidade e eficiência. Especificamente, examinamos como o InfoSphere Data Explorer pode indexar big data de mídia social gerenciados pelo InfoSphere BigInsights, assim como dados estruturados gerenciados por fontes de dados corporativas mais tradicionais. A indexação dos dados permite acesso eficiente, enquanto que os recursos de procura facetada do Data Explorer fornecem uma maneira intuitiva para que não programadores explorem esses dados, analisem relacionamentos e obtenham insight.


Agradecimentos

Os autores gostariam de agradecer alguns de seus colegas que trabalharam nessa tecnologia e aqueles que contribuíram com ideias para este artigo. Em ordem alfabética: Stephen Brodsky, Jean Lange, Stacy Leidwinger, Alex Tambellini e Tuong Truong.

Recursos

Aprender

Obter produtos e tecnologias

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Information Management
ArticleID=938862
ArticleTitle=Desenvolvendo um Grande Aplicativo de Dados para Exploração e Descoberta de Dados
publish-date=07312013