Showing posts with label bi. Show all posts
Showing posts with label bi. Show all posts

Saturday, March 09, 2013

Analytics: How fast do you think? / Analytics: Quão rápido consegue pensar?

This article is written in English and Portuguese
Este artigo está escrito em Inglês e Português

English version:

I was educating myself on the Internet when I came across another IT jargon expression, or another buzzword. The IT industry is very prolific when it comes to creating buzzwords. And we the technical people usually look at those ideas with some distrust. But although this is used by the marketing teams to promote products, increase sales and create awareness and needs on the customers, they actually summarize perfectly concepts that are in some cases very complex. Take "SOA" (Service Oriented Architecture), BigData and so on as examples. Many people use them (and some even assume they need it) without really understanding them. But why am I going through this? Because I was hit by a new buzzword that I can really map to something I know and that really describes the power of that "thing" I know... Let's start by the buzzword first: "Analytics at the speed of thought". It has been used for years to describe products, concepts and technologies that try to provide exactly that: The ability to analyze data at the speed you think... But let's go back a little bit... What is "data analysis"? Well we can consider it a big umbrella, and depending on your background, fit things like reporting, market segmentation, CHURN, market basket analysis etc. But IT departments have been doing this and providing this to business users for a long time. Datawarehouses, datamarts and so on. Everybody has them. But as usual, that's not enough... We're constantly pushing the limits and trying to take advantage of latest technology improvements. And now we're getting to a point where we can "explore" the data that we have... The idea is not to have a report on our desk each morning that took part of the night to run... These reports can contain some very valuable business data that tells us how things are going... which customer are about to leave us etc. The idea is that we can, and should, use the data to explore new business ideas, to create virtual scenarios and in summary, to learn things that we never though about before. And that requires the ability to process data at our speed... and our speed is the speed of thought... I'm sure yours is not slower than mine, and I'd like to think mine is pretty quick (not always I must admit!). The big point is that if you have an idea, an hypotheses, and you need to verify if your business data confirms it, you don't want to wait large minutes or even hours for your query. By the time it returns you lost your focus, and the creativity is wasted. You need the system to answer you in a few seconds... 1 or 2 minutes... Not much more.
But is it possible? Well, yes! And the solution depends on your environment.
As you can imagine, and since this an Informix blog I think we have a solution. Critics will probably be thinking that the solution is BigData, not an "OLTP database" like Informix. Well... I wouldn't replace a true BigData system that crunches thousands of Terabytes (think about Google, YouTube etc.) of non-structured data with Informix... But let me ask you... How many of us work in those kind of environments? For the "common people" we need something that is simple, that works, that's fast and that doesn't require highly qualified engineers and true "data scientists".
And now, yes, I can tell you what I'm thinking about: Informix Warehouse Accelerator. I've mentioned it before, and I've published a reference to a video that explains the raw concepts much better than what I'll ever be able to do. But in short it:

  • Is a new generation in-memory database
  • Takes advantage and is completely adjusted to new chips technology
  • Is designed to scale just by adding a new machine (or node)
  • Is transparent to the regular applications and to any application that can use JDBC, ODBC etc.
  • Is tightly coupled with your regular database that you can use for your OLTP needs
  • It's amazingly fast (yes... Speed of Thought)... Allows the "think", click, look at the results, "rethink", click again, look at new results type of work
  • It's unbelievable simple to setup and use
  • Fit's your real size... it was made for you... Not for the "big boys" and then pushed down the marketing channels to the average business customers
The IBM Informix R&D understands that there is a real market need for a product with these characteristics. And as usual, they try their best to follow the right directions. I believe we can expect a great focus on this in the next major Informix version. If you want to find out more don't forget to attend the public webcast on March 26. I'm sure you'll not be disappointed. Details and registration are here: http://t.co/bpOIJiFnCJ


Versão Portuguesa:

Estava a educar-me na Internet quando me cruzei com mais uma expressão ou jargão de TI, ou usando o termo Inglês uma buzzword. A área de Tecnologias de Informação é muito prolífica no que toca a criar estes chavões ou expressões. E nós o pessoal técnico, costumamos olhar para elas com alguma desconfiança. Mas apesar de estes conceitos serem criados e usados pelas equipas de marketing para promover produtos, aumentar vendas e criar consciência e necessidades nos clientes, a verdade é que resumem de forma perfeita conceitos que são algumas vezes bastante complexos.
Veja-se os casos de "SOA" (Service Oriented Architecture), BigData etc. Muitas pessoas usam estes termos, e até assumem que necessitam das ideias, mesmo sem que as compreendam muitas vezes.
Mas porque é que estou a navegar nestes temas? Bom, porque fui "atingido" por um destes chavões, mas que consigo realmente mapear para algo que conheço e que efetivamente descreve plenamente o potencial dessa "coisa" que eu conheço... Mas comecemos primeiro pelo "chavão": "Analytics à velocidade do pensamento" (decidi não traduzir "analytics" por manifesta dificuldade e porque penso que o termo é suficientemente conhecido). Este chavão tem sido usado há anos para descrever produtos, conceitos e tecnologias que tentam providenciar exatamente isso: A capacidade de analisar dados à velocidade que pensamos sobre eles... Mas recuemos um pouco.... O que é a "análise de dados"? Podemos considerar que é um grande toldo, e dependendo do seu contexto, lá podemos encaixar coisas como elaboração de relatórios, segmentação de mercado, CHURN, análise de cestos de compras etc. Mas os departamentos de informática têm feito isto e fornecido estas capacidades aos departamentos de negócio desde há longo tempo. Datawarehouses, Datamarts etc. Toda a gente os tem, toda a gente os usa. Mas como é hábito, isso tende a não ser suficiente. Estamos constantemente a tentar ultrapassar os limites e a tentar tirar mais proveito dos últimos avanços na tecnologia e do natural aumento de capacidade dos sistemas. E agora estamos num ponto em que podemos "explorar" os dados que temos... A ideia não é ter um relatório na nossa secretária de manhã que terá levado parte da noite a ser gerado... Estes relatórios podem conter alguma informação preciosa que nos diz como as coisas estão a correr... que clientes estão em risco de nos deixar etc... Mas a ideia é que podemos, e devemos, usar os dados para explorar novas ideias sobre o negócio, criar cenários virtuais, em suma aprender coisas que não sabíamos. E isso requer a capacidade de processar os dados à nossa velocidade.. e a nossa velocidade é a velocidade do pensamento. Aposto que a sua não é inferior à minha, e gosto de pensar que a minha é bastante rápida (tenho de admitir que nem sempre!).  O facto é que se temos uma ideia, uma hipótese, e se precisamos de confirmar se os nossos dados de negócio a verificam, não queremos nem podemos esperar longos minutos ou mesmo horas pelo resultado de uma query. Quando chegasse o resultado o nosso foco ter-se-ia perdido e a nossa criatividade teria sido desperdiçada. Precisamos que os sistemas respondam em alguns segundos... 1 ou 2 minutos... Não muito mais que isso.
Mas tal será possível? Sim! E a solução depende do seu ambiente.
Como é fácil de imaginar, e porque isto é um blog dedicado a Informix, julgo que temos uma solução. Os críticos irão desde já pensar que a solução é BigData, não uma "base de dados OLTP" como o Informix. Bom... Eu não trocaria um verdadeiro sistema BigData que "mastigue" milhares de Terabytes de informação não estruturada (pensemos no Google, YouTube etc.) por Informix... Mas deixe-me perguntar... Quantos de nós trabalhamos nesse tipo de ambientes? Para os "comuns mortais" precisamos de algo que seja simples, que funcione, que seja rápido e que não necessite de um exército de engenheiros altamente qualificados e verdadeiros data scientists.
E agora sim, posso revelar aquilo em que estou a pensar: Informix Warehouse Accelerator. Já o mencionei antes, e já publiquei uma referência a um vídeo que o pode explicar melhor do que alguma vez serei capaz. Mas em resumo:
  • É uma base de dados in-memory de última geração
  • Aproveita e está completamente ajustado à tecnologia dos últimos CPUs
  • Está desenhado para crescer pela simples adição de mais máquinas (ou nós)
  • É transparente para as aplicações habituais e para qualquer aplicação que "fale" JDBC ou ODBC
  • Está intimamente ligado com a base de dados "normal" que pode usar para OLTP
  • É espantosamente rápido (sim... velocidade do pensamento)... Permite o ciclo "pense", click, veja os resultados, "repense", click novamente e veja os novos resultados
  • É inacreditavelmente fácil de instalar  e usar
  • Ajusta-se ao tamanho real do seu negócio. Foi feito para si. Não é algo criado para os "gigantes" que depois foi empurrado para baixo pelos canais de marketing até chegar ao negócio médio
O departamento de I&D da IBM Informix compreende que existe uma necessidade real no mercado para um produto com estas características. E como é hábito tentam seguir a direção correta. Penso que podemos esperar um foco significativo nesta área na próxima versão do Informix. Se desejar saber mais sobre o tema não se esqueça de assistir ao webcast público no dia 26 de Março. Estou convencido que não sairá desapontado. Os detalhes e registo estão em: http://t.co/bpOIJiFnCJ





Thursday, March 08, 2012

Too little, too late? / Muito pouco, muito tarde?

This article is written in English and Portuguese
Este artigo está escrito em Inglês e Português


English Version:

I recently got an advice on how to make better use of Twitter... And so I did... I increased the number of people or accounts I'm following and today I was flooded by messages about the launch of one of the database competitors. If you've been paying attention to the net you probably know which one I'm talking about... I've seen some references before and I decided to investigate a little further what were the new features causing all this buzz around it... I must grant credit to the company behind it, since it was not difficult to get information and find several articles and papers and people talking about it.

I think that in the IT field we tend to close ourselves around what we know better. I've seen it in Oracle DBAs, in people working with Informix (you should know it's much harder to find an Informix DBA than a DBA from any other database since we tend to have several hats and play several roles) and with people working in different environments (z/OS is a classical example). And apparently it also happens with people working with SQL Server. I'd say that only this can explain all this enthusiasm... Let me explain why, by picking two of the flagship features of it's new version (I'll be using the terms I've found on the Internet in blogs, articles and so on):
  • AlwaysOn
    Believe it or not this is a form of replication that allows databases to be put together in groups that use a primary server and one or more secondary servers. The replication can be synchronous, or asynchronous. The secondary servers can accept read only queries. It includes some sort of connection redirection and something I could not exactly understand that allows temporary statistics to be computed on the secondaries and stored in temporary spaces...
  • ColumnStore indexes
    This is interesting.... It combines several technologies like in-memory database, columnar storage and star model optimization. This allows incredible time savings, but has some drawbacks, like not being able to update a table with an index of this type (several workaround are mentioned, but all of them have serious implications). It's up to the optimizer to decide if it will use this kind of index or the traditional query plans.
I'm sure that if you're an Informix user, or someone paying attention to the Informix scene, you have a smile on your face by now... And I would not need to explain why. But for the people who are a bit more distracted, or as I mentioned above live on a closed world, let me explain why Informix people have a smile on their faces at this point in the article:

In 2007 (yes, five years ago), IBM introduced version 11.1, code named Chetah, and one of the features was something called MACH-11. This did not cause half the buzz that we're seeing today, but in very short words, it was the ability to configure a set of Informix instances (where we can have several databases) with a primary server, a "close" secondary server, called HDR (which can by synchronous), and several remote secondary servers (RSS) which receive the logs. The communication between these can be encrypted (there are known customer cases using the Internet to ship their logical logs to the other side of the world). Note that the single node HDR existed since version 7 (can't remember the year, because it was before I joined Informix). The HDR was always readable. The RSS are naturally also readable. In 2009 (if memory serves me well, yes, 3 years ago) IBM introduced version 11.5, called Panther where MACH-11 was extended: We can now configure the secondary servers to accept write instructions which are transparently sent to the primary server. A new piece of software was introduced, called the Connection Manager, that can redirect clients based on pre-defined criteria (or SLAs) which are mapped to the several kinds of servers (or to specific server names). Finally, the statistics gathered on the primary are automatically available on the secondary servers, so there is no need to re-calculate them on the secondary servers. All this works in shared nothing architecture which allows for big geographic dispersion and naturally allows for disaster recover... Oh... and it's terribly simple to setup and use, and it's included even in the free product versions (with some restrictions). And I could continue, writing that in 2010 IBM launched version 11.7 which included the concept of flexible grid, ideal for truly distributed systems that need to dhare data.

Last year, (Q1) IBM announced the addition of new technology to the Informix product line, which targeted BI environments with a star schema design that needed very fast response times for analytical queries. This has the name of Informix Warehouse Accelerator, and combines several technologies: in-memory database, columnar storage and full cluster capabilities (for horizontal scaling). It duplicates the data into the accelerator memory and the Informix optimizer redirects the queries that can be accelerated and that would benefit from that acceleration. You can keep using the base tables as usual, you don't have to change the application layer, and you can control through SQL if you want to use the most recent data (stored in the traditional row storage) (slower) or the possibly older data stored in the accelerator (faster). Note that this creates full star (fact tables and dimensions) data duplication for full power acceleration.

So, although as expectable there are a few technical differences that can make us prefer one or the other, the biggest difference between some of these features seems to be the year they were launched... And yes, the buzz generated around them... and that with Informix you have more platform choices. At times like this I tend to agree with people that complain about IBM (they used to complain about Informix) marketing... Maybe, just maybe, IBM should concentrate on marketing instead of product development... That seems to be what others do with apparently good results... But again, if you're an Informix user, I'm sure you prefer the opposite.



Versão Portuguesa:


Recentemente fui aconselhado sobre como tirar mais partido to Twitter... E assim fiz... Aumentei o número de pessoas ou contas que sigo, e hoje fui inundado de mensagens sobre o lançamento de um dos fornecedores de base de dados concorrentes. Se tem prestado atenção à Internet deve saber a qual me estou a referir... Já tinha visto algumas referências antes e decidi investigar um pouco mais quais eram as novas funcionalidades que causavam toda esta movimentação... Tenho de reconhecer e dar crédito à empresa por detrás do produto, pois não foi difícil obter informação e encontrar vários artigos, papers e pessoas a escrever sobre o assunto.


Tenho para mim que as pessoas na área das TIs tendem a fechar-se sobre aquilo que conhecem melhor. Tenho visto isto em DBAs Oracle, em pessoas que trabalham com Informix (deverá saber que é muito mais difícil encontrar um DBA Informix que um DBA de qualquer outra base de dados, dado que tendemos a usar vários chapéus e desempenhar várias funções) e também em pessoas que trabalham em diferentes ambientes (o mundo dos mainframes é um exemplo clássico). E aparentemente isto também acontece com pessoas que trabalham com SQL Server. Diria que essa é a única explicação para tamanho entusiasmo... Deixem-me explicar porquê, pegando em duas das funcionalidades mais badaladas por esses blogs e twits que se referem a este lançamento (vou usar os termos originais em Inglês, que encontrei na Internet):

  • AlwaysOn
    Acredite-se ou não, parece ser uma forma de replicação que permite colocar várias bases de dados em grupos que usam um servidor principal e um ou mais servidores secundários. A replicação pode ser síncrona ou assíncrona. Os servidores secundários podem aceitar queries só de leitura. Incluí algum tipo de redirecionamento de conexões e algo que não consegui compreender totalmente mas que permite que sejam calculadas estatísticas nos nós secundários que são guardadas em espaços temporários.
  • ColumnStore indexes
    Isto é interessante... Combina várias tecnologias, como base de dados em memória, armazenamento em colunas e optimização de modelos em estrela. Isto permite enormes poupanças de tempo, mas traz algumas desvantagens, como não permitir alterações (INSERTs, UPDATEs, DELETEs) em tabelas com este tipo de índices (são apresentadas várias formas de contornar a limitação, mas todas com sérias implicações). Cabe ao optimizador decidir se deve usar este tipo de índice ou usar os planos de execução tradicionais.
Tenho a certeza que se é um utilizador de Informix, ou se tem estado atento ao mundo Informix, deverá ter um sorriso na cara por esta altura... E não necessitaria de explicar porquê, podendo encerrar já aqui este artigo. Mas para as pessoas mais distraídas, ou como disse acima, para quem viva num mundo mais fechado, vou explicar porque é que os utilizadores de Informix estarão a sorrir neste momento.

  Em 2007 (sim, há cinco anos atrás), a IBM lançou a versão 11.1, com o nome de código Cheetah, e uma das suas funcionalidades foi o MACH-11. Isto não causou metade do alarido de hoje, mas em breves palavras, é a capacidade de configurar um conjunto de instâncias Informix (onde podemos ter várias bases de dados) com um servidor primário, um servidor secundário "próximo", chamado HDR (que pode ser síncrono) e vários servidores secundários remotos (RSS) que recebem os logs. A comunicação entre os servidores pode ser encriptada (há casos conhecidos de clientes que usam a Internet para enviar os logical logs para o outro lado do mundo). Note-se que o nó secundário único (HDR) existia desde a versão 7 (não sei o ano, pois foi antes de entrar na Informix). O HDR sempre disponibilizou acesso para leitura. Os RSS incluíram desde o início a capacidade de aceitar queries para leitura. Em 2009 (se a memória não me falha, sim, há três anos atrás) a IBM introduziu a versão 11.50, chamada Panther onde o MACH-11 foi melhorado. Podemos agora configurar os servidores secundários para aceitar instruções de escrita que são enviadas de forma transparente para o primário. Uma nova peça de software foi introduzida com o nome de Connection Manager, que permite redirecionar os clientes baseado em critérios pré-definidos (ou SLAs) que são mapeados nos vários tipos de servidores (ou em identificadores específicos de cada servidor). Finalmente as estatísticas calculadas no servidor primário estão automaticamente disponíveis nos servidores secundários, por isso não há necessidade de as re-calcular nos secundários. Tudo isto funcionam numa arquitetura shared nothing o que permite uma vasta dispersão geográfica e automaticamente disponibiliza disaster recovery. Ah... E é terrivelmente fácil de criar e usar, e vem incluído até nas versões gratuitas do produto (com algumas restrições). E poderia continuar, dizendo que em 2010 a IBM lançou a versão 11.7 que introduziu o conceito de flexibale grid, algo verdadeiramente pensado para ambientes distribuídos mas com necessidade de partilhar dados.



O ano passado (Q1) a IBM anunciou a adição de nova tecnologia á linha de produtos Informix, cujo alvo foi ambientes de BI com modelos em estrela que precisem de tempos de resposta muito rápidos em queries analíticas. Tem o nome de Informix Warehouse Accelerator e combina várias tecnologias: base de dados em memória, armazenamento de colunas, capacidade de trabalhar em cluster (para crescimento horizontal). Duplica os dados para a memória do acelerador e o optimizador do Informix redirecciona as queries que podem ser aceleradas (se daí vier proveito). Podemos continuar a fazer o uso normal das tabelas de base e não é necessário mexer na camada aplicacional, e podemos controlar através de SQL se queremos ver os dados mais recentes (guardados no formato de linha tradicional) (mais lento) ou a versão possivelmente mais antiga guardada no acelerador (muito mais rápido). Note-se que isto duplica completamente o modelo em estrela (tabela de factos e as dimensões) para atingir uma maior performance (toda a query é resolvida no acelerador).


Portanto, embora como seja expectável, existam algumas diferenças técnicas que nos façam gostar mais de uma abordagem ou da outra, a maior diferença entre algumas destas funcionalidades parece residir mais no ano em que apareceram... E sim, no ruído à volta... e no facto de em Informix podermos escolher a plataforma. Em alturas como esta sinto-me tentado a concordar com quem se queixa do marketing da IBM (já se queixavam da Informix). Talvez, quem sabe, a IBM se devesse concentrar mais no marketing do que no desenvolvimento dos produtos... Parece ser o que outros fazem e com aparentes bons resultado... Por outro lado, se é um utilizador Informix tenho a certeza que prefere o contrário.