{"id":55144,"date":"2020-01-13T00:00:00","date_gmt":"2020-01-12T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/tableau-v-roznitse-realno"},"modified":"2020-02-18T14:03:13","modified_gmt":"2020-02-18T11:03:13","slug":"tableau-v-roznitse-realno","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/news\/tableau-v-roznitse-realno","title":{"rendered":"Tableau no varejo, \u00e9 real?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><b>O tempo de relat\u00f3rios em Excel est\u00e1 rapidamente desaparecendo \u2014 a tend\u00eancia por ferramentas convenientes de apresenta\u00e7\u00e3o e an\u00e1lise de informa\u00e7\u00f5es \u00e9 evidente em todos os setores. J\u00e1 discutimos internamente a digitaliza\u00e7\u00e3o da constru\u00e7\u00e3o de relat\u00f3rios e escolhemos o sistema de visualiza\u00e7\u00e3o e an\u00e1lise self-service Tableau. Alexander Bezugly, chefe do departamento de solu\u00e7\u00f5es anal\u00edticas e relat\u00f3rios do Grupo 'M.Video-Eldorado', compartilhou a experi\u00eancia e os resultados da constru\u00e7\u00e3o de um dashboard operacional.<\/b><\/p>\n<p>Direi de imediato que nem tudo o que foi pensado foi poss\u00edvel realizar, mas a experi\u00eancia foi interessante, espero que tamb\u00e9m seja \u00fatil para voc\u00eas. E se algu\u00e9m tiver ideias sobre como poderia ter sido feito melhor \u2014 seria muito grato pelas sugest\u00f5es e ideias.<\/p>\n<p><img decoding=\"async\" alt=\"Tableau no varejo, \u00e9 real?\" src=\"\/wp-content\/uploads\/2020\/01\/81c41899e9b3acf1858a4faa627c121b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAbaixo, falaremos sobre o que enfrentamos e o que aprendemos.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>Como come\u00e7amos<\/h4>\n<p>\nNo 'M.Video-Eldorado', existe um modelo de dados bem elaborado: informa\u00e7\u00f5es estruturadas com a profundidade de armazenamento necess\u00e1ria e uma enorme quantidade de relat\u00f3rios em formato fixo (veja mais detalhes <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mvideo\/blog\/462015\/\">nesta artigo<\/a><\/noindex>). Com isso, os analistas produzem ou tabelas din\u00e2micas ou envios formatados em Excel, ou belas apresenta\u00e7\u00f5es em PowerPoint para os usu\u00e1rios finais.<\/p>\n<p>Cerca de dois anos atr\u00e1s, em vez de relat\u00f3rios em formato fixo, come\u00e7amos a criar relat\u00f3rios anal\u00edticos no SAP Analysis (um complemento do Excel, na verdade \u2014 uma tabela din\u00e2mica sobre um mecanismo OLAP). Mas essa ferramenta n\u00e3o conseguiu atender \u00e0s necessidades de todos os usu\u00e1rios, a maioria continuou a usar informa\u00e7\u00f5es processadas adicionalmente pelos analistas.<\/p>\n<p>Nossos usu\u00e1rios finais se dividem em tr\u00eas categorias:<\/p>\n<p><b>Alta ger\u00eancia<\/b>. Solicita informa\u00e7\u00f5es de forma bem apresentada e visualmente compreens\u00edvel.<\/p>\n<p><b>M\u00e9dia ger\u00eancia<\/b>, usu\u00e1rios avan\u00e7ados. Est\u00e3o interessados em explorar dados e s\u00e3o capazes de construir relat\u00f3rios de forma independente quando possuem as ferramentas. Eles se tornaram os principais usu\u00e1rios de relat\u00f3rios anal\u00edticos no SAP Analysis.<\/p>\n<p><b>Usu\u00e1rios em massa<\/b>. N\u00e3o est\u00e3o interessados em analisar dados de forma independente, usam relat\u00f3rios com um grau limitado de liberdade, em formato de envios e tabelas din\u00e2micas em Excel.<\/p>\n<p>Nossa ideia era atender \u00e0s necessidades de todos os usu\u00e1rios e fornecer uma \u00fanica ferramenta conveniente. Come\u00e7amos com a alta administra\u00e7\u00e3o. Eles precisavam de pain\u00e9is \u00fateis para analisar os principais resultados de neg\u00f3cios. Assim, iniciamos com o Tableau e escolhemos duas \u00e1reas: indicadores de vendas no varejo e online, com uma profundidade e abrang\u00eancia limitadas de an\u00e1lise, que cobrissem cerca de 80% dos dados solicitados pela alta administra\u00e7\u00e3o.<\/p>\n<p>Como os usu\u00e1rios dos dashboards eram a alta administra\u00e7\u00e3o, surgiu outro KPI adicional do produto \u2013 a velocidade de resposta. Ningu\u00e9m vai esperar 20-30 segundos para que os dados sejam atualizados. A navega\u00e7\u00e3o precisava ser conclu\u00edda em 4-5 segundos, de prefer\u00eancia instantaneamente. E nisso, infelizmente, n\u00e3o conseguimos sucesso.<\/p>\n<p>Assim era o layout do nosso dashboard principal:<\/p>\n<p><img decoding=\"async\" alt=\"Tableau no varejo, \u00e9 real?\" src=\"\/wp-content\/uploads\/2020\/01\/a7a028feee6542dfbc1fd3c2feeaa3de.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA ideia chave era reunir os principais impulsionadores de KPI, que somaram 19 no total, \u00e0 esquerda e apresentar sua din\u00e2mica e quebra por principais atributos \u00e0 direita. A tarefa parece simples, a visualiza\u00e7\u00e3o l\u00f3gica e compreens\u00edvel, at\u00e9 que mergulhamos nos detalhes.<\/p>\n<h2>Detalhe 1. Volume de dados<\/h2>\n<p>\nA tabela principal de vendas do ano cont\u00e9m cerca de 300 milh\u00f5es de linhas. Como \u00e9 necess\u00e1rio refletir tamb\u00e9m a din\u00e2mica do ano passado e do antepen\u00faltimo ano, o volume de dados apenas das vendas reais \u00e9 de cerca de 1 bilh\u00e3o de linhas. Al\u00e9m disso, as informa\u00e7\u00f5es sobre dados planejados e um bloco de vendas online s\u00e3o armazenadas separadamente. Portanto, mesmo utilizando a DB SAP HANA em mem\u00f3ria, a velocidade do pedido para selecionar todos os indicadores de uma semana a partir dos atuais reposit\u00f3rios em tempo real era de cerca de 15-20 segundos. A solu\u00e7\u00e3o para esta tarefa parece \u00f3bvia \u2013 uma materializa\u00e7\u00e3o adicional dos dados. Mas tamb\u00e9m existem armadilhas nessa abordagem, que explicaremos abaixo.<\/p>\n<h2>Detalhe 2. Indicadores n\u00e3o aditivos<\/h2>\n<p>\nMuitos de nossos KPIs est\u00e3o relacionados ao n\u00famero de recibos. E esse indicador \u00e9 o COUNT DISTINCT do n\u00famero de linhas (cabe\u00e7alhos dos recibos) e mostra diferentes somas dependendo dos atributos escolhidos. Para exemplificar, como este indicador e os derivados dele devem ser calculados:<\/p>\n<p><img decoding=\"async\" alt=\"Tableau no varejo, \u00e9 real?\" src=\"\/wp-content\/uploads\/2020\/01\/0a6d676f0a5c2b779a5e7892b1f54929.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPara a corre\u00e7\u00e3o dos c\u00e1lculos, \u00e9 poss\u00edvel:<\/p>\n<ul>\n<li>Realizar o c\u00e1lculo desses indicadores em tempo real no reposit\u00f3rio;\n<\/li>\n<li>Realizar o c\u00e1lculo sobre todo o volume de dados no Tableau, ou seja, ao solicitar no Tableau, fornecer todos os dados pelos filtros escolhidos na granularidade das posi\u00e7\u00f5es dos recibos;\n<\/li>\n<li>Criar uma vitrine materializada, na qual todos os indicadores ser\u00e3o calculados em todas as variantes de sele\u00e7\u00e3o, dando resultados n\u00e3o aditivos diferentes.\n<\/li>\n<\/ul>\n<p>\n\u00c9 claro que no exemplo UTE1 e UTE2 s\u00e3o atributos do material que representam a hierarquia de produtos. Isso n\u00e3o \u00e9 uma coisa est\u00e1tica, pois a gest\u00e3o dentro da empresa \u00e9 realizada por meio deles, j\u00e1 que diferentes grupos de produtos s\u00e3o gerenciados por diferentes gerentes. Tivemos muitas revis\u00f5es globais dessa hierarquia, quando todos os n\u00edveis mudaram, quando as interconex\u00f5es foram reavaliadas, assim como mudan\u00e7as pontuais constantes, quando um grupo passa de um n\u00f3 para outro. Em relat\u00f3rios comuns, tudo isso \u00e9 calculado em tempo real a partir dos atributos do material, no caso da materializa\u00e7\u00e3o desses dados, \u00e9 necess\u00e1rio desenvolver um mecanismo para rastrear tais mudan\u00e7as e reprocessar automaticamente dados hist\u00f3ricos. \u00c9 uma tarefa bastante n\u00e3o trivial.<\/p>\n<h2>Item 3. Compara\u00e7\u00e3o de dados <\/h2>\n<p>\nEste item \u00e9 semelhante ao anterior. A ess\u00eancia \u00e9 que, na empresa, ao analisar, \u00e9 comum formar v\u00e1rios n\u00edveis de compara\u00e7\u00e3o com o per\u00edodo anterior:<\/p>\n<p><i>Compara\u00e7\u00e3o com o per\u00edodo anterior (dia a dia, semana a semana, m\u00eas a m\u00eas)<\/i><\/p>\n<p>Nesta compara\u00e7\u00e3o, presume-se que, dependendo do per\u00edodo selecionado pelo usu\u00e1rio (por exemplo, a 33\u00aa semana do ano), devemos mostrar a din\u00e2mica em rela\u00e7\u00e3o \u00e0 32\u00aa semana. Se escolhemos dados de um m\u00eas, por exemplo, maio, essa compara\u00e7\u00e3o mostraria a din\u00e2mica em rela\u00e7\u00e3o a abril.<\/p>\n<p><i>Compara\u00e7\u00e3o com o ano passado<\/i><\/p>\n<p>Aqui, o ponto principal \u00e9 que, ao comparar por dias e semanas, voc\u00ea n\u00e3o pega o mesmo dia do ano passado, ou seja, n\u00e3o pode simplesmente subtrair um ano do ano atual. Voc\u00ea deve observar o dia da semana que est\u00e1 sendo comparado. Por outro lado, ao comparar meses, \u00e9 necess\u00e1rio pegar exatamente o mesmo dia cal\u00eandario do ano passado. Tamb\u00e9m existem particularidades com anos bissextos. Nas fontes de dados, todas as informa\u00e7\u00f5es est\u00e3o distribu\u00eddas por dias; n\u00e3o h\u00e1 campos separados para semanas, meses ou anos. Portanto, para obter uma an\u00e1lise completa no painel, \u00e9 preciso considerar n\u00e3o apenas um per\u00edodo, como uma semana, mas 4 semanas, e depois comparar esses dados, refletindo a din\u00e2mica e as varia\u00e7\u00f5es. Assim, essa l\u00f3gica de forma\u00e7\u00e3o de compara\u00e7\u00f5es din\u00e2micas pode ser implementada tanto no Tableau quanto do lado da vitrine. Sim, conhec\u00edamos e pens\u00e1vamos nisso desde a fase de planejamento, mas era dif\u00edcil prever seu impacto no desempenho do painel final.<\/p>\n<p>Na implementa\u00e7\u00e3o do painel, seguimos um longo caminho Agile. Nossa tarefa era fornecer um instrumento funcional com os dados necess\u00e1rios para testes o mais rapidamente poss\u00edvel. Por isso, avan\u00e7amos em sprints e nos baseamos na minimiza\u00e7\u00e3o do trabalho do lado do armazenamento atual.<\/p>\n<h2>Parte 1. A f\u00e9 no Tableau<\/h2>\n<p>\nPara simplificar o suporte de TI e permitir a r\u00e1pida implementa\u00e7\u00e3o de mudan\u00e7as, decidimos implementar a l\u00f3gica de c\u00e1lculo de indicadores n\u00e3o aditivos e a compara\u00e7\u00e3o de per\u00edodos passados no Tableau.<\/p>\n<h3>Etapa 1. Tudo em Live, sem personaliza\u00e7\u00f5es nas vitrines.<\/h3>\n<p>\nNesta etapa, conectamos o Tableau \u00e0s vitrines atuais e decidimos ver como seria calculado o n\u00famero de recibos por um ano.<\/p>\n<p><b>Resultado:<\/b><\/p>\n<p>A resposta foi desanimadora \u2013 20 minutos. A transfer\u00eancia de dados pela rede, juntamente com a alta carga no Tableau, nos fez perceber que a l\u00f3gica de indicadores n\u00e3o aditivos precisava ser implementada no HANA. Isso n\u00e3o nos assustou muito; j\u00e1 t\u00ednhamos experi\u00eancia semelhante com BO e Analysis e sab\u00edamos como construir vitrines r\u00e1pidas no HANA que fornecem indicadores n\u00e3o aditivos calculados corretamente. Agora, s\u00f3 precis\u00e1vamos adapt\u00e1-las ao Tableau.<\/p>\n<h3>Etapa 2. Ajustamos as vitrines, sem materializa\u00e7\u00e3o, tudo em tempo real.<\/h3>\n<p>\nCriamos uma nova vitrine separada, que gerava os dados necess\u00e1rios para o TABLEAU em tempo real. De modo geral, conseguimos um bom resultado, reduzindo o tempo de forma\u00e7\u00e3o de todos os indicadores de uma semana para 9-10 segundos. E, honestamente, esper\u00e1vamos que, no Tableau, o tempo de resposta do dashboard fosse de 20-30 segundos na primeira abertura e, em seguida, devido ao cache, de 10 a 12, o que nos satisfaria.<\/p>\n<p><b>Resultado:<\/b><\/p>\n<p>Primeira abertura do dashboard: 4-5 minutos<br \/>\nQualquer clique: 3-4 minutos<br \/>\nNingu\u00e9m esperava tal incremento no funcionamento da vitrine.<\/p>\n<h2>Parte 2. Mergulho no Tableau<\/h2>\n<p><\/p>\n<h3>Etapa 1. An\u00e1lise de desempenho do Tableau e ajuste r\u00e1pido<\/h3>\n<p>\nCome\u00e7amos a analisar em que o Tableau estava gastando a maior parte do tempo. E para isso existe um bom conjunto de ferramentas, o que, claro, \u00e9 um ponto positivo do Tableau. O principal problema que identificamos foram as consultas SQL muito complexas que o Tableau gerava. Elas estavam relacionadas principalmente a:<\/p>\n<p> \u2014 transposi\u00e7\u00e3o de dados. Como o Tableau n\u00e3o tem ferramentas para transpor datasets, para construir a parte esquerda do dashboard com uma representa\u00e7\u00e3o detalhada de todos os KPIs, tivemos que criar uma tabela via case. O tamanho das consultas SQL no banco de dados alcan\u00e7ava 120.000 caracteres.<\/p>\n<p><img decoding=\"async\" alt=\"Tableau no varejo, \u00e9 real?\" src=\"\/wp-content\/uploads\/2020\/01\/8fc4d99017ddd604bbabb5ea0a19b38d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n \u2014 sele\u00e7\u00e3o do per\u00edodo de tempo. Essa consulta a n\u00edvel de banco de dados levava mais tempo para compilar do que para executar:<\/p>\n<p><img decoding=\"async\" alt=\"Tableau no varejo, \u00e9 real?\" src=\"\/wp-content\/uploads\/2020\/01\/a9b9cc6ddd6b03c643935d070532728e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOu seja, o processamento da consulta: 12 segundos + 5 segundos de execu\u00e7\u00e3o.<\/p>\n<p>Decidimos simplificar a l\u00f3gica de c\u00e1lculos no lado do Tableau e transferir mais uma parte dos c\u00e1lculos para a vitrine e o n\u00edvel do banco de dados. Isso trouxe bons resultados.<\/p>\n<p>Primeiro, realizamos a transposi\u00e7\u00e3o em tempo real, atrav\u00e9s de full outer join na etapa final de c\u00e1lculo da VIEW, de acordo com essa abordagem descrita na wiki <noindex><a rel=\"nofollow\" href=\"http:\/\/en.wikipedia.org\/wiki\/Transpose\">Transpose \u2014 Wikipedia, the free encyclopedia<\/a><\/noindex> e <noindex><a rel=\"nofollow\" href=\"http:\/\/en.wikipedia.org\/wiki\/Elementary_matrix#Row-addition_transformations\">Elementary matrix \u2014 Wikipedia, the free encyclopedia<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"Tableau no varejo, \u00e9 real?\" src=\"\/wp-content\/uploads\/2020\/01\/5259995831dc8ae379a34bfe84e52daa.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOu seja, criamos uma tabela de configura\u00e7\u00e3o \u2013 uma matriz de transposi\u00e7\u00e3o (21x21) e obtivemos todos os indicadores em uma divis\u00e3o linha a linha.<\/p>\n<p>Era:<br \/>\n<img decoding=\"async\" alt=\"Tableau no varejo, \u00e9 real?\" src=\"\/wp-content\/uploads\/2020\/01\/9382ee65a1482cc137a52b5f80c39eeb.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTornou-se:<br \/>\n<img decoding=\"async\" alt=\"Tableau no varejo, \u00e9 real?\" src=\"\/wp-content\/uploads\/2020\/01\/1d6653ec427ce0621b441943f589d860.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA transposi\u00e7\u00e3o da base de dados consome quase nenhum tempo. A consulta para todos os indicadores em uma semana continuou a ser executada em cerca de 10 segundos. No entanto, perdeu-se a flexibilidade na constru\u00e7\u00e3o do painel para um indicador espec\u00edfico, ou seja, para a parte direita do painel onde \u00e9 apresentada a din\u00e2mica e a detalhamento de um determinado indicador, antes a vitrine processava em 1-3 segundos, pois a consulta era realizada para um \u00fanico indicador, mas agora o banco de dados sempre seleciona todos os indicadores e filtra o resultado antes de devolv\u00ea-lo ao Tableau.<\/p>\n<p>Como resultado, a velocidade de opera\u00e7\u00e3o do painel reduziu-se quase em 3 vezes.<\/p>\n<p><b>Resultado:<\/b><\/p>\n<ol>\n<li>5 seg \u2014 parsing do painel, visualiza\u00e7\u00f5es<\/li>\n<li> 15-20 seg \u2014 prepara\u00e7\u00e3o para a compila\u00e7\u00e3o das consultas com a execu\u00e7\u00e3o dos pr\u00e9-c\u00e1lculos no Tableau<\/li>\n<li> 35-45 seg \u2014 compila\u00e7\u00e3o das consultas SQL e execu\u00e7\u00e3o simult\u00e2nea e sequencial delas no Hana<\/li>\n<li> 5 seg \u2014 processamento dos resultados, ordena\u00e7\u00e3o, rec\u00e1lculo das visualiza\u00e7\u00f5es no Tableau<\/li>\n<li>Claro, tais resultados n\u00e3o eram satisfat\u00f3rios para o neg\u00f3cio, e continuamos a otimiza\u00e7\u00e3o.<\/li>\n<\/ol>\n<p><\/p>\n<h3>Etapa 2. M\u00ednima l\u00f3gica no Tableau, completa materializa\u00e7\u00e3o<\/h3>\n<p>\nEntendemos que construir um painel com tempo de resposta de alguns segundos em uma vitrine que funciona em 10 segundos \u00e9 imposs\u00edvel, e consideramos op\u00e7\u00f5es de materializa\u00e7\u00e3o dos dados no lado do banco de dados especificamente para o painel necess\u00e1rio. Mas encontramos um problema global, descrito acima \u2013 indicadores n\u00e3o aditivos. N\u00e3o conseguimos fazer com que ao alterar filtros ou desagrega\u00e7\u00f5es, o Tableau alternasse de maneira flex\u00edvel entre diferentes vitrines e n\u00edveis, pr\u00e9-calculados para diferentes hierarquias de produtos (no exemplo, tr\u00eas consultas sem UTE, com UTE1 e UTE2 geram resultados diferentes). Portanto, decidimos simplificar o painel, renunciar \u00e0 hierarquia de produtos no painel e ver qu\u00e3o r\u00e1pido ele poderia ser em uma vers\u00e3o simplificada.<\/p>\n<p>Assim, nesta \u00faltima etapa, montamos um armazenamento separado, onde armazenamos todos os KPIs em formato transposto. No lado do banco de dados, qualquer consulta a esse armazenamento \u00e9 executada em 0,1 \u2013 0,3 segundos. No painel, obtivemos os seguintes resultados:<\/p>\n<p>Primeira abertura: 8-10 segundos<br \/>\nQualquer clique: 6-7 segundos<\/p>\n<p>O tempo que o Tableau consome \u00e9 composto por:<\/p>\n<ol>\n<li>0,3 seg. \u2014 parsing do painel e compila\u00e7\u00e3o das consultas SQL\n<\/li>\n<li>1,5-3 seg. \u2014 execu\u00e7\u00e3o das consultas SQL no Hana para as principais visualiza\u00e7\u00f5es (iniciada paralelamente ao item 1)\n<\/li>\n<li>1,5-2 seg. \u2014 renderiza\u00e7\u00e3o, rec\u00e1lculo de visualiza\u00e7\u00f5es\n<\/li>\n<li>1,3 seg. \u2014 execu\u00e7\u00e3o de consultas SQL adicionais para obter valores relevantes dos filtros (Marca, Divis\u00e3o, Cidade, Loja), an\u00e1lise de resultados\n<\/li>\n<\/ol>\n<p><\/p>\n<h3>Se resumirmos brevemente<\/h3>\n<p>\nGostamos da ferramenta Tableau em termos de visualiza\u00e7\u00e3o. Na fase de layout, consideramos diferentes elementos de visualiza\u00e7\u00e3o e encontramos todos eles nas bibliotecas, incluindo segmenta\u00e7\u00f5es complexas de m\u00faltiplos n\u00edveis e gr\u00e1ficos waterfall multilaterais.<\/p>\n<p>Ao implementar dashboards com os principais indicadores de vendas, enfrentamos dificuldades de desempenho que ainda n\u00e3o conseguimos superar. Gastamos mais de dois meses e conseguimos um dashboard funcionalmente incompleto, cuja velocidade de resposta est\u00e1 no limite do aceit\u00e1vel. E chegamos \u00e0s seguintes conclus\u00f5es:<\/p>\n<ol>\n<li>O Tableau n\u00e3o consegue trabalhar com grandes volumes de dados. Se o seu modelo de dados tiver mais de 10 GB de dados (cerca de 200 milh\u00f5es x 50 linhas), o painel desacelera seriamente \u2013 levando de 10 segundos a v\u00e1rios minutos para cada clique. Testamos tanto com live-connect quanto com extrato. A velocidade de opera\u00e7\u00e3o \u00e9 compar\u00e1vel.\n<\/li>\n<li>Limita\u00e7\u00e3o ao usar m\u00faltiplos reposit\u00f3rios (datasets). N\u00e3o h\u00e1 como especificar a rela\u00e7\u00e3o entre datasets por meio de ferramentas padr\u00e3o. Se forem usadas solu\u00e7\u00f5es alternativas para conectar datasets, isso afetar\u00e1 significativamente o desempenho. No nosso caso, consideramos a op\u00e7\u00e3o de materializar dados em cada fatia necess\u00e1ria das visualiza\u00e7\u00f5es e fazer altera\u00e7\u00f5es nesses datasets materializados, mantendo os filtros previamente selecionados \u2014 isso se revelou imposs\u00edvel de fazer no Tableau.\n<\/li>\n<li>No Tableau, n\u00e3o \u00e9 poss\u00edvel criar par\u00e2metros din\u00e2micos. Voc\u00ea n\u00e3o pode preencher um par\u00e2metro que \u00e9 usado para filtrar um dataset no extract ou durante o live-connect com o resultado de outra sele\u00e7\u00e3o de dataset ou resultado de outra consulta SQL, apenas com a entrada nativa do usu\u00e1rio ou uma constante.\n<\/li>\n<li>Limita\u00e7\u00f5es relacionadas \u00e0 constru\u00e7\u00e3o de dashboards com elementos OLAP|Tabela Resumida. <br \/>\nNo MSTR, SAP SAC e SAP Analysis, ao adicionar um conjunto de dados ao relat\u00f3rio, todos os objetos est\u00e3o interconectados por padr\u00e3o. No Tableau, isso n\u00e3o ocorre, a conex\u00e3o deve ser configurada manualmente. Isso pode ser mais flex\u00edvel, mas para todos os nossos dashboards isso \u00e9 uma exig\u00eancia obrigat\u00f3ria para os elementos \u2013 portanto, resulta em uma carga de trabalho adicional. Al\u00e9m disso, se voc\u00ea criar filtros interconectados, para que, por exemplo, ao filtrar por regi\u00e3o, a lista de cidades seja restrita apenas \u00e0s cidades dessa regi\u00e3o, voc\u00ea imediatamente se depara com consultas sequenciais ao banco de dados ou extra\u00e7\u00f5es, o que desacelera significativamente o dashboard.<\/li>\n<li>Restri\u00e7\u00f5es nas fun\u00e7\u00f5es. Tanto sobre a extra\u00e7\u00e3o quanto, AINDA MAIS, sobre o conjunto de dados de Live-connect n\u00e3o \u00e9 poss\u00edvel realizar transforma\u00e7\u00f5es em massa. Isso pode ser feito atrav\u00e9s do Tableau Prep, mas isso representa uma carga de trabalho adicional e mais uma ferramenta que precisa ser estudada e mantida. Por exemplo, voc\u00ea n\u00e3o pode transpor dados ou unir dados com eles mesmos. Isso \u00e9 restringido atrav\u00e9s de transforma\u00e7\u00f5es em colunas ou campos individuais, que devem ser escolhidos por meio de case ou if, gerando consultas SQL muito complexas, nas quais o banco de dados gasta a maior parte do tempo compilando o texto da consulta. Essas inflexibilidades da ferramenta tiveram que ser resolvidas no n\u00edvel da vitrine, o que leva a uma complexidade adicional no armazenamento, cargas e transforma\u00e7\u00f5es extras.\n<\/li>\n<\/ol>\n<p>\nN\u00e3o descartamos o Tableau. Mas como uma ferramenta capaz de construir dashboards industriais e um meio pelo qual podemos substituir e digitalizar todo o sistema de relat\u00f3rio corporativo da empresa, o Tableau n\u00e3o \u00e9 considerado.<\/p>\n<p>Atualmente, estamos ativamente desenvolvendo um dashboard semelhante em outra ferramenta e, paralelamente, tentando revisar a arquitetura do dashboard no Tableau para simplific\u00e1-lo ainda mais. Se a comunidade estiver interessada, compartilharemos os resultados.<\/p>\n<p>Tamb\u00e9m estamos aguardando suas ideias ou sugest\u00f5es sobre como construir dashboards r\u00e1pidos no Tableau sobre volumes t\u00e3o grandes de dados, pois temos um site onde os dados s\u00e3o muito mais volumosos do que no varejo.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mvideo\/blog\/483656\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0440\u0435\u043c\u044f \u043e\u0442\u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438 \u0432 Excel \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0445\u043e\u0434\u0438\u0442 \u2014 \u0442\u0440\u0435\u043d\u0434 \u043d\u0430 \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432\u0438\u0434\u0435\u043d \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u0444\u0435\u0440\u0430\u0445. \u041c\u044b \u0434\u0430\u0432\u043d\u043e \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u043b\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u0446\u0438\u0444\u0440\u043e\u0432\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043e\u0442\u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438 \u0438 \u0432\u044b\u0431\u0440\u0430\u043b\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 self-service \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 Tableau. \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0411\u0435\u0437\u0443\u0433\u043b\u044b\u0439, \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043e\u0442\u0434\u0435\u043b\u0430 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0438 \u043e\u0442\u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438 \u0413\u0440\u0443\u043f\u043f\u044b \u00ab\u041c.\u0412\u0438\u0434\u0435\u043e-\u042d\u043b\u044c\u0434\u043e\u0440\u0430\u0434\u043e\u00bb, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u043e\u0431 \u043e\u043f\u044b\u0442\u0435 \u0438 \u0438\u0442\u043e\u0433\u0430\u0445 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0431\u043e\u0435\u0432\u043e\u0433\u043e \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430. \u0421\u043a\u0430\u0436\u0443 \u0441\u0440\u0430\u0437\u0443, \u043d\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-55144","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0440\u0435\u043c\u044f \u043e\u0442\u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438 \u0432 Excel \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0445\u043e\u0434\u0438\u0442 \u2014 \u0442\u0440\u0435\u043d\u0434 \u043d\u0430 \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432\u0438\u0434\u0435\u043d \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u0444\u0435\u0440\u0430\u0445.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pt\/blog\/news\/tableau-v-roznitse-realno\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Tableau \u0432 \u0440\u043e\u0437\u043d\u0438\u0446\u0435, \u0440\u0435\u0430\u043b\u044c\u043d\u043e? | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0440\u0435\u043c\u044f \u043e\u0442\u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438 \u0432 Excel \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0445\u043e\u0434\u0438\u0442 \u2014 \u0442\u0440\u0435\u043d\u0434 \u043d\u0430 \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432\u0438\u0434\u0435\u043d \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u0444\u0435\u0440\u0430\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/news\/tableau-v-roznitse-realno\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-01-12T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:03:13+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Tableau no varejo, \u00e9 realmente poss\u00edvel? | ProHoster","description":"O tempo de relat\u00f3rios em Excel est\u00e1 rapidamente desaparecendo \u2014 a tend\u00eancia por ferramentas convenientes de apresenta\u00e7\u00e3o e an\u00e1lise de informa\u00e7\u00f5es \u00e9 vis\u00edvel em todos os setores.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/tableau-v-roznitse-realno","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Tableau \u0432 \u0440\u043e\u0437\u043d\u0438\u0446\u0435, \u0440\u0435\u0430\u043b\u044c\u043d\u043e? | ProHoster","og:description":"\u0412\u0440\u0435\u043c\u044f \u043e\u0442\u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438 \u0432 Excel \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0445\u043e\u0434\u0438\u0442 \u2014 \u0442\u0440\u0435\u043d\u0434 \u043d\u0430 \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432\u0438\u0434\u0435\u043d \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u0444\u0435\u0440\u0430\u0445.","og:url":"https:\/\/prohoster.info\/pt\/blog\/news\/tableau-v-roznitse-realno","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-01-12T21:00:00+00:00","article:modified_time":"2020-02-18T11:03:13+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"55144","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:50:02","updated":"2022-10-05 23:10:07","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/55144","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=55144"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/55144\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=55144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=55144"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=55144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}