Latest news

O Tableau 2019.3 está lançado, vamos ver as novidades!

O Tableau é um software que ajuda as pessoas a ver e entender os dados, transformando a forma como é utilizado para ajudar a resolver os seus problemas. Torna a análise de dados rápida e simples, esteticamente mais apelativa e útil, para que seja possível que os dados tenham verdadeiro impacto.

Este é o objetivo de Tableau: transformar dados em valor nos negócios, para que possa revelar um impacto positivo nos mesmos.

Existe agora uma nova versão a ser lançado, o Tableau 2019.3 Beta, e, ao instalar esta versão, podemos ver novas e interessantes capacidades. Ao utilizar esta nova versão conseguimos melhorar os nossos objetivos. Em baixo, distingui as características mais interessantes:

  • Explain Data – uma nova característica que nos ajuda a entender o “porquê” de existirem valores inesperados nos dados;
  • Tableau Catalog – uma nova característica no Add-on Data Management que nos ajuda a garantir que estamos a utilizar os dados certos, no momento certo.

Explain Data

O Explain Data existe para nos fornecer explicações, através do método estatístico Bayesian, para valores inesperados nos dados. Com esta nova função é possível identificar causas e ver novas relações entre os dados, e encontra-se disponível em todos os workbooks existentes, tanto para Creators como para Explorers. Não é necessário preparar os dados ou efetuar qualquer instalação.

É muito simples: selecione uma marca e aprenda mais sobre ela.

A figura abaixo apresenta uma possível explicação dos dados, extraída de uma marca selecionada.

Neste exemplo, estamos a analisar uma visualização sobre determinados produtos e o seu lucro médio. Podemos verificar que o produto Copiers apresenta um lucro muito superior aos restantes produtos. Com o Explain Data, percebemos que isto acontece porque existe um valor muito elevado nos registos deste produto que fazem aumentar estas medidas. Esta característica também apresenta algumas visualizações sobre relacionadas com esta explicação, como a primeira tabela que apresenta o registo onde se verifica um valor superior.

O painel apresentado nesta nova feature apresenta os seguintes componentes:

  1. Selecionar a Informação Marcada – indica que marca está a ser descrita e analisada;
  2. Medir a Seleção – mostra as medidas disponíveis para selecionar a que está a ser utilizada para a explicação;
  3. Resumo do intervalo esperado – descreve se o valor é inesperado ou não, tendo em conta as outras Marcas na visualização;
  4. Lista de Explicação – exibe uma lista das possíveis explicações para o valor alterado na Marca Selecionada. A seleção de uma explicação na lista irá mostrar mais detalhes no painel Explicação, à direita;
  5. Painel Explicação – mostra a explicação selecionada com uma combinação de texto e visualizações.

Tableau Catalog

Esta nova característica pretende ajudar as organizações a melhorar a forma como gerem os seus dados, porque, atualmente, é muito difícil para os utilizadores perceber se estão a utilizar os dados certos, no momento certo. Esta é uma nova feature que estará disponível no Tableau Server e no Tableau Online.

Com o Tableau Catalog é fácil ter uma visualização completa de todos os dados que estão a ser utilizados no Tableau, e como estão contactados com o analytics. Os detentores dos dados conseguem automaticamente identificar informação nos dados, incluindo permissões, métricas e lineares, como mostrado na figura abaixo.

Neste exemplo, podemos ver que com esta característica é como se olhássemos para um catálogo de dados, sobre uma base de dados. Podemos ver avisos, que aparecem caso existam erros na qualidade dos dados (a), tais como campos ausentes, e podemos também ver lineares sobre os dados (b), tais como que tabelas estão relacionadas, e em que workbooks e sheets estão esses dados a ser utilizados.

O Tableau Catalog permite, ainda, construir uma relação de confiança nos dados utilizados por toda a empresa, já que cria um painel de com detalhes dos dados (como podemos ver na figura abaixo):

  • Avisos sobre a qualidade dos dados, que permite aos utilizadores perceberem quando existe um problema com os dados presentes num dashboard – como um campo ausente ou uma interrupção de manutenção;
  • Definições e metadados adicionais podem ser utilizados, permitindo aos utilizadores um melhor entendimento dos dados em si.

Estes detalhes dos dados estão incluídos nos dashboards, permitindo, por sua vez, aos utilizadores e viewers entenderem a fonte e a linearidade dos dados dentro de uma visualização.

Em conclusão, com estas novas features, o Tableau pretende:

  • Eliminar conteúdo duplicado, perdas de tempo e a prevenção de análises efetuadas com base em dados errados (através do Tableau Catalog). Com os avisos sobre a qualidade dos dados, o utilizador consegue controlar a existência de erros nos valores e resolver o possível problema. Uma das maiores mudanças é a possibilidade de ver todas as fontes de dados que estão a ser utilizadas, o que evita a publicação duplicada dos dados;
  • Garantir explicações rápidas para valores inesperados nos dados através do Explain Data. Esta característica oferece maior detalhe sobre os dados, especialmente sobre os outliers, e permite a exploração de outros cenários que podem ser futuramente investigados ou analisados, reduzindo tempo de análise – especialmente quando existe um data set com um enorme volume de dados.

Com estas novas features, o Tableau evolui, tornando-se mais forte no mercado, trazendo características únicas, quando comparado com os seus competidores. Isto é, sem dúvida, uma vantagem porque, hoje em dia, existem inúmeras soluções que se encontram a evoluir, tornando-se necessário fazer efetivamente a diferença.

Para mais informação e mais detalhes sobre as novas características do Tableau 2019.3, aceda ao link.

Carina MartinsO Tableau 2019.3 está lançado, vamos ver as novidades!
read more

Single Page Applications

Atualmente, as aplicações web estão a tomar conta das velhas aplicações de ambiente de trabalho e trazem consigo vantagens, tais como a dissociação de qualquer dispositivo e a conveniência de utilização. A procura de aplicações web ricas, complexas, mas de fácil utilização, cresce todos os dias. Em par com esta procura e também a ganhar cada vez mais popularidade nas tendências de desenvolvimento web estão as aplicações de página única.

Uma aplicação de página única (sigla em inglês: SPA) é uma aplicação que interage com o utilizador ao reescrever a página atual de forma dinâmica em vez de carregar uma página completamente nova a partir de um servidor. Tal resulta numa experiência mais confortável para o utilizador e que não é constantemente interrompida pela sucessiva navegação entre páginas.

Contexto – aplicações tradicionais de várias páginas

As aplicações de várias páginas (sigla em inglês: MPA) são as aplicações web “tradicionais” que recarregam e apresentam uma página completamente nova como o resultado de uma interação entre o utilizador e a app. Todas as interações do utilizador – tais como clicar num link ou trocar um URL – e todas as trocas de dados de e para o servidor formam um novo pedido para uma nova página a ser apresentada. Este processo demora tempo e pode ter efeitos pouco positivos na experiência de utilização, se pretender uma aplicação interativa e de rápida resposta.

Este comportamento predefinido das MPA pode ser resolvido ao tirar partido do AJAX, que permite que apenas uma parte da página seja atualizada. No entanto, temos de ter em atenção a complexidade adicionada por esta solução ao processo de desenvolvimento.
Uma MPA costuma utilizar JavaScript (JS) em front end para adicionar interatividade à aplicação, mas não depende de JS para apresentar o conteúdo da página. Tal torna uma MPA numa arquitetura que é adequada ao suporte de navegadores legados que costumam oferecer uma funcionalidade de JS mais limitada.

A grande vantagem de uma MPA assenta na otimização de motores de busca (sigla em inglês: SEO). Quando um pedido é feito ao servidor para apresentar uma nova página, a resposta é o conteúdo final para essa página. As ferramentas dos motores de busca conseguem ver exatamente o que o utilizador vê, por isso, a aplicação vai ter um bom desempenho no motor de busca. Esta é uma das grandes razões para alguns dos grandes websites, como a Amazon e o The New York Times, ainda utilizarem esta arquitetura.

Por outro lado, as aplicações desenvolvidas com esta arquitetura tendem a ser maiores e mais lentas, ao carregar constantemente páginas a partir do servidor, o que afeta a experiência de utilização de forma negativa. De uma perspetiva de desenvolvimento, o processo tende a ser mais complexo e pode resultar numa dissociação entre back end e front end.

O crescimento das aplicações de página única

Como o nome indica, uma SPA só tem uma única página. O Código necessário para apresentar a aplicação é encontrado em apenas um carregamento. Após este carregamento inicial, não é acionada qualquer atualização da página, não existem novos ficheiros HTML a serem transferidos do server. Em vez disso, a aplicação reapresenta partes da página enquanto resultado de qualquer navegação no navegador. Toda a comunicação que se segue entre a aplicação e o servidor tem apenas o objetivo de encontrar e publicar dados de e no servidor, e acontece tudo nos bastidores utilizando API bem definidos dos serviços de back end.

As SPA assentam fortemente em JS para conseguirem ouvir os eventos e reapresentar partes da página. Acontece tudo através de JS. Este tipo de arquitetura é dependente de JS e não há volta a dar. Por causa disto, as SPA privilegiam navegadores modernos que oferecem um suporte de JS mais vasto e atualizado.

O comportamento de uma SPA torna uma aplicação muito rápida e de rápida resposta, oferecendo ao utilizador uma experiência interativa semelhante utilizando um dispositivo móvel ou um computador. Da perspetiva do desenvolvimento, conseguimos dissociar o back end e o front end. O back end já não é responsável por apresentar a visão, e a comunicação entre os dois módulos abrange apenas as trocas de dados. O processo de deploy também é muito mais simplificado.

O problema com as SPA prende-se no desafio colocado ao desenvolver a aplicação SEO-friendly. Dado que a maioria do conteúdo da página é carregado assincronamente, as ferramentas dos motores de busca não têm maneira de saber que mais dados vão ser adicionados à página. Não existe uma única solução predefinida para resolver este obstáculo, mas existem algumas ferramentas que podem ser utilizadas para criar uma SPA que seja SEO-friendly. Também é provável que as estruturas de SPA vão evoluir com o tempo para que seja mais fácil para as ferramentas dos motores de busca encontrarem e organizarem o conteúdo da aplicação.

As aplicações de página única são o futuro da web?

Este tipo de aplicações existe há anos, mas só agora está a tornar-se mais comum do mundo dos programadores. Isto deve-se principalmente à aparência e à crescente popularidade das estruturas e bibliotecas web que permitem desenvolver SPA fora do comum de forma rápida e eficiente, tais como Angular e React. Se compararmos a evolução de tendências nestes termos, é possível ver que a popularidade das SPA, Angular e React, evoluíram proporcionalmente ao longo do tempo.

As SPA têm vindo a tornar-se cada vez mais populares, e parece que não vão desaparecer tão cedo. As vantagens técnicas e funcionais das SPA serem SEO-friendly não podem ser ignoradas, e espera-se que este tipo de aplicações se torne disponível mais frequentemente, especialmente com a evolução das tecnologias envolvidas e, com sorte, a resolução de alguns dos obstáculos das SPA. No entanto, precisamos de reconhecer que, de momento, uma SPA pode não ser a solução certa para todos os projetos.

Algumas características das MPA tornam este método mais adequado para aplicações que tenham muito conteúdo em categorias diferentes e onde o desempenho de um motor de busca seja muito importante, tal como em lojas online ou marketplaces. As SPA são adequadas para plataformas dinâmicas, possivelmente com uma componente móvel onde uma interface complexa e uma experiência de utilização satisfatória e reativa sejam fatores essenciais a ser considerados, tais como em redes sociais ou comunidades fechadas. Existe uma Terceira possibilidade para quem gosta das SPA e das suas características, mas não consegue encaixar a sua aplicação uma só página: considerando uma aplicação híbrida, pode tirar o melhor dos dois métodos.

Nenhuma arquitetura é certa ou errada. Só precisa de saber as suas necessidades e escolher a melhor solução para si e para a sua aplicação.

Patrícia PereiraSingle Page Applications
read more

Apache Spark: como criar um processamento distribuído eficiente?

No dia 30 de maio a XTech Community promoveu uma sessão hands-on para explicar à comunidade como criar um processamento distribuído eficiente com Spark, demonstrando as suas vantagens em relação a Hadoop MapReduce.

Mas antes de mais, o que é Spark? É uma framework de processamento paralelo e distribuído, que nos últimos anos tem sido um dos projetos mais ativos na área de Big Data, tanto na utilização como contribuição pela comunidade open source.

As Funcionalidades de Apache Spark

Como principais vantagens em relação ao Hadoop MapReduce foram apresentadas a facilidade da escrita de jobs compostos por múltiplos passos, através da API de Spark baseada em programação funcional bem como a capacidade de guardar os dados intermédios em memória.

Apache Spark

As funcionalidades oferecidas pelo Apache Spark foram introduzidas através das suas bibliotecas embutidas, implementadas por cima do Spark Core Engine, e pela possibilidade de usar bibliotecas externas disponíveis no repositório de Spark Packages.

Apache Spark

Conceitos de Spark Core

Após à introdução, o foco da apresentação passou para os conceitos importantes de Spark Core, tendo-se explicado:

  • em que consiste o programa Driver escrito pelos developers,
  • a abstração de RDD que permite paralelizar a execução de operações sobre datasets distribuídos
  • os tipos de operações aplicáveis sobre os RDDs: actions e

Através de um exemplo de word count em Spark, demonstrou-se a facilidade da escrita de um primeiro job e quais os componentes envolvidos.

Apache Spark

Foi também apresentado o resultado da execução do word count na Spark UI –  interface web disponibilizada para monitorizar a execução de aplicações Spark, que permitiu explicar o significado das unidades de execução física em quais uma aplicação de Spark se divide: Job, Stage e Task.

Apache Spark

Particionamento

O seguinte tópico abordado no meetup Spark Intro and Beyond foi o particionamento do Apache Spark. O número de partições de um RDD depende diretamente do particionamento dos dados na origem e de algumas possíveis parametrizações.

É importante perceber como funciona o particionamento uma vez que o número de partições de um RDD determina o paralelismo da execução das operações distribuídas e o seu controlo permite escrever aplicações mais eficientes, utilizando da melhor forma maneira os recursos do cluster.

Apache Spark

Abordámos quatro técnicas para aumentar o paralelismo da execução:

  • Através do 2º parâmetro da função sc.textFile(“hdfs://…”, 120)
  • Aumentando o número de partições do tópico de Kafka lido
  • Através do 2º parâmetro das wide transformations, e.g rdd.reduceByKey(_ + _, 100)
  • Através da função rdd.repartition(120)

Redução do Shuffle Data

Por fim, mostrámos 3 técnicas que minimizam a quantidade de dados que são enviados entre dois Stages de um Job, que se designa por shuffle data, e permite aumentar a desempenho da aplicação.

Shuffles em Spark são muito pesados porque os dados são enviados em rede entre os Executors de Spark que residem em diferentes nós do cluster, e escritos para e lidos de disco pelos Executors do mesmo nó.

As técnicas apresentadas para reduzir shuffle data foram:

  • Uso de operações com pré-agregação, e.g reduceByKey vs groupByKey
  • Aplicar operações sobre RDDs previamente particionados e cached
  • Broadcast Joins

Conclusões

No final, para além de serem esclarecidas algumas dúvidas sobre a apresentação, foram também discutidos vários pontos relevantes como:

  • Data locality e a integração do Spark em clusters Hadoop
  • Cenários nos quais faz sentido aplicar processamento em Spark
  • Possíveis razões de um Spark job ter um elevado tempo de execução e como diagnosticar através da Spark UI

Mais informações sobre o meetup Spark Intro and Beyond.

Andriy Zabolotnyy

Big Data expert, Xpand IT

Andriy ZabolotnyyApache Spark: como criar um processamento distribuído eficiente?
read more

Novo mercado estratégico: chegámos à Suécia!

A Xpand IT é uma empresa portuguesa, com capital português, e a dimensão nacional que já atingiu é, de facto, extraordinária. Terminou o ano de 2018 com um crescimento de 45% e uma faturação a rondar os 15 milhões de euros, o que levou à distinção alcançada no ano de 2019 no Ranking do Financial Times (FT1000: Europe’s Fastest Growing Companies). A Xpand IT foi uma das três tecnológicas portuguesas a estar presente neste importante Ranking.

No entanto, na Xpand IT queremos crescer sempre mais. Queremos partilhar o nosso expertise pelos quatro cantos do mundo e levar um pouco da nossa cultura a todos os nossos clientes. E a verdade é que a participação internacional da Xpand IT tem também crescido substancialmente, tendo fechado o ano anterior com um total de 46,5% das suas receitas provenientes de clientes internacionais.

Este crescimento tem sido sustentado por dois fortes eixos de atuação: a exploração de mercados estratégicos, como por exemplo, Alemanha e Reino Unido (onde já temos uma subsidiária e escritório) mas também pela forte alavancagem a nível de produto que se tem registado. O Xray e o Xporter, ambos bastante associados ao ecossistema Atlassian, são utilizados por mais de 5000 clientes, em mais de 90 países! Para este ano estão previstos lançamentos de novos produtos, em áreas como Inteligência Artificial (Digital Xperience) ou Business Intelligence.

Este ano, a estratégia de internacionalização da Xpand IT passa por apostar em novos mercados estratégicos na Europa: os países nórdicos. A Suécia será o primeiro país a estar sob foco, mas o objetivo é alargar as iniciativas aos restantes: Noruega, Dinamarca e Finlândia.

Esta aposta prende-se com o facto de já existirem diversas iniciativas comerciais neste mercado, e pelo incentivo de alguns dos nossos parceiros, como a Microsoft, Hitachi Vantara ou Cloudera, que já se encontram bem estabelecidos em países como a Suécia. Para além disso, o facto de as barreiras culturais e diferença horária não serem significativas, faz com que esta seja uma das nossas apostas para o ano de 2019.

Para Paulo Lopes, CEO & Senior Partner da Xpand IT: “Temos um enorme orgulho no crescimento que a empresa tem alcançado nos últimos anos e a nossa expectativa é que este sucesso se continue a verificar. O processo de internacionalização da Xpand IT já conta com alguns anos, sendo estamos a entrar numa 2ª fase, onde iremos apostar mais fortemente novos mercados onde sabemos que a nossa expertise tecnológica, aliada a uma equipa e cultura únicas, podem realmente fazer a diferença. Acreditamos que a Suécia é a aposta certa para a entrada no mercado dos países nórdicos. Em breve iremos dar mais novidades sobre esta aposta!…”

Ana LamelasNovo mercado estratégico: chegámos à Suécia!
read more

Zwoox – Simplifica a ingestão de dados

O Zwoox é uma ferramenta de ingestão de dados, desenvolvida pela Xpand IT, e que facilita a importação e estruturação de dados para um cluster Hadoop.

Esta é uma ferramenta altamente escalável dado que se encontra totalmente integrada no Cloudera Enterprise Data Hub e tira total proveito de várias tecnologias Hadoop, como Spark, Hbase e Kafka. Com o Zwoox a necessidade de codificar data pipelines “à mão” é eliminada, qualquer que seja a fonte de dados.

Uma das maiores vantagens do Zwoox é o facto de acelerar a ingestão de dados, oferecendo inúmeras opções no que à importação de dados diz respeito permitindo inclusive replicar RDBMS DML em near real-time para estruturas de dados Hadoop.

Apesar de existirem várias ferramentas que permitem a importação de dados para clusters Hadoop, só com o Zwoox é possível efetuar esta importação de forma acessível, eficiente e altamente escalável, persistindo os dados em HDFS (com tabelas Hive) ou Kudu.

Algumas das possibilidades que o Zwoox oferece:

  • Automação de particionamento em HDFS;
  • Tradução de data types;
  • Carregamento total ou por deltas;
  • Tabelas de audit (com full history) sem impactos na performance;
  • Derivação de novas colunas de funções pré-definidas ou código “pluggable”;
  • Integração operacional com o Cloudera Manager.

Esta ferramenta encontra-se disponível no Cloudera Solutions Center e estará brevemente no site da Xpand IT. Por enquanto, pode também consultar o documento informativo sobre o produto.

Se precisa de saber mais sobre o Zwoox ou sobre ingestão de dados, contacte-nos.

Ana LamelasZwoox – Simplifica a ingestão de dados
read more

Tecnologia biométrica de reconhecimento

Hoje, mais do que nunca, é fundamental que os utilizadores se sintam seguros ao utilizar um serviço, uma aplicação móvel ou a efetuar a inscrição num website. A prioridade para estes utilizadores é saber que os seus dados estarão, de facto, protegidos. Desta forma, a tecnologia biométrica de reconhecimento desempenha um papel fundamental, já que é uma das formas mais seguras e eficazes de autenticar o acesso dos utilizadores aos seus dispositivos móveis, às suas contas pessoais de e-mail ou mesmo às suas contas bancárias online.

A biometria tem-se tornado, então, uma das formas mais rápidas, seguras e eficazes de oferecer proteção aos indivíduos, não só por ser um dos requisitos de autenticação de cada pessoa enquanto cidadão de um país – ou não fosse a impressão digital um dos dados recolhidos e armazenados para efeitos de documentação legal – como por ser a maneira mais casual (e fiável) de proteger os nossos telemóveis. As vantagens de utilização de tecnologia biométrica de reconhecimento são, então, a eficácia, a precisão, a conveniência e a escalabilidade.

Nas TI, a biometria encontra-se maioritariamente ligada à verificação da identidade de alguém, através das suas características físicas ou comportamentais – impressão digital, reconhecimento facial, reconhecimento de voz ou mesmo a identificação da retina/ íris. Refere-se, então, a tecnologias que medem e analisam as características do corpo humano como forma de permitir ou negar acessos.

Mas como funciona esta identificação no backend? É utilizado um software que identifica pontos específicos dos dados apresentados, que são como pontos de partida. Estes pontos de partida são processados e transportados até uma base de dados que, por sua vez, utiliza um algoritmo que converte as informações num valor numérico. É este valor que irá ser comparado com a entrada biométrica registada do utilizador que o scanner detetou, e a sua autenticação é aprovada ou negada, consoante exista correspondência ou não.

O processo de identificação pode ser efetuado de duas formas: comparação de um-valor-para- muitos ou de um-valor-para-um. O processo de identificação de um-valor-para-muitos acontece quando uma amostra de um utilizador é submetida num sistema e comparada com amostras de outros indivíduos; já o processo de autenticação de um-valor-para-um funciona com apenas um utilizador, comparando os dados fornecidos com os dados anteriormente submetidos – como acontece  nos nossos dispositivos móveis.

Existem inúmeros tipos de leitura biométrica, sendo que estes são os mais comuns:

  1. Impressão digital (uma das tecnologias biométricas de identificação mais utilizadas e mais económicas, já que apresenta um grau de precisão bastante considerável. Na verificação de uma impressão são analisados vários pontos do dedo, como terminações e arcos únicos). Exemplos: aplicações Médis, MBWay ou Revolut;
  2. Reconhecimento facial (através de uma imagem facial do utilizador, constituída por vários pontos de identificação da face, é possível definir distâncias entre olhos e nariz, por exemplo, a estrutura óssea e os contornos de cada componente do rosto. Esta forma de leitura pode apresentar falhas consoante o utilizador tenha óculos de sol ou barba). Exemplo: Face ID da Apple;
  3. Reconhecimento de voz (a identificação é feita através de uma análise aos padrões de voz de cada indivíduo, juntando uma combinação entre fatores físicos e comportamentais. No entanto, não é das formas de reconhecimento mais fiáveis). Exemplos: Siri, da Apple, ou Alexa, da Amazon;
  4. Identificação pela íris/ pela retina (menos utilizada, a identificação pela íris/ retina acontece com o armazenamento dos contornos e padrões geométricos existentes – no caso da íris – e com a identificação de um indivíduo através de vasos sanguíneos no fundo dos olhos – no caso da retina. A garantia de fiabilidade é muito elevada, mas o custo é muito alto, o que faz com que não seja utilizada de forma massiva). Leia este artigo sobre identificação de identidade no setor da banca;
  5. Estilo de escrita (biometria comportamental baseada no tipo de escrita) (por fim, outra forma de autenticar um utilizador, é através da sua escrita – por exemplo, uma assinatura – já que a pressão no papel, a velocidade de escrita ou os movimentos exercidos no ar são muito difíceis de imitar. Esta é uma forma de autenticação mais antiga, utilizada fundamentalmente pela banca). Veja o artigo sobre a Read API, Microsoft Azure.
Ana LamelasTecnologia biométrica de reconhecimento
read more

Novo ciclo: a primeira edição do evento DnA 2019

O mês de maio ficou marcado na Xpand IT como o início de um novo ciclo: a primeira edição do evento DnA (Data ‘n’ Analytics 2019). Sob o mote “Building a Smarter Future”, esta nova abordagem quis mostrar como as diferentes áreas tecnológicas e de expertise, como Big Data, Data Science, Digital Xperience ou Business Intelligence, conseguem trabalhar de forma integrada, gerando efetivas mais-valias para as empresas.

A keynote da manhã focou-se, essencialmente, em transmitir uma visão coesa entre as diferentes áreas, demonstrando aos mais de 200 participantes que vivemos num mundo em que tudo à nossa volta gera dados e que essa é, de facto, uma oportunidade de ouro para conhecer melhor os seus clientes, propondo-lhes soluções mais adequadas para os desafios que enfrentam.

No entanto, essa oportunidade só existe se a soubermos criar, se soubermos potenciá-la, e Sérgio Viana, Digital Xperience Lead, mostrou à plateia de que forma o nosso expertise tem ajudado dezenas de empresas a cultivar essas mesmas oportunidades, apostando em construir uma cultura digital. Mas os dados gerados, se não foram extraídos e analisados de forma adequada, não passam disso mesmo: dados. Apenas com análises aprofundadas, com o software correto, e de acordo com as necessidades de cada decisor de negócio, é possível extrair todas as informações necessárias para que as decisões possam ser cada vez melhores e mais sustentadas. Todo este processo foi assegurado por Ricardo Pires, Business Intelligence Lead, que demonstrou como efetuá-lo de forma simples, mas eficaz. Por último, mas não menos importante, para que as análises possam ser efetuadas no momento certo, e a sustentar todos os processos de dados, são necessárias estruturas de Big Data que assegurem o volume desses dados, uma velocidade adequada (near real-time) e a escalabilidade conforme a necessidade de cada empresa – este foi o contributo de Nuno Barreto, Big Data Lead, que referiu ainda a nova geração de soluções de Big e Fast Data.

Da parte da tarde, as apresentações tornaram-se mais técnicas e com um cariz mais prático, sendo asseguradas por convidados tais como: Christian Violi e Filippo Lambiente, da Cloudera; Alexandre Baptista, da Microsoft; Daniel Olaso, da Hitachi Vantara; Rute Ferreira, da Tableau; Pedro Adão, da EDP Comercial; João Mira, do Santander e, ainda, por dois Xpanders, Boris Tchikoulaev e Luís Vicente. Numa sala à parte, decorreu, ainda, um workshop sobre como criar uma plataforma de dados.

No final das apresentações – e porque o dia a isso convidava – a Xpand IT ofereceu aos participantes um momento de networking final, no qual incluiu um beer-call. No próximo ano a Xpand IT promete trazer o DnA novamente, sempre focado em encontrar soluções para os desafios que as empresas modernas enfrentam, e sempre com os olhos postos no futuro. Mas o nosso futuro começa agora.

Aqui ficam algumas fotografias do grande evento do ano sobre Big Data & Analytics:

  • DNA
Rúben VanravanNovo ciclo: a primeira edição do evento DnA 2019
read more

Open Day da Xpand IT 2019: três razões para te inscreveres em 2020

No dia 6 de junho abrimos as portas dos nossos escritórios em Lisboa para receber 12 estudantes finalistas de engenharia informática que aceitaram o desafio de conhecer a nossa cultura e metodologias de trabalho durante a 4ª edição do Open Day da Xpand IT 2019.

Um dia de networking, desafios tech e partilha de know-how entre os Xpanders e os jovens talentos que provaram ter uma paixão enorme pela tecnologia. A próxima edição é em 2020 e contamos-te agora a journey dos participantes que estiveram connosco.

Open Day da Xpand IT 2019
Open Day da Xpand IT 2019
Open Day da Xpand IT 2019

Três razões para te inscreveres no Open Day em 2020:

  • Vais poder ter contacto hands-on com tecnologias inovadoras e disruptivas que utilizamos com o mentoring dos nossos experts. Durante o Open Day da Xpand IT 2019, os estudantes partilharam boas práticas, good tips e know-how relevante para o dia-a-dia de um projeto tecnológico.
  • Vais ser desafiado para Tech challenges, simulando casos reais. Os alunos finalistas tiveram um primeiro contacto com a tecnologia Salesforce e resolveram business cases com Tableau, uma ferramenta de business intelligence.
  • Os participantes viveram a experiência de serem Xpanders por um dia, desfrutando de momentos de trabalho mas também de descontração.
Open Day da Xpand IT 2019
Open Day da Xpand IT 2019
Open Day da Xpand IT 2019

Tech Challenge Salesforce: como trabalhar e desenvolver?

O desafio foi dividido em duas partes:

  • Na primeira parte, os estudantes foram introduzidos à ferramenta de CRM.
  • Na segunda parte, aplicaram um caso prático, aprendendo a manipular o modelo de dados e a criar automações para simular no Salesforce uma plataforma de vendas. Desta forma, puderam ter uma visão 360º sobre o perfil dos clientes (informações, produtos, transações).

Conclusões

A maioria experimentou pela primeira vez esta ferramenta de CRM, tendo, assim, tido a oportunidade de conhecer melhor os desafios ligados ao desenvolvimento nesta área.

Tech Challenge Tableau: como resolver business cases?

O desafio foi dividido em duas partes:

  • Inicialmente foi feita uma apresentação da ferramenta de Business Intelligence – Tableau bem como do universo de dados a utilizar no desafio. Os estudantes tiveram oportunidade de ver as potencialidades da ferramenta e de algumas das funcionalidades mais relevantes.
  • Seguidamente foi apresentado o desafio com um conjunto de questões de negócio da empresa fictícia que teriam de ser respondidas criando visualizações de Tableau. No final foi pedia a criação de um dashboard com as especificações descritas.

Conclusões

Com este desafio os estudantes puderam experimentar uma ferramenta de Business Intelligence e responder a um conjunto de questões semelhantes às que existem num projeto real.

O Talento compensa

Os jovens provaram o seu talento com muita energia, dedicação e empenho, tendo sido atribuído aos cinco vencedores dos dois desafios um prémio especial: uma Alexa. Acreditamos que a excelência deve ser sempre reconhecida.

Open Day da Xpand IT 2019

Ser Xpander por um dia

Para além do know-how técnico que puderam aprofundar, os participantes viveram a nossa cultura:

Partilhámos momentos descontraídos, games, um almoço (pizza time!) mas o fundamental foi o networking com as equipas e com os diferentes roles que enfrentaram, em que foi possível partilhar novas ideias. Esta é a abordagem de proximidade que nos caracteriza na nossa forma de estar no dia-a-dia.

Open Day da Xpand IT 2019

Expertise goes both ways

Queremos estar ao lado das melhores expectativas, metodologias e dos desafios tecnológicos de futuro. Por isso, experiências como o Open Day da Xpand IT 2019 são uma oportunidade incrível para estarmos em contacto com diferentes realidades universitárias e backgrounds, ouvindo e integrando novos insights.

Não percas as próximas edições. A paixão pela tecnologia é aquilo que nos une!


O que dizem os estudantes?

Sara GodinhoOpen Day da Xpand IT 2019: três razões para te inscreveres em 2020
read more

Utilizar o Salesforce com Pentaho Data Integration

Pentaho Data Integration é a ferramenta mais indicada para mover dados entre diferentes sistemas, e não significa que seja necessariamente um processo de business intelligence. Pode ser utilizada como uma ferramenta ágil para integração ponto-a-ponto entre sistemas. O Pentaho Data Integration possui o seu próprio input step Salesforce, o que faz desta ferramenta uma opção fantástica em processos de integração.

O que é o Salesforce?

O Salesforce é uma solução em cloud para gestão de relacionamento com o cliente (CRM). Sendo uma Plataforma como Serviço (PaaS – Application as a Service) multi-tenant de última geração, a sua infraestrutura única permite-lhe focar todos os seus esforços nas áreas mais essenciais: criar micro-serviços com potencial de alavancagem em aplicações inovadoras e acelerar verdadeiramente o processo de desenvolvimento CRM.

O Salesforce é a plataforma ideal para lhe providenciar uma visão de 360º do seu cliente e das suas interações com a sua marca, independentemente de acontecerem via campanhas por e-mail, call centers, redes sociais ou uma simples chamada telefónica. A automação de marketing, por exemplo, é apenas uma das inúmeras vantagens que o Salesforce lhe oferece numa plataforma polivalente.

Como estabelecemos ligação entre o Pentaho Data Integration e Salesforce?

Para garantir o acesso, necessitamos de todos os detalhes de conexão do Salesforce: nome de utilizador, palavra-passe e o URL do serviço web SOAP. É imperativo que o PDI seja compatível com a versão da API SOAP que utiliza. Por exemplo:

  Versão do PDI   Versão da API SOAP
  2.0   1.0
  3.8   20.0
  4.2   21.0
  6.0   24.0
  7.0   37.0
  8.2   40.0

 

De qualquer forma, mesmo que o Salesforce nos providencie uma nova versão da API, ainda é possível utilizar a API anterior na perfeição. No entanto, tenha cuidado, porque caso tenha criado novos módulos na plataforma, a nova API não incluirá esses elementos personalizados e, consequentemente, terá que utilizar a linguagem Salesforce Object Query Language (SOQL) para obter os dados. Não se preocupe, pois explicaremos tudo na próxima secção.

Especificações SOQL

A sintaxe SOQL é bastante similar à sintaxe SQL, com algumas diferenças:

  1. O SOQL não reconhece quaisquer carateres especiais (tais como * ou ; ) e, portanto, é necessário utilizar todos os campos obtidos a partir do Salesforce, e não é possível adicionar o ; no EOF.
  2. Não é possível utilizar comentários em queries; o SOQL não os reconhece.
  3. Para criar joins necessitamos de saber algumas regras:
    • Em módulos nativos para os quais necessitamos de associações (relação direta), é necessário adicionar um ‘s’ ao nome final. Por exemplo:

Get all Orders with and without has Products (OrderItem Module)

    • Em módulos de personalização para os quais necessitamos de obter dados de outro módulo (relação direta) necessitamos de adicionar ‘__r’ ao nome final. Por exemplo:

Filter  OrderItems by Product_Skins__c field inside Product 2 Module

Como extraímos dados do Salesforce com o Pentaho Data Integration?

Podemos utilizar o input step Salesforce integrado no PDI para obter dados do Salesforce via SOQL; note que o limite máximo de carateres na criação de um query é de 20,000.

  • Parâmetros de conexão especificados:
    • Salesforce web service URL:

<url of Salesforce Platform>/services/Soap/u/<number of API Soap updated>

  • Nome de Utilizador: Nome de Utilizador de Acesso à Plataforma (ex.: myname@pentaho.com)
  • Palavra-passe:Palavra-passe + Token (a empresa providencia o token para adicionarmos à palavra-passe em Kettle.Properties) ex.: PASSWORDTOKEN
  • Definições especificadas:
    • Especificar o query: Sem ativo (como é possível verificar na imagem abaixo) necessitamos apenas de selecionar o módulo (a tabela que contem os registos aos quais pretendemos aceder).

Para o próximo separador (Content / Conteúdo) existem as seguintes opções:

  • Caso seja pretendido obter todos os registos do Salesforce (por outras palavras, obter registos “delete” e “insert” – “eliminados” e “inseridos”) é necessário assinalar a opção “Query All Records” e selecionar dos parâmetros abaixo uma das seguintes opções:
    • All (obter registos “new” (novos) e registos “delete” (eliminados)), Update (obter apenas “inserts” (inseridos) e registos “update” (atualizados));
    • Caso desmarque a opção “Query All Records” nos parâmetros, obteremos apenas registos “insert”/”update” – “inseridos”/”eliminados”;
    • Delete (obtemos apenas registos “delete” – “eliminados”).

De que forma o Pentaho Data Integration reconhece registos “novos” / “atualizados” ou “eliminados”?

O Salesforce possui campos nativos bastante úteis para controlar o processo. No entanto, não é possível observar esses campos no layout ou no esquema de construção em SF. Apenas os dados associados se encontram visíveis com estes campos específicos ao utilizar o SOQL ou PDI para aceder aos mesmos.

  • CreatedById e CreateDate são campos que exibem o utilizador, assim como a hora em que os registos foram criados.
  • LastModifiedDate e LastModifiedID mostra a hora e o utilizador que modificou o registo. Podemos utilizar estes campos para obter dados atualizados em SF.
  • Id (Salesforce Id), presente no URL como uma string de 18 carateres, (Java config.) exibe o registo.
    Por exemplo:
  • Temos um campo adicional, IsDeleted, com o tipo de dados = Boolean que informa se o registo foi removido (IsDelete = true) ou não (IsDelete = false).

No campo “Additional” / “Adicional”, temos três opções adicionais:

  • Time out é útil em sistemas assíncronos, uma vez que possibilita a configuração do intervalo “timeout” em milissegundos antes da expiração do step;
  • Use Compression é útil para obter mais performance do processo. Quando selecionada, esta opção fará com que o sistema redirecione todas as chamadas para a API e as envie em formato .qzip;
  • Limit serve para configurar o número máximo de registos a recolher do query.

No último separador é possível visualizar todos os campos do query no interior do primeiro separador. Sem o SOQL, obtemos todos os campos dos módulos. Com SOQL, obtemos todos os campos pertencentes à função SELECT.

Necessitamos de mais cuidado com a opção “Get Field Button”, uma vez que o Type (Tipo), Format (Formato) e Size (Tamanho) não podem ser corrigidos. Nestes casos, é necessário recorrer a alterações manuais.
Para obter mais detalhes:

O base64 exibe imagens ou PDFs presentes em SF.

Caso seja necessário enviar imagens (.jpeg) ou PDF (.pdf) diretamente para SF, carregamos este tipo de campos via JAVA, convertendo ficheiros binários para o base64.

Por exemplo, para enviar um ficheiro PDF para SF:

Como carregar dados para Salesforce via Pentaho Data Integration?

Envie dados para o Salesforce através de outras bases de dados ou a partir do Salesforce.

A opção de conexão é igual à descrita previamente no input Salesforce.
Nas opções das Definições (Settings), temos os seguintes parâmetros:

  • Rollback all Changes on error – caso nos deparemos com algum erro, nada será integrado em SF;
  • Batch Size – é possível trazer um número estático de registos e integrá-los simultaneamente (no mesmo batch) em SF;
  • Em Output Fields Label é necessário adicionar o nome do campo do qual pretendemos obter o Salesforce ID para cada registo integrado.

No parâmetro Fields Option, necessitamos de colocar o mapeamento dos campos.

  • Para Module Field, necessitamos de colocar o campo API Name em SF para obter novos dados;
  • Em Steam Field, é necessário colocar o nome do campo que será integrado no respetivo campo em SF;
  • Use External id = N para todos os campos atualizados no respetivo Módulo;
  • Use External id = Y para todos os registos que necessitamos atualizar, mas que não se encontram presentes noutro módulo.

Eliminar registos no Salesforce

Eliminamos registos do Salesforce com o step Delete Salesforce. É necessário especificar o campo chave do Table Input que faz a referência para a chave em Salesforce (Salesforce ID).

Atualizar registos Salesforce

Caso pretendamos apenas atualizar registos em SF, é necessário utilizar o Salesforce Update Step.
Incluído na seccção Fields (Key included) Option, necessitamos de adicionar a chave aos registos para o módulo específico.

Upsert de dados no Salesforce

Se desejarmos inserir e atualizar (“insert” e “update”) no mesmo Batch em SF, necessitamos de utilizar a funcionalidade Salesforce Upsert.
O parâmetro Upsert Comparison Field ajuda a comparar os dados em SF.

Fátima MirandaUtilizar o Salesforce com Pentaho Data Integration
read more

Estivemos na JNation. Next Stop: Landing Festival

Vem connosco aos maiores eventos de Tecnologia.

Na Xpand IT acreditamos que a expertise tecnológica não se “desenvolve” sozinha e deve ser partilhada e vivida com os melhores profissionais, que todos os dias contribuem para melhorar o mundo através da tecnologia. Esse é um dos nossos propósitos quando fazemos o nosso caminho: ir onde o talento está e trabalhar com as tecnologias que fazem a diferença.

Enquanto especialistas em Java e JavaScript, não podíamos faltar à JNation, a maior conferência em Portugal nas duas linguagens mais populares do mundo. Fomos sponsors do evento que reuniu developers, gigantes tecnológicas e oradores internacionais, no dia 4 de junho, em Coimbra, no Convento de São Francisco.

Stand Xpand IT na JNation 2019
Xpand IT na JNation stand

Ao longo do dia, as nossas equipas estiveram presentes e puderam partilhar e aprofundar os casos de sucesso que nos têm distinguido no mercado. É razão para dizermos que tivemos casa cheia no nosso stand, repleto de momentos de alegria e networking. Para além da expertise, levámos connosco a boa disposição e vestidos a rigor desenvolvemos várias ativações que se revelaram uma surpresa:

Sorteio de Alexa com Simulador de mota

Há jogos que são para sempre e tecnologias também. Há desafios a que não conseguimos ficar indiferentes. O nosso simulador de motas criou um ambiente de verdadeira adrenalina. Os participantes aceleraram a fundo e no final do dia sorteámos uma Alexa:

Vencedor prémio Alexa Xpand It JNation

Find the bug

Levámos muito a sério a gamification. O nosso stand inclui um code challenge à altura dos mais atentos. Os participantes que encontraram os bugs de código ganharam senhas que puderam trocar por prémios da JNation.

A conferência foi um sucesso e uma excelente oportunidade de networking em que partilhámos com os developers as diferentes áreas e projectos em que desenvolvemos com Java, Spring, JavaScript, angular, react.js, typescript, neo4j, node.js, entre outros.


Tive a oportunidade de ir à JNation com a Xpand IT e foi enriquecedor porque aprendi bastante com as talks sobre Kubernetes e Kotlin.

Pedro Marques, Enterprise Solutions expert da Xpand IT
Pedro Marques da Xpand IT

Aproveitei ao máximo as diversas talks durante o dia, especialmente as de Kubernetes e JavaScript. O evento estava muito bem organizado

Paulo Alves, Collaboration and Development Solutions expert da Xpand IT
Paulo Alves da Xpand IT

Próxima paragem no Landing Festival: Participa no Workshop Azure!

A próxima paragem é já no dia 28 e 29 de junho, na Landing Festival, em Lisboa, o maior evento dedicado ao desenvolvimento de skills profissionais techy. Na Landing Festival tens a oportunidade de participar em workshops, receber mentoring e insights relevantes na definição do teu percurso profissional.

Queremos conhecer-te. A ti e a todas as tuas perguntas. Vem descobrir o que fazemos e falar connosco. Podes também inscrever-te no workshop de Azure promovido pelo Sérgio Silva, expert em Digital Xperience da Xpand IT.

Sara GodinhoEstivemos na JNation. Next Stop: Landing Festival
read more