TEORIAS ANALÍTICAS AVANÇADAS
Short Description
....
Description
Texto Da Disciplina: .............................................................................. 3 Teorias Analíticas Avançadas ................................................................ 3 Data Science and Big Data Analytics .................................................... 3 Fundamesntos da Ciência de Dados ............................................................... 3 Componentes Tecnológicos ........................................................................... 4 Gestão de Grandes Volumes ......................................................................... 5 Anáçise De Gandes Volumes ........ ................ ................ ................. ................. ................ ................. ................. ............... ....... 8 Integralidade Dos Dados ............................................................................. 10 Conceitos Sobre Abstração, e Clusterização Com Métodos K-Means K -Means ........ ............... ....... 12 Conceitos de Dados Estruturados e Desestruturados ....... ................ ................. ................. ............ ... 23 Impacto Tecnológicos em Passos e Processos ........ ................ ................ ................. ................. ............. ..... 24 Bibliografia ................................................................................................. 29
Texto da disciplina: Teorias Analíticas Avançadas Data Science and Big Data Analytics FUNDAMENTOS DA CIENCIA DE DADOS Realizando uma análise fria sobre a história da gestão de dados, observamos que, um dos grandes desafios das empresas era captar e manter clientes fiéis e, para isso lutava no dia-a-dia para armazenar informações inerentes desses clientes afins de oferecer seus serviços e produtos. Como naquela época as empresas dotavam de alguns punhais de produtos e serviços as coisas eram bem mais simplicíssimas e diretas. Com o passar dos anos esse cenário foi se expandido e ganhando dimensões nas quais requer bem mais expertise par alcançar seus objetivos. Novos produtos e serviços foram sendo adicionados em suas linhas de produção bem como suas diversificações de entregas, aumentando assim o grau de dificuldade. Essas dificuldades se estendem aos dados dos negócios e consequentemente a gestão desses dados. Esses dados podem se apresentar na sua forma mais complexa outros estruturados armazenados em bases de dados relacionais e tantos outros arquivados na sua forma multidimensional, ou por documentos, registros de atendimento ao cliente e até mesmo fotos e\ou vídeos (dados desestruturados). Algumas empresas levam em considerações dados gerados por maquinas com sensores, dados de mídias sociais, dados gerados por fluxos de cliques de interações com websites. Aliado a isso, toda uma disponibilidade de dispositivos moveis em parceria com as redes globais de internet, criando assim nova fonte de dados. Essas formas de coleta e armazenamento de dados faz com que, o Big Data possa ser rico em resultados garantindo assim a melhor informação possível para os negócios e corporações.
No tocante ao desenvolvimento de um Big Data, deve se idealizá-lo como uma estratégia e não como um simples projeto. Para isso você deve sempre projetar seus modelos de modo a encaixá-los sistematicamente entre si sobre todos os elementos. Isso torna seu desenvolvimento mais complexo e demorado, porém seus resultados são extremamente significativos.
COMPONENTES TECNOLOGICOS Uma arquitetura bem planejada de modo a suportar todas as transações são fatores cruciais para um processo bem dimensionado de Big Data. Para tanto um planejamento que chamados de pilha estrutural pode ser utilizado para esse propósito. As partes de uma em pilha podem estar subdividas da seguinte forma: Infraestrutura física redundante, infraestrutura de segurança, bases de dados (operacionais, relacionais, estruturadas, desestruturadas, semiestruturadas, gráficas, textuais entre outras), organizadores de bases de dados, análise de armazenagem de ambientes, relatórios, gráficos e visualizações bem como aplicativos Big Data. A estrutura física redundante que é considerada o nível mais baixo dessa estrutura (hardware, redes, firewall entre outras), precisa ser avaliada constantemente camada por camada. Para assegurar que sua implementação desempenhará e escalará de acordo com as demandas do negócio é importante ter alguns princípios abrangentes em mente. São eles: Desempenho – será a latência que o sistema precisa desempenhar. Precisa ser medido de ponta a ponta do processo, com base em uma única transação ou solicitação de consulta. Infraestrutura muito rápida tendem a ser muito caras. Alto desempenho, baixa latência. Disponibilidade – será quanto tempo o sistema permanecerá disponível ou se pode entrar em modo de espera ou falha.
Infraestrutura com disponibilidades muito alta também tendem a ser demasiadamente muito cara. Escalabilidade – Quando poder de computação você precisa dar para o seu sistema. Você sempre deve decidir de fato o que é necessário para adicionar ou remover equipamentos. Flexibilidade – Com que velocidade, ou seja, rapidez você consegue recuperar uma falha de sistema. Infraestrutura mais flexíveis podem tender a ser muito caras. Custo – Como a infraestrutura pode se pagar ou quanto você pode pagar por ela. É preciso estabelecer exigências para cada hardware ou componente inserido nessa arquitetura. A infraestrutura de segurança é a privacidade de um Big Data e para isso precisa ser bem pensada. Com isso alguns fatores primordiais importantes devem ser levados em considerações tais como: Acesso a dados – os dados devem estar disponíveis apenas para aqueles que tem uma necessidade legitima de acessá-los, acesso a aplicação – proteger a aplicação é fator crucial para o processo e deve ser feito pelo sistema operacional ou hospedeiro da aplicação, criptografia de dados – procurar criptografar e descriptografar os dados durante o seu transporte entre os sistemas e aplicações. Um ponto importante que pode ser levado em consideração é utilizar esse método para itens específicos, pois mexer com esse parâmetro pode tornar o processo de Big Data extremamente caro e, detecção de ameaças – procurar se antecipar as ações de ameaça adicionando mecanismo que consigam surpreender seus mentores.
GESTÃO DE GRANDES VOLUMES As bases de dados são os centros das atenções para um processo bem definido de Big Data. Essas estruturas são coleções de informações oriundas de diferentes cenários e precisam ser acessadas com muita rapidez, escalável e extremamente sólido e confiável. Não existe uma definição para utilizar uma única base de dados. Todas as informações coletadas sejam de que origem for, precisa ser levada em consideração.
Os fatores que descrevem essa importância são: Atomicidade, consistência, isolamento e durabilidade. Para que possamos organizar esses dados precisamos adotar os seguintes métodos e sistemas: arquivos distribuídos, serialização, coordenação, ferramenta de extração, transformação e carga e fundamentalmente fluxo de trabalho. Armazenamento de dados analíticos são técnicas básicas e primárias que as empresas adotam como meio repositório que permitem otimizar seus processos de forma a torna-lo decisório ao negócio. Para essas atualizações são utilizados processamentos em lote. Processamentos em lote podem degradar o desempenho, contudo a premissa básica de um Big Data é a alta disponibilidade e a velocidade da informação. Para tanto o processamento em lote pode ser subdividido em outros processamentos em lote repetidos e sistêmicos afim de aprimorar o recurso de máquina equalizando a questão da disponibilidade da informação. Há vários tipos de bases de dados que precisam ser entendidas para a incorporação de um processo de Big Data. São elas: Bases relacionais são construídas em relações umas com as outras e seus dados são armazenados por tabelas. Normalmente por padrão a chave primária está sempre definida na primeira coluna. Chave primária é uma informação única dentro da tabela que se relaciona com as demais tabelas formando assim o complemento da informação. A consistência dos dados e seus respectivos valores são alcançados muitas vezes pelas normalizações dos dados. A coleção de tabelas, chaves, elementos e assim por diante são referidas como esquema. Bases não relacionais não dependem do modelo tabela\chave endêmico RDBMS. Embora bases relacionais e não relacionais possuem fundamentos similares, há algumas diferenciações a saber: Escalabilidade, modelo de dados\consulta, designer de persistência, diversidade de interface e consistência eventual. Pares de valor chave, são aquelas que empregam o modelo para valor-chave (KVP, Key Value Pair). KVP, não exigem um esquema como RDBMS e oferece grande flexibilidade e escalabilidade, porém não oferecem atomicidade, consistência, isolamento e durabilidade e exigem que os implementadores
pensem sobre o posicionamento de dados a replicação e a tolerância a falhas uma vez que não são expressamente controlados pela tecnologia em si. Elas não são tipadas e a maioria das informações são armazenadas por string. Pares de valor-chave riak, são bases de valor-chave com código aberto. Ela foi desenvolvida pela empresa Basho Tecnologies e está disponível livremente pela empresa Apache Software License. Riak é uma implementação muito rápida e escalável de uma base de dados de valor-chave. Suportam ambientes de altos volumes com rápida mudança de dados porque é leve. Parcialmente eficaz em análises em tempo real de comercio e de serviços financeiros. Utiliza-se da metodologia buckets como um mecanismo de organização para coleções de chaves e valores. Implementações Riak são agrupamentos de nós físicos ou virtuais dispostos em pares. Suas principais características são: processamento paralelo, linhas em link walking, pesquisa e índices secundários. Bases de dados documentacionais pode ser definida de duas maneiras: uma composta por repositórios para conteúdo em estilo de documentos completos tais como word, pdf, web pages entre outros e a outra por armazenamento de componentes de documentos que guarda permanentemente uma entidade estática ou para um conjunto dinâmico de suas partes. Suas estruturas são definidas por Java Script Objects, Notation, e\ou Binary. Elas são uteis quando precisa produzir muitos relatórios e eles precisam ser montados dinamicamente a partir de elementos que mudam com frequência. Bases colunares, ou bases orientadas em colunas, os dados são armazenados através de linhas. É muito fácil adicionar colunas e nelas são adicionadas linhas por linha oferecendo grande flexibilidade, desempenho e escalabilidade. Se aplica muito essa base de dados, quando você tem grandes volumes de dados variados. Bases de dados gráficas, são basicamente chamadas de relacionamentos entre nós. É muito útil quando se tem que lidar com dados altamente interconectados. Modos e relacionamentos suportam propriedade, um par valor-chave onde as
informações são armazenadas. São bases navegáveis é não suportam RDBMS, devido a sua estrutura. Essas bases são utilizadas para dados geográficos. Bases espaciais, são dados coletados pelo sistema GPS (Global Positioning System, cujas direções definem lugares ou posicionamento global.
ANÁLISE DE GRANDES VOLUMES Um dos maiores méritos de um Big Data é saber explorá-lo em sua plenitude. Para isso os conhecimentos de uma boa análise dos dados registrados são extremamente importantes. Empresas como a google.com e amazona.com são totalmente capacitadas no sentido de remover o que há de melhor nesse conceito obtendo assim vantagens competitivas. Basicamente elas armazenam todo o seu histórico de compra acrescenta aí tudo o que sabe sobre você, suas preferencias, opiniões, tendências, aptidões, padrões de compra entre outros resultados e, traça um perfil quase que assertivo sobre seu padrão comercial. É uma verdadeira máquina de marketing. Uma Big data deve ser diretamente associada a questões, duvidas, padrões ou tendências que uma corporação deseja perseguir. Como por exemplo: Qual é o problema que estamos tentando resolver? Ou você pode estar interessado em decifrar qual o comportamento do consumidor diante de um eventual acontecimento. Nesse sentido podemos qualificar as análises nos seguintes aspectos: análises básicas de insight, avançadas de insight, operacionalizadas e monetizada. As análises mais avançadas podem ser subdivididas em: modelagem preditiva, análises de textos e ode mineração dos dados. Nesta última especificamente, que é a mineração dos dados, abrimos uma lacuna para explorá-la um pouco mais pois é um dos pontos determinando para uma boa análise de Big Data. A mineração basicamente envolve explorar e analisar grandes quantidades de informações para encontrar padrões. Suas técnicas evoluíram dos estudos dos campos estatísticos e da inteligência artificial, com gestão de dados. Seu maior objetivo é dividir ou prever.
Algoritmos típicos usados em mineração são: Árvores de classificação, regressão logística, redes neurais e técnicas de agrupamento como K vizinhos mais próximos. Diante do exposto acima, antes de mais nada, precisamos entender claramente a diferença entre BI, business Intelligence e Big Data. BI, consiste diretamente a dados estruturados, produtos tradicionais ou inteligência de negócio. São construídos de modo a trabalhar com dados bem entendidos frequentemente armazenados em repositório de dados relacionais e exibidos em forma de ‘fotos’. O Big data já traz em sua composição a utilização de dados estruturados, desestruturados e semiestruturados. Esses dados podem vir de diversas fontes de dados, eles podem ser ‘sujos’, a relação sinal-ruído pode ser baixa e eles podem estar em tempo real. Indagando um pouco sobre os dados desestruturados, podemos dizer que sua estrutura é imprevisível. Ela pode esta composta nos formatos tipo documentos, e-mails, arquivos de registros, tweets, posts no facebook entre outros. Com isso derivamos para as análises textuais que tendem a mitigar um pouco do que tem dentro dos dados desestruturados. Suas técnicas são: PLN, processamento de linguagem natural, descobertas de conhecimentos, mineração de dados, recuperação de informação entre outros. Analises textuais é um processo de analisar os textos, exibir informações relevantes e transformá-las em estrutura de forma que possa ser aproveitada de diversas formas. As técnicas de extração são comumente combinadas com outras tais como estatísticas ou linguísticas de modo a automatizar as indicações e as marcações de documentos de textos a fim de extrair os seguintes tipos de informação: termos, entidades, fatos, eventos, conceitos e opiniões. Taxonomia, são frequentemente importantes para análise de textos. É um método que organiza informações em relacionamentos hierárquicos. Esse método pode também usa sinônimos e expressões alternativas reconhecendo similaridade nas informações. Essas técnicas podem ser consideradas complexas e levar tempo para ser desenvolvida.
Outros dados que podem ser de maior relevância é o armazenamento de voz e por fim todo o conteúdo postado nas redes sociais.
INTEGRALIDADE DOS DADOS Para se obter o máximo de valor de negócio a partir de Big Data, ele precisa se integrado aos demais processos de negócios. A capacidade de integrar fontes internas e externas compostas tanto de dados relacionais tradicionais quanto de fontes mais novas de dados desestruturados. Entretanto, para juntas tantos seus ambientes com os dados da empresa precisaremos incorporar novos métodos de integração que dão suporte ao Hadoop e outros ambientes não tradicionais. Antes mesmo de planejar as integrações, surge a necessidade de se conhecer quais os dados que estão sendo tratados, quais seus tipos e com que frequência eles são atualizados e, principalmente precisamos identificar quais os dados que vamos precisar. Para identificar esses dados e conhece-los bem, passaremos por três estágios: pela mineração dos dados, codificação e integração e incorporação. Entender os fundamentos da integração de um Big Data permitem compreender e administrar novas técnicas em comparação as bases de dados relacionais tanto para dados estruturados quanto para desestruturados. Os componentes de ecossistema de um Big Data desde o Hadoop, NoSQL, DB, MongoDB, Cassandra e HBase possuem características especificas e abordam conceitos diferenciados para tratar extração e carga dos dados. A informação precisa ser entregue ao negócio de uma maneira confiável, controlada, consistente e flexível por toda a empresa, independentemente das exigências especificas para sistemas ou aplicativos individuais. Para atingir esses objetivos, aplica-se três princípios básicos: a) você deve criar um entendimento comum de definições de dados. b) você deve desenvolver um conjunto de serviços de dados para qualifica-los e torná-los consistentes e, por
fim confiável. c) você precisa de uma maneira racionalizada de integrar sues fontes de Big Data e os sistemas de registro. Ferramenta ETL combina três funções importantes exigidas para pegar dados de um ambiente e coloca-los em outro. O ETL ultimamente, para tornar o processo de carga mais veloz, se utiliza de processamentos em lote nos ambientes de armazém de dados. Esses fornecem maneiras de consolidar informações através de fontes diferentes – sistema integrado de gestão. E, finalmente o ETL é utilizado para transformar informações em formatos exigidos pelo ambiente armazém. Normalmente essa transformação é feita em um local intermediário, antes dos dados serem carregados a esse ambiente de armazenagem. Muitas corporações entendem que um processo de ETL se tornar lento e difícil de se usar por causa dos grandes volumes de dados. Essas empresas descobriram que o Hadoop pode ser utilizado como processo de extração, transformação e carga. A integração pode ser acelerada tanto para dados estruturados quanto para dados desestruturados, operacionais e tradicionais sem levar em consideração sua estrutura inicial. Depois que os dados são carregados no Hadoop eles podem ser melhor integrados utilizando assim o ETL tradicional. Com esse método o mesmo se torna mais rápido processo de análise. As melhores práticas para a integração de dados num mundo Big data estão diretamente associadas aos seguintes tópicos: Mantenha a qualidade dos dados em perspectivas; considere as exigências de dados em tempo real e não crie novos silos de informação. É fundamental enfatizar que você deve manter uma sinergia em administrar esses dados com os negócios da corporação – contexto do negócio. Transmissão dos dados em tempo real e processamento de eventos complexos são continuidades da gestão de dados que impactam diretamente no resultado de um Big Data. Computação em fluxo é projetado para lidar com fluxo contínuos de uma grande quantidade de dados desestruturados. Processamentos em eventos complexos normalmente lidam com poucas variáveis, que precisam ser correlacionadas com um processo de negócio
especifico. Em algumas situações um dependo do outro, contudo o processamento de eventos complexos não é exigido pela transmissão de dados. A transmissão de dados depende de analisar fluxos de dados em movimento. Na verdade, se os dados estão em repouso, não se encaixam na categoria de transmissão.
CONCEITOS SOBRE ABSTRAÇÃO, E CLUSTERIZAÇÃO COM MÉTODOS K-MEANS Abstração e clusterização são métodos utilizados em estrutura de tecnologia da informação que denota como os computadores irão trabalhar para entregar resultados processados. Abstração é uma estrutura física, única que processa os dados dentro de camadas cliente-servidor. Já a clusterização permite que vários computadores trabalhem em conjunto como se fossem um equipamento só, para atender a essas requisições. Elas dividem entre si atividades de processamento e executam trabalhos de maneira simultânea. Cada computador que faz parte do cluster recebe o nome de nó (ou node). Teoricamente, não há limite máximo de nós, mas independentemente da quantidade de máquinas que o compõe, o cluster deve ser "transparente", ou seja, ser visto pelo usuário ou por outro sistema que necessita deste processamento como um único computador. Os nós do cluster devem ser interconectados, preferencialmente, por uma tecnologia de rede conhecida, para fins de manutenção e controle de custos, como a Ethernet. É extremamente importante que o padrão adotado permita a inclusão ou a retirada de nós com o cluster em funcionamento, do contrário, o trabalho de remoção e substituição de um computador que apresenta problemas, por exemplo, faria a aplicação como um todo parar. A computação em cluster se mostra muitas vezes como uma solução viável porque os nós podem até mesmo ser compostos por computadores simples, como PCs de desempenho mediano. Juntos, eles configuram um sistema de processamento com capacidade suficiente para dar conta de determinadas
aplicações que, se fossem atendidas por supercomputadores ou servidores sofisticados, exigiriam investimentos muito maiores. Não é necessário haver um conjunto de hardware exatamente igual em cada nó. Por outro lado, é importante que todas as máquinas utilizem o mesmo sistema operacional, de forma a garantir que o software que controla o cluster consiga gerenciar todos os computadores que o integram. Há uma enormidade de aplicações que só podem ser atendidas satisfatoriamente com computação de alto desempenho: sistemas meteorológicos, ferramentas de mapeamento genético, simuladores geotérmicos, programas de renderização de imagens tridimencionais, entre tantos outros. Com o advento da computação em nuvens, este cenário se torna ainda mais amplo: pode-se ter uma infraestrutura tecnológica respondendo a vários clientes simultaneamente de maneira remota, por exemplo. Em todos estes casos e em qualquer outro tipo de aplicação crítica - que não pode parar de funcionar ou não pode perder dados (os sistemas bancários, por exemplo) -, o cluster pode se mostrar como uma solução viável, desde que o tipo mais adequado seja escolhido. Há vários tipos de cluster, mas os principais são: cluster de alto desempenho, cluster de ata disponibilidade e cluster de balanceamento de carga. Cluster de Alto Desempenho (High Performance Computing Cluster): são direcionados a aplicações bastante exigentes no que diz respeito ao processamento. Sistemas utilizados em pesquisas científicas, por exemplo, podem se beneficiar deste tipo de cluster por necessitarem analisar uma grande variedade de dados rapidamente e realizar cálculos bastante complexos. O foco deste tipo é o de permitir que o processamento direcionado à aplicação forneça resultados satisfatórios em tempo hábil, mesmo que haja centenas de milhares de gigaflops envolvidos com a tarefa (1 gigaflop corresponde a 1 bilhão de instruções de ponto flutuante executadas por segundo); Cluster de Alta Disponibilidade (High Availability Computing Cluster): o foco está em sempre manter a aplicação em pleno funcionamento: não é aceitável que o sistema pare de funcionar, mas se isso acontecer, a paralização deve ser a
menor possível, como é o caso de soluções de missão crítica que exigem disponibilidade de, pelo menos, 99,999% do tempo a cada ano, por exemplo. Para atender a esta exigência, os clusters de alta disponibilidade podem contar com diversos recursos: ferramentas de monitoramento que identificam nós defeituosos ou falhas na conexão, replicação (redundância) de sistemas e computadores para substituição imediata de máquinas com problemas, uso de geradores para garantir o funcionamento em caso de queda de energia, entre outros. Em determinadas circunstâncias, é tolerável que o sistema apresente algum grau de perda de desempenho, especialmente quando esta situação é consequência de algum esforço para manter a aplicação em atividade; Cluster para Balanceamento de Carga (Load Balancing): as tarefas de processamento são distribuídas o mais uniformemente possível entre os nós. O foco aqui é fazer com que cada computador receba e atenda a uma requisição e não, necessariamente, que divida uma tarefa com outras máquinas. Imagine, por exemplo, que um grande site na internet receba por volta de mil visitas por segundo e que um cluster formado por 20 nós tenha sido desenvolvido para atender a esta demanda. Como se trata de uma solução de balanceamento de carga, estas requisições são distribuídas igualmente entre as 20 máquinas, de forma que cada uma receba e realize, em média, 50 atendimentos a cada segundo. Não basta ao cluster de balanceamento de carga ter um mecanismo meramente capaz de distribuir as requisições - é necessário que este procedimento seja executado de forma a garantir um "equilíbrio" na aplicação. Para tanto, o mecanismo pode monitorar os nós constantemente para verificar, por exemplo, qual máquina está lidando com a menor quantidade de tarefas e direcionar uma nova requisição para esta. O balanceamento de carga pode ser utilizado em vários tipos de aplicações, mas o seu uso é bastante comum na internet, já que soluções do tipo têm maior tolerância ao aumento instantâneo do número de requisições, justamente por causa do equilíbrio oriundo da distribuição de tarefas.
É válido frisar que uma solução de cluster não precisa se "prender" a apenas um tipo. Conforme a necessidade, pode-se combinar características de tipos diferentes no intuito de atender plenamente à aplicação. Por exemplo, uma loja na internet pode utilizar um cluster de alta disponibilidade para garantir que suas vendas possam ser realizadas 24 horas por dia e, ao mesmo tempo, aplicar balanceamento de carga para suportar um expressivo aumento eventual no número de pedidos causados por uma promoção. Para que um cluster seja constituído, é necessário fazer uso de alguns elementos básicos. O primeiro deles você já conhece: os equipamentos a serem utilizados como nós. Para isso, pode-se usar máquinas construídas especificamente para funcionar como nós. Neste caso, os computadores teriam apenas dispositivos de hardware imprescindíveis ao cluster. Mas, também é possível utilizar computadores "convencionais", como desktops para fins domésticos ou para uso em escritório. Assim, uma universidade ou uma empresa, por exemplo, pode utilizar máquinas que foram substituídas por modelos mais recentes para criar um cluster e, eventualmente, economizar com a aquisição de servidores. Os nós podem ainda ser não dedicados ou dedicados. No primeiro caso, cada computador que faz parte do cluster não trabalha exclusivamente nele. No segundo, o nó é utilizado somente para este fim, fazendo com que dispositivos como teclados e monitores sejam dispensáveis - se, por algum motivo, for necessário acessar uma máquina em particular, pode-se fazê-lo via terminal, a partir do nó principal, por exemplo. Outro elemento importante é o sistema operacional. Como já informado, os nós não precisam ser exatamente iguais no que diz respeito ao hardware, mas é essencial que todas os computadores utilizem o mesmo sistema operacional.
Esta homogeneidade é importante para diminuir a complexidade de configuração e manutenção do sistema, e garantir que os procedimentos rotineiros ao cluster, como monitorização, distribuição de tarefas e controle de recursos sejam executados de maneira uniforme. Para reforçar estes aspectos, pode-se até mesmo adotar sistemas operacionais preparados especialmente para clustering. Do ponto de vista do software, o cluster conta ainda com o elemento que faz o papel de middleware: trata-se de um sistema que permite o controle do cluster em si e, portanto, está intimamente ligado ao sistema operacional. É o middleware que lida, por exemplo, com as bibliotecas que fazem toda a comunicação do cluster - uma delas é o padrão MPI (Message Passing Interface). Além de trabalhar com o gerenciamento do cluster, o middleware oferece uma interface para que um administrador possa configurar o cluster, ferramentas para manutenção e otimização, recursos de monitoramento e assim por diante. Por padrão, o middleware é instalado em uma máquina chamada de nó controlador (ou nó mestre). O nome deixa claro: trata-se do já mencionado nó principal, que efetivamente controla o cluster a partir da distribuição de tarefas, do monitoramento e de procedimentos relacionados. A comunicação entre os nós - que é onde está a delimitação do que constitui o cluster em si - é feita a partir de uma tecnologia de rede local. Os padrões Ethernet (Gigabit Ethernet, Fast Ethernet, etc) são bastante utilizados justamente por serem mais comuns e, portanto, melhor suportados e menos custosos. Mas há outras opções viáveis, entre elas, o Myrinet e o InfiniBand, ambos com características bastante apropriadas para clustering. Virtualização de estrutura de TI são soluções computacionais que permitem a execução de vários sistemas operacionais e seus respectivos softwares a partir de uma única máquina, seja ela um desktop convencional ou um potente servidor. É como se você se deparasse com um ou mais computadores distintos dentro de um só.
A diferença é que estas máquinas são virtuais: na prática, elas oferecem resultados como qualquer outro computador, mas existem apenas logicamente, não fisicamente. Cada máquina virtual se traduz em um ambiente computacional completo: praticamente todos os recursos de seu sistema operacional podem ser utilizados, é possível conectá-las em rede, consegue-se instalar aplicativos, entre outras coisas. Uma das razões para o surgimento da virtualização é que, anos atrás, na época em que os mainframes dominavam o cenário tecnológico e não havia computadores pessoais, por exemplo, não existia a praticidade de "adquirir, instalar e usar um software" - este era acompanhado de bibliotecas e outros recursos que o tornavam quase que exclusivos ao o computador para o qual foi desenvolvimento originalmente. Desta forma, muitas vezes uma organização que implementava um novo sistema se via obrigada a adquirir um equipamento apenas para executá-lo, em vez de simplesmente aproveitar o maquinário existente, deixando toda a operação mais cara no final das contas. A virtualização conseguiu resolver este problema: pode-se aproveitar um computador já existente para executar dois ou mais sistemas distintos, já que uma roda dentro de sua própria máquina virtual. Evita-se, assim, gastos com novos equipamentos e aproveita-se os possíveis recursos ociosos do computador. Nos dias de hoje, a virtualização permite, por exemplo, que uma empresa execute vários serviços a partir de um único servidor ou até mesmo que um usuário doméstico teste um sistema operacional em seu computador antes de efetivamente instalá-lo. Do ponto de vista corporativo, seu uso atual se destina a várias aplicações, como sistemas de ERP, serviços de computação nas nuvens, ferramentas de simulação, entre muitos outros. Você já conhece algumas das vantagens da virtualização, mas a sua utilização oferece vários outros benefícios. Os principais são abordados a seguir: Melhor aproveitamento da infraestrutura existente: ao executar vários serviços em um servidor ou conjunto de máquinas, por exemplo, pode-se aproveitar a
capacidade de processamento destes equipamentos o mais próximo possível de sua totalidade; o parque de máquinas é menor: com o melhor aproveitamento dos recursos já existentes, a necessidade de aquisição de novos equipamentos diminui, assim como os consequentes gastos com instalação, espaço físico, refrigeração, manutenção, consumo de energia, entre outros. Imagine o impacto que esta vantagem pode ter em um data center; gerenciamento centralizado: dependendo da solução de virtualização utilizada, fica mais fácil monitorar os serviços em execução, já que o seu gerenciamento é feito de maneira centralizada; implementação mais rápida: dependendo da aplicação, a virtualização pode permitir sua implementação mais rápida, uma vez que a infraestrutura já está instalada; uso de sistemas legados: pode-se manter em uso um sistema legado, isto é, antigo, mas ainda essencial às atividades da companhia, bastando destinar a ele uma máquina virtual compatível com o seu ambiente; diversidade de plataformas: pode-se ter uma grande diversidade de plataformas e, assim, realizar testes de desempenho de determinada aplicação em cada uma delas, por exemplo; ambiente de testes: é possível avaliar um novo sistema ou uma atualização antes de efetivamente implementá-la, diminuindo significativamente os riscos inerentes a procedimentos do tipo; segurança e confiabilidade: como cada máquina virtual funciona de maneira independente das outras, um problema que surgir em uma delas - como uma vulnerabilidade de segurança - não afetará as demais; migração e ampliação mais fácil: mudar o serviço de ambiente de virtualização é uma tarefa que pode ser feita rapidamente, assim como a ampliação da infraestrutura. Uma solução de virtualização é composta, essencialmente, por dois "protagonistas": o hospedeiro (host) e o hóspede ou convidado (guest). Podemos entender o hospedeiro como sendo o sistema operacional que é executado por uma máquina física. O hóspede, por sua vez, é o sistema virtualizado que deve ser executado pelo hospedeiro. A virtualização ocorre quando estes dois elementos existem. A forma como hospedeiro e hóspedes trabalham varia conforme a solução. Em
um método bastante comum há a figura do VMM (Virtual Machine Monitor Monitor de Máquina Virtual), que também pode ser chamado de hypervisor: trata-se de uma espécie de plataforma implementada no hospedeiro que recebe os sistemas a serem virtualizados, controlando os seus recursos e mantendo-os "invisíveis" em relação aos outros. Para que possa fazer o seu trabalho, o VMM tem um tratamento diferenciado: ele pode ser executado no "modo supervisor", enquanto que programas comuns (aplicativos) rodam no "modo usuário". No "modo supervisor", o software pode requisitar instruções que lidam diretamente com certos recursos hardware, como funcionalidades específicas do processador. No "modo usuário", estes recursos mais críticos não podem ser acessados diretamente, cabendo ao sistema operacional, que trabalha em "modo supervisor", fazer uma espécie de intermediação quando necessário. O VMM precisa ter acesso privilegiado porque cabe a ele alocar os recursos a serem utilizados por cada máquina virtual sob sua responsabilidade, assim como determinar a ordem pela qual cada solicitação destas será atendida. O hóspede é executado em "modo usuário", mas como a máquina virtual possui um sistema operacional, qualquer requisição de instrução mais crítica solicitada por este é "interceptada" pelo hypervisor, que se encarrega de fornecê-la. A virtualização por meio de Virtual Machine Monitor é comumemente dividida em duas técnicas: a virtualização total (full virtualization) e a paravirtualização (paravirtualization). Na virtualização total, o sistema operacional do hóspede trabalha como se de fato houvesse uma máquina física inteiramente à sua disposição. Desta forma, o sistema não precisa sofrer nenhuma adaptação e trabalha como se não houvesse virtualização ali. O problema é que esta abordagem pode ter algumas limitações consideráveis. Uma delas é o risco de algumas solicitações do hóspede não serem atendidas da maneira esperada. Isso acontece, por exemplo, quando o hypervisor não consegue lidar com determinada instrução privilegiada ou quando um recurso de hardware não pode ser plenamente acessado por não haver drivers (uma
espécie de software que "ensina" o sistema operacional a lidar com um dispositivo) na virtualização capazes de garantir sua plena compatibilidade. A paravirtualização surge como uma solução para problemas do tipo. Nela, o sistema operacional do hóspede roda em uma máquina virtual similar ao hardware físico, mas não equivalente. Como este método, o hóspede é modificado para recorrer ao hypervisor quando necessitar de qualquer instrução privilegiada e não diretamente ao processador. Assim, o VMM não precisa interceptar estas solicitações e testá-las (tarefa que causa perda de desempenho), como acontece na virtualização total. Além disso, a para virtualização diminui expressivamente os problemas com compatibilidade de hardware porque o sistema operacional do hóspede acaba podendo utilizar drivers adequados - na virtualização total, os drives disponíveis são "genéricos", isto é, criados para suportar o máximo possível de dispositivos, mas sem considerar as particularidades de cada componente. A principal desvantagem dá para virtualização é a necessidade de o sistema operacional ter que sofrer modificações para "saber" que está sendo virtualizado, podendo gerar custos com adaptação e atualização ou limitações referentes à migração para um novo conjunto de hardware, por exemplo. Na virtualização total, vale relembrar, não há necessidade de alteração do sistema, mas o procedimento fica sujeita aos problemas mencionados no início deste tópico. Assim, a adoção de um modo ou outro depende de análises e testes que possam determinar qual é mais vantajoso para determinado serviço. Algoritmo de clusterização K-Means são formas que existe para se trabalhar com aprendizado de máquinas (machine learning) é o aprendizado não supervisionado. Diferente do aprendizado supervisionado onde você informa o computador o que ele deve procurar e aprender, no aprendizado não supervisionado a gente não sabe exatamente o que estamos tentando ensinar o computador a aprender, então precisamos recorrer à agrupadores lógicos de segmentação para encontrar similaridade entre os dados da amostra e com isso, definir um padrão e assumir que este padrão encontrado é o que estamos tentando ensinar o computador, que por sua vez, vai aprender a encontrar esse padrão
sempre quando for solicitado. Depois de descoberto o padrão, qualquer item novo que tenha uma similaridade com aquele segmento (cluster) pode ser inferido que ele “faz parte daquilo”. Para exemplificar, pense em um dataset com algumas amostras dispostas nos eixo X e Y. Seu objetivo é agrupar estes dados baseado em suas similaridades. Consegue fazer isso? É possível ver a separação em alguns grupos. Cada um de nós que olhar o gráfico pode tentar criar um número diferente de cluster, ou até mesmo quando a quantidade de cluster for igual, pode-se pensar em agrupamentos de formas diferentes. Por exemplo, alguns podem ver a separação com apenas 2 clusters. Qual é o certo? Todos estão certos! Isso pode acontecer de acordo com a interpretação de cada um dos observadores que encontraram apenas 2 grupos nestes dados. Outros podem encontrar 3 grupos, e não apenas dois. E qual dos gráficos é o certo? O certo é com 2 grupos ou com 3 grupos? Mais uma vez isso é difícil de responder, todos os 6 gráficos estão corretos de acordo com a visão de cada observador. Para ajudar a responder esta questão, existem alguns métodos usados e bem aceitos no meio científico. Para entender o funcionamento vamos separar em 2 clusters e entender os passos que o algoritmo K-Means faz como os dados para convergir em um resultado. Neste caso o K será igual a 2, criando os 2 clusters que estamos buscando. O K, de K-Means, é a quantidade de centróides (pontos centrais dos grupos) que serão criados e ajudará a encontrará a similaridade dos dados. Uma das formas de iniciar o processo é o algoritmo inserir o K pontos (centróides) aleatórios iniciais. Pode ser qualquer lugar do plano, para em seguida começar as iterações e encontrar os resultados. Veja dois pontos aleatórios criados no gráfico, e uma linha tracejada que é calculada aproximadamente a metade da distância dos pontos Vermelho e Azul. Com este segmento, os itens que estão plotados acima da linha tracejada fazem parte do grupo vermelho e os de baixo da linha fazem parte do grupo azul.
A primeira iteração do algoritmo é calcular a distância média de todos os pontos que estão atrelados ao centróide, e então mudar a posição do centróide para o novo ponto que foi calculado, que é a distância média de todos os pontos que se ligaram a aquele centróide. Essa mudança de posição do centróide pode alterar os itens que fazem parte daquele grupo. Reparem que após a iteração do cálculo da média, alguns pontos mudaram de centróide, os pontos que estão marcados em verde passaram do centróide azul para o vermelho, e o que está marcado em azul passou do centróide vermelho para o azul. Essa iteração de cálculo da média da distância dos pontos até o centróide ocorre em loop até que nenhum ponto mude de centróide, isso acontece quando os centróides param de se mover porque já estão na posição central da distância entre os pontos. Veja que entre a penúltima iteração e esta não ouve mais mudança de pontos entre o gráfico e o centróide, fazendo com que o algoritmo K-Means pare sua execução chegando ao resultado esperado e criando dois grupos. Assim, quando um novo item for incluído no gráfico, ele já terá um grupo que atende aquela região e o computador já saberá do que se trata o dado novo. Como falado alguns parágrafos atrás, o Elbow Method é uma das formas usadas. Ele tem esse nome por se parecer com o formato de um “braço” e nós sempre procurarmos o “cotovelo” para definir que este é o número aceitável de K (clusters) a serem criados com base nos dados da amostra. Este método vai crescendo a quantidade de clusters a partir de 1 e analisando o resultado melhorado a cada incremento. Quando o benefício parar de ser relevante (um salto entre uma quantidade de cluster e a próxima quantidade) ele entra em um modelo platô, no qual a diferença da distância é quase insignificante. É neste momento que se entende que o algoritmo é relevante com aquela quantidade de K e então ele deve ser usado para segmentar os dados do gráfico. Depois de executar o código do algoritmo do Elbow Method e olhando para os dados que estamos apresentando como exemplo, um bom número de K para ele é o número 4. Rodando o algoritmo com 4 centróides, é possível ver a transformação acontecendo.
Neste cenário, quando qualquer item novo for adicionado na base de dados, o algoritmo saberá classificar a qual grupo este novo item pertence.
CONCEITOS DE DADOS ESTRUTURADOS E DESESTRUTURADOS Anteriormente no decorrer dessa apostila, falamos sobre os conceitos de dados estruturados e desestruturados. Agora vamos explorar um pouco mais sobre a administração desses dados em grandes volumes e seus respectivos métodos de armazenamento através de métodos específicos associados ao processo de Big Data. Método Hadoop YARN, do inglês Yet Another Resource Negociation é um serviço Hadoop central que fornece dois benefícios principais: gestão global de recursos e gestão de aplicativo. O primeiro é um serviço máster e controla o nó principal em cada um dos nós de um agrupamento hadoop. Incorporado a isso está o agendamento de tarefas, cuja ação é alocar recursos de sistemas para aplicativos específicos em execução, mas ele não monitora ou rastreia o status dos aplicativos. Todas as informações do sistema exigidas são armazenadas em container de recursos. Contém atributos de CPU, disco, rede e outros necessários para executar aplicativos no nó e em um agrupamento. Cada nó tem seu próprio supervisor acoplado aos recursos do gerenciador global no agrupamento. O primeiro monitora o uso da CPU, disco, rede e memória do aplicativo e reporta de volta ao segundo. Agora, para cada aplicativo executado no nó existe um gestor de aplicação correspondente. Se mais recursos são necessários para dar suporte ao aplicativo que está sendo executado o gerenciador de aplicação notifica o gerenciador do nó e este negocia a capacidade adicional de recursos em nome do aplicativo. O gerenciador do nó também é responsável por rastrear status do trabalho e progresso dentro do seu nó.
HBase é uma base de dados não relacional, ou seja, colunar, distribuída que utiliza o HDFS como seu armazenamento de persistência. É modelada segundo o Google BitTable e é capaz de hospedar tabelas enromes, ou seja, bilhões de colunas e linhas porque é disposta em camadas em agrupamentos hadoop de hadware. A HBase fornece acesso aleatório de leitura e gravação em tempo real de Big Data. É altamente configurável, fornecendo bastante flexibilidade para lidar com enormes quantidades de dados de forma eficiente. HIVE é uma camada de armazém de dados com orientação a lote, construída nos elementos centrais do Hadoop. Fornece aos usuários que sabem que SQL tem uma implementação SQL-Life simples, chamada HIVEQL, sem sacrificar o acesso via mappers e reduces. Com HIVE pode-se obter o melhor dos dois mundos. Acesso tipo SQL a dados estruturados e análises Big Data sofisticadas com MapReduce. Diferentemente da maioria dos armazéns de dados, HIVE não é projetado para respostas rápidas a consultas. Na verdade, elas podem levar muitos minutos ao até mesmo horas dependendo da complexidade. Como resultado HIVE é melhor utilizado para mineração de dados e análises mais profundas que não exigem componentes em tempo real pois depende da base Hadoop que é muito extensível, escalável e resiliente, algo que o armazém de dados comum não é. HIVE se utiliza de três mecanismos para organizar seus dados: Tabelas, partições e buckets.
IMPACTOS TECNOLOGICOS EM PASSOS E PROCESSOS Hoje enfrentamos um momento de transformação ampla, impulsionada pelo que se denominou o “Nexo de Forças” que vem a ser a convergência e reforço mútuo de padrões de tecnologias móveis, sociais, de computação em nuvem baseadas em informação que promovem novos cenários de negócios. ” No Nexo de Forças, a gestão da informação tem um papel fundamental. As forças do social, mobilidade e computação em nuvem fazem a informação disponível,
compartilhada e consumível por qualquer um, a qualquer hora, em qualquer lugar. A cultura de gestão de informação para alimentar inovação é uma premissa do momento atual. Desenvolver uma disciplina de inovação através da informação possibilita as organizações a responder a mudanças do ambiente, clientes, colaboradores e produtos à medida que ocorrem. Isto permitirá que organizações saltem adiante de seus concorrentes em desempenho operacional e do negócio. Organizações capazes de tomar decisões em tempo real com Big Data prosperarão, enquanto aquelas incapazes de abraçar e fazer uso dessa mudança se encontrarão cada vez mais em desvantagem competitiva no mercado e enfrentarão um potencial maior de fracassar. Inovação corporativa baseada em tecnologia não é algo novo. A tecnologia da informação aplicada a negócios vem alavancando ganhos de competitividade nos negócios através da implantação de sistemas de informação capazes de automatizar processos e trazer ganhos de eficiência traduzidos em vantagem competitiva. Os meados da década de 1990 marcaram uma clara descontinuidade nas dinâmicas competitivas e o início de um período de inovação em TI corporativa, quando a Internet e aplicativos corporativos como ERP, CRM e ECM começaram a se tornar ferramentas práticas para o negócio. Entretanto, a nova onda do Big Data tem potencial de trazer inovação em maior escala e ainda maior impacto ao negócio. Análises de dados extraídos destas aplicações corporativas, junto à inteligência coletiva e outras tecnologias Web 2.0 podem ser importantes para propagar e gerar ideias também. Os autores vislumbravam o potencial de gerar conhecimento e aplicá-lo na transformação de negócios, antes mesmo do termo Big Data ser difundido. Analisando o caso da TESCO, rede de lojas britânicas que já aplicava conceitos de análise de dados de seus programas de promoções e descontos para clientes a partir da compreensão daqueles que respondiam melhor às campanhas, os autores comentam: “Em uma indústria em que a média de retorno para Marketing direto é ao redor de 2%.
Considerando as oportunidades com Big Data e seu poder de transformação, também é importante compreender as novas capacidades que as áreas de TI corporativas precisarão desenvolver para atender às novas iniciativas e demandas emergentes do negócio. Nenhuma outra tendência na última década tem tanto potencial de impactar investimentos tradicionais como Big Data. Big Data promete – ou ameaça, dependendo do ponto de vista – desbancar tecnologias legadas em muitas grandes corporações. O que precisa mudar na TI dos dias atuais? Departamentos de TI estão lidando com arquiteturas legadas de Hardware e Software, processos e conhecimentos desenhados para um modo de trabalho em obsolescência. Junto com estas arquiteturas estão hábitos e modos de pensar igualmente ultrapassados, que devem se transformar para lidar com o Nexo de Forças. O mundo de Big Data requer uma mudança em arquitetura de computação, para que clientes possam manejar os pesados requisitos de armazenamento e de processamento para analisar vastos volumes de dados de maneira econômica. O maior desafio para as organizações buscando aplicar as possibilidades do Big Data é, sobretudo, formar recursos humanos qualificados para a área de tecnologia da informação de modo a acompanhar o ritmo acelerado de crescimento dos dados, desenvolvimento tecnológico e consequentemente o aumento da complexidade. Enquanto o universo digital está dobrando em capacidade a cada 2 anos, o número de profissionais de TI no planeta pode nunca dobrar novamente, ao menos nos próximos 20 anos. No contexto do universo digital, o número de Gigabytes por profissional de TI crescerá em um fator de 8 entre hoje e 2020, enquanto o número de dispositivos no IoT – Internet of Things – crescerá em um fator de 2 (sem contar dispositivos virtuais).
A disponibilidade de conhecimento disponível no mercado é uma das forças que influenciam esse mercado. A escassez de talentos em análise e gestão, necessários para extrair o máximo de Big Data, é um desafio e pressão significante. Uma avaliação do problema é que os Estados Unidos somente enfrentam uma escassez de 140.000 a 190.000 pessoas com conhecimentos profundos em análise de dados assim como 1.5 milhões de gerentes e analistas para analisar Big Data e tomar decisões baseadas em suas descobertas. Esforços de treinamento e educação em tecnologias de Big Data e análise de dados por corporações privadas, agências de governo (em certos países) e universidades acelerarão, para aliviar a escassez de recursos. O primeiro perfil profissional crítico para uma organização ter sucesso em um projeto de Big Data é o profissional que será capaz de analisar as informações e obter visões através de novas correlações de dados. O Data Scientist, o Cientista de Dados, é profissional com conhecimento e curiosidade para fazer descobertas em Big Data. O cientista de dados foi descrito como o emprego mais Sexy do Século XXI, sendo um desafio para gestores responsáveis por encontrá-los, atraí-los para a organização e obter resultados com eles. O termo “Sexy” se aplica ao fato que suas raras qualidades estão em alta demanda. O primeiro passo é compreender o papel deste especialista. O que o cientista de dados faz é descoberta enquanto nada em dados. Hoje é uma combinação rara, um híbrido de analista, comunicador, consultor e desenvolvedor, mas com uma imensa curiosidade para investigar oportunidades e a capacidade de programar. Várias universidades planejam seus programas para cientistas de dados. Cursos existentes de análises de dados estão adicionando casos de uso e exercícios de Big Data ao material didático. Empresas também estão procurando desenvolver seus próprios cientistas.
Outro perfil emergente nas organizações que adotam inovação com a gestão de informações e descobertas possíveis com Big Data é o Chief Data Officer, o CDO. Se a evolução da computação nas organizações foi a origem do CIO, o executivo de tecnologia da informação, a revolução dos dados marcada por Big Data está promovendo o surgimento do CDO O CDO tem a tarefa de ser a voz dos dados e representar dados como um bem estratégico para o negócio no nível executivo da organização. A posição exata do CDO ainda é incerta. Em ambos os casos, o crescimento de profissionais com a missão estratégica de gestão do ambiente de suporte e consumo de informação já parece ser uma tendência da estrutura organizacional da era do Big Data. As funções do CDO incluem governança de dados, gestão da infraestrutura corporativa de dados, desenvolvimento de serviços analíticos sobre dados corporativos e a estratégia de dados para a organização. A governança de dados é a gestão holística da disponibilidade, acessibilidade e segurança da informação corporativa. À medida que a exploração de dados pelas organizações começa a acelerar, estas organizações começam a compreender que existe uma enorme responsabilidade organizacional. O surgimento de mais um executivo ligado à área de tecnologia pode causar conflitos nas organizações. Como tudo que é digital está na moda, o título do CDO é de grande interesse na agenda pessoal de executivos. Isso não significa que o CIO deva ficar para trás cuidando dos processos operacionais enquanto um novo executivo será responsável por impulsionar a inovação com dados. Recomenda-se que ao invés de buscar um novo título, e talvez atrair ainda mais conflitos políticos, é melhor aprimorar e fortalecer o que se tem e fazer o papel do Executivo-Chefe de Informações, o CIO, mais relevante e influente na sua organização. Uma outra opinião defende que, um CDO não é uma necessidade para uma organização obter sucesso em negócios digitais. Ele recomenda considerar a criação de um CDO formal em situações em que a organização não tenha suficiente colaboração funcional e operacional para criar recursos e soluções
digitais. Não se deve promover a existência de um CDO somente porque todos estão fazendo.
BIBLIOGRAFIA
RAMOS, Atos. Infraestrutura Big Data com Opensource. 1ª ed. Rio de Janeiro: Ciência Moderna, 2015; HURWITZ Judith, NUGENT Alan, HALPER Dr. Fern, KAUFMAN Marcia. Big Data para Leigos, 1ª ed. Rio de Janeiro: Ciência Moderna, 2015; SRINIVAS, Agneeswaran Vuay. Big Data Analitytics Beyond Hadoop, 1ª ed. Pearson Education, 2014; DAVENPORT, Thomas H. e PATIL, D.J. “Data Scientist: The Sexiest Job
of the 21st Century”. Harvard Business Review. 2012. DAVENPORT, Thomas H. e DYCHÉ, Jill. “Big Data in Big Companies”.
International Institute for Analytics. 2013. DEAN, Jeffrey e GHEMAWAT, Sanjay. “Mapreduce:
Processing On Large Clusters”. GOOGLE RESEARCH. 2004 EVANS, Peter e ANNUNZIATA, Marco. “Industrial Internet: Pushing the
boundaries of Minds and Machines”. GE. 2012. TURNER, Vernon et al. “The Digital Universe of Opportunities: Rich Data
Simplified
and the Increasing Value of the Internet of Things”. IDC. 2014. SCHMARZO, Bill. “Big Data: Understanding how data Big Business”,2013.
Data
powers
View more...
Comments