{"id":110,"date":"2017-10-05T17:16:33","date_gmt":"2017-10-05T17:16:33","guid":{"rendered":"http:\/\/bufallos.com.br\/bg_br\/?p=110"},"modified":"2017-11-10T14:23:25","modified_gmt":"2017-11-10T14:23:25","slug":"staging-area","status":"publish","type":"post","link":"http:\/\/bufallos.com.br\/bg_br\/staging-area\/","title":{"rendered":"Voc\u00ea j\u00e1 ouviu falar em Staging Area? Veja a contribui\u00e7\u00e3o dela no ETL"},"content":{"rendered":"<p style=\"text-align: justify;\"><a href=\"http:\/\/bufallos.com.br\/bg_br\/veja-etl-por-outra-visao\/\">No artigo passado<\/a> falamos sobre ETL e sua import\u00e2ncia no que tange migra\u00e7\u00e3o e integra\u00e7\u00e3o de dados. Vamos dar continuidade ao assunto, mas desta vez, falando sobre a Staging Area que \u00e9 um conceito<br \/>\nmuito importante para que voc\u00ea possa ter um processo ETL bem feito.<\/p>\n<p style=\"text-align: justify;\">S\u00f3 a n\u00edvel de revis\u00e3o, voc\u00eas lembram que no ETL n\u00f3s fazemos :<\/p>\n<ul style=\"text-align: justify;\">\n<li>A extra\u00e7\u00e3o dos dados de uma Fonte, que pode ser um arquivo TXT a uma base de dados;<\/li>\n<li>Temos o processo de Transforma\u00e7\u00e3o, que \u00e9 onde os dados s\u00e3o tratados para serem direcionados para o reposit\u00f3rio de destino;<\/li>\n<li>Temos o Carregamento, que \u00e9 o processo de inserir os dados trno destino.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Para ilustrar a Staging Area, usarei a mesma imagem utilizada no artigo sobre ETL para mostrar como este recurso est\u00e1 dentro do processo.<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-111\" src=\"http:\/\/bufallos.com.br\/bg_br\/wp-content\/uploads\/2017\/10\/fluxoETL-1.png\" alt=\"\" width=\"672\" height=\"298\" srcset=\"http:\/\/bufallos.com.br\/bg_br\/wp-content\/uploads\/2017\/10\/fluxoETL-1.png 672w, http:\/\/bufallos.com.br\/bg_br\/wp-content\/uploads\/2017\/10\/fluxoETL-1-300x133.png 300w\" sizes=\"(max-width: 672px) 100vw, 672px\" \/><\/p>\n<p style=\"text-align: justify;\">\n<p style=\"text-align: justify;\">A <strong>Staging Area<\/strong> \u00e9 uma localiza\u00e7\u00e3o tempor\u00e1ria onde os dados dos sistemas de origem s\u00e3o copiados. Desta forma, ao inv\u00e9s de acessar os dados diretamente da fonte, o processo de &#8220;transforma\u00e7\u00e3o&#8221; do ETL pega os dados da Staging Area para tratar e entregar os dados.<\/p>\n<p style=\"text-align: justify;\">Em alguns casos, ao inv\u00e9s da &#8220;Staging&#8221; ser uma tabela tempor\u00e1ria pode ser uma <strong>view materializada<\/strong> que pode ser executada ( manualmente ou mediante programa\u00e7\u00e3o de carga) para ter os dados sempre atualizados.<\/p>\n<p style=\"text-align: justify;\">Como alguns projetos precisam ter v\u00e1rias fontes de dados, a necessidade de termos uma &#8220;STAGING&#8221; acaba\u00a0sendo obrigat\u00f3rio para que voc\u00ea possa reunir o m\u00e1ximo de dados poss\u00edvel e, com isso, poder selecionar os dados transformando-os em informa\u00e7\u00e3o.<\/p>\n<p style=\"text-align: justify;\">O benef\u00edcio deste recurso \u00e9 poder armazenar os dados em sua origem &#8220;bruta&#8221; para poder trabalhar em cima deles ao inv\u00e9s de ficar sempre tendo que acessar a Fonte de dados. Assim voc\u00ea consegue evitar uma s\u00e9rie de problemas,\u00a0\u00a0como baixa performance por exemplo.\u00a0 Al\u00e9m disso, voc\u00ea tem a seguran\u00e7a que os dados estar\u00e3o a sua disposi\u00e7\u00e3o at\u00e9 que voc\u00ea execute algum processo que limpe a STAGING.<\/p>\n<p style=\"text-align: justify;\"><strong>Vamos a um exemplo<\/strong><\/p>\n<p style=\"text-align: justify;\">Suponha que voc\u00ea tenha que consultar 3 tabelas diferentes ( como fonte de dados) para gerar<br \/>\numa informa\u00e7\u00e3o que alimentar\u00e1 um dashboard.\u00a0Esse dashboard <strong>\u00e9 consumido diariamente<\/strong> <strong>por uma equipe de executivos<\/strong> e por isso precisam estar sempre atualizados.<\/p>\n<p style=\"text-align: justify;\">Acontece que as informa\u00e7\u00f5es que s\u00e3o extra\u00eddas da Fonte s\u00e3o perdidas de tempos em tempos e, caso seja necess\u00e1rio alguma recupera\u00e7\u00e3o na fonte,\u00a0 n\u00e3o seria poss\u00edvel j\u00e1 que as informa\u00e7\u00f5es s\u00e3o externas onde voc\u00ea n\u00e3o tem dom\u00ednio.<\/p>\n<p style=\"text-align: justify;\"><strong>Nesse caso, o que voc\u00ea faria para manter o hist\u00f3rico dos dados?<\/strong><\/p>\n<p style=\"text-align: justify;\">Muito simples. <strong>Construiria uma &#8220;Staging Area&#8221; para armazenar as informa\u00e7\u00f5es da Fonte<\/strong> e passar a us\u00e1-la no projeto. Observe o fluxo abaixo:<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-113\" src=\"http:\/\/bufallos.com.br\/bg_br\/wp-content\/uploads\/2017\/10\/fluxoStage.jpg\" alt=\"\" width=\"606\" height=\"587\" srcset=\"http:\/\/bufallos.com.br\/bg_br\/wp-content\/uploads\/2017\/10\/fluxoStage.jpg 606w, http:\/\/bufallos.com.br\/bg_br\/wp-content\/uploads\/2017\/10\/fluxoStage-300x291.jpg 300w\" sizes=\"(max-width: 606px) 100vw, 606px\" \/><\/p>\n<p style=\"text-align: justify;\">Observe que n\u00f3s acessamos as tabelas de origem para buscar os dados e armazenar nas STAGE&#8217;s, que chamamos de <strong>REPLICA<\/strong>. Essas Replicas eram acessadas por outra Staging que reunia as informa\u00e7\u00f5es das 3 tabelas e, depois de transformar \/ tratar os dados, entregar no Destino ( TB_FINAL).<\/p>\n<p style=\"text-align: justify;\">Bom, \u00e9 isso, vou ficando por aqui.<\/p>\n<p style=\"text-align: justify;\">D\u00favidas ???? <a href=\"http:\/\/www.bufallos.com.br\/bg_br\/contato\/\" rel=\"noopener\">Entre em contato<\/a>.<\/p>\n<p style=\"text-align: justify;\">Forte abra\u00e7o.<\/p>\n<p style=\"text-align: justify;\">Eduardo Santana<br \/>\nbufallos@bufallos.com.br<\/p>\n","protected":false},"excerpt":{"rendered":"<p>No artigo passado falamos sobre ETL e sua import\u00e2ncia no que tange migra\u00e7\u00e3o e integra\u00e7\u00e3o de dados. Vamos dar continuidade<\/p>\n","protected":false},"author":1,"featured_media":115,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/bufallos.com.br\/bg_br\/wp-json\/wp\/v2\/posts\/110"}],"collection":[{"href":"http:\/\/bufallos.com.br\/bg_br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/bufallos.com.br\/bg_br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/bufallos.com.br\/bg_br\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/bufallos.com.br\/bg_br\/wp-json\/wp\/v2\/comments?post=110"}],"version-history":[{"count":10,"href":"http:\/\/bufallos.com.br\/bg_br\/wp-json\/wp\/v2\/posts\/110\/revisions"}],"predecessor-version":[{"id":235,"href":"http:\/\/bufallos.com.br\/bg_br\/wp-json\/wp\/v2\/posts\/110\/revisions\/235"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/bufallos.com.br\/bg_br\/wp-json\/wp\/v2\/media\/115"}],"wp:attachment":[{"href":"http:\/\/bufallos.com.br\/bg_br\/wp-json\/wp\/v2\/media?parent=110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/bufallos.com.br\/bg_br\/wp-json\/wp\/v2\/categories?post=110"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/bufallos.com.br\/bg_br\/wp-json\/wp\/v2\/tags?post=110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}