QlikView | Qlik Sense: Script de Carregamento usando QlikView Scripting Language faz chamadas para a API do Google Geocoding e Processa a Resposta XML

QlikView | Qlik Sense: Script de Carregamento usando QlikView Scripting Language faz chamadas para a API do Google Geocoding e Processa a Resposta XML

Aplicabilidades

Geocodificação de Endereços:


Localização de Dados: Pode ser usado para converter endereços em coordenadas geográficas (latitude e longitude), o que é útil para aplicações de mapeamento e análise espacial.


Visualização: Ideal para criar mapas de localização em ferramentas como Google Maps ou GIS (Sistema de Informação Geográfica) usando coordenadas.


 

QlikView | Qlik Sense: Script de Carregamento usando QlikView Scripting Language faz chamadas para a API do Google Geocoding e Processa a Resposta XML



 Veja também: 

Power BI | DAX - CEP Brasileiro - Como formatar o CEP - Criando uma Coluna Calculada? Power BI | DAX - CEP Brasileiro - Como formatar o CEP - Com Máscara Condicional?

Power BI | DAX - CEP Brasileiro - Como formatar o CEP - Tratando Dados Não Númericos? Power BI | DAX - CEP Brasileiro - Como formatar o CEP - Criando uma Medida?


Análise de Dados:


Análise Geoespacial: Pode ser usado para análise de dados baseada em localização, como identificar padrões geográficos ou realizar análises de proximidade.


Segmentação de Mercado: Empresas podem usar coordenadas para segmentar e analisar mercados com base em localização geográfica.


Integração com Outras Ferramentas:


Relatórios e Dashboards: Integrar dados de localização em relatórios e dashboards no Excel para visualização e análise.


Automatização: Automatizar a coleta de dados geoespaciais para processos de negócios que requerem localização, como planejamento de rotas ou logística.


Verificação e Validação de Endereços:


Correção de Dados: Verificar a precisão dos endereços em uma base de dados e corrigir ou normalizar os dados de endereço.


Aqui estão algumas características do código:


Sintaxe de Carregamento de Dados: O uso de LOAD, RESIDENT, e LEFT JOIN são características específicas da linguagem de script de QlikView.


Variáveis e Loops: O uso de variáveis com let e loops com for são comuns em scripts QlikView para processamento iterativo de dados.


Manipulação de Dados: O código inclui operações como DROP TABLE, NoConcatenate, e SLEEP, que são típicas de scripts QlikView para manipulação de dados e controle do fluxo de execução.


Chamadas de API e Processamento de XML: O código faz chamadas para a API do Google Geocoding e processa a resposta XML, o que é uma prática comum em scripts QlikView para integrar dados externos.


Formatação de Resultados: O uso de IF e ISNULL para tratamento condicional e filtragem é uma prática comum em scripts QlikView.


Instruções de Script de Carregamento: A estrutura geral de carregamento e transformação de dados é consistente com o estilo do QlikView, incluindo a criação de tabelas intermediárias e a junção de dados.


Correção e Melhorias no Código


Aqui estão algumas correções e melhorias no script, com pontos a considerar:


Formatação e Consistência: Verifique se todos os nomes das tabelas e colunas estão corretos e consistentes. Assegure-se de que todos os nomes usados são os mesmos que estão no seu ambiente QlikView.


Tratamento de Erros e Logs: Adicione instruções para registrar erros ou inconsistências que possam ocorrer durante a execução do script.


Eficiência e Desempenho: Considere otimizar o script para melhorar a eficiência, como reduzir o número de chamadas à API ou melhorar a lógica de junção.


Segurança e Controle: Certifique-se de que o script está seguro, especialmente ao fazer chamadas a APIs externas, e que está gerenciando dados sensíveis de maneira apropriada.


Aqui está uma versão limpa do código:


//BUSCA DE COORDENADAS ATRAVÉS DA API DO GOOGLE


SET ErrorMode = 0;


[Tabela_endereços]:

LOAD DISTINCT

    ChavePrincipal,

    RowNo() AS chaveunica,

    rua & '&' & numero & '&' & cidade & '&' & pais AS EndereçoTratado

FROM ....; // Especificar a origem dos dados


// Faz um tratamento caso seja preciso


[Maior Linha]:

LOAD MAX(chaveunica) AS maxLinhas

RESIDENT [Tabela_endereços];


LET vMaxLinhas = Peek('maxLinhas');


FOR i = 1 TO $(vMaxLinhas)

    // Ou FOR i = 1 TO 1249, assim por diante.

    LOAD

        EndereçoTratado AS logradouro

    RESIDENT [Tabela_endereços]

    WHERE chaveunica = $(i);


    LET vRegistro = Peek('logradouro');


    GeocodeResponse:

    LOAD $(i) AS chaveunica,

         [result/geometry/location/lat] AS Latitude,

         [result/geometry/location/lng] AS Longitude,

         %Key_GeocodeResponse_62C7A0A69859D655,

         [result/geometry/location_type] AS location_type,

         status

    FROM [http://maps.googleapis.com/maps/api/geocode/xml?address=$(vRegistro)&sensor=false] (XmlSimple, Table is [GeocodeResponse]);


    address_component:

    LOAD $(i) AS chaveunica,

         long_name AS Itens,

         %Key_address_component_3D78D9B402C68EA5 AS codigo,

         %Key_GeocodeResponse_62C7A0A69859D655 AS key

    FROM [http://maps.googleapis.com/maps/api/geocode/xml?address=$(vRegistro)&sensor=false] (XmlSimple, Table is [GeocodeResponse/result/address_component]);


    DROP TABLE GeocodeResponse;


    SLEEP(700);

NEXT


LEFT JOIN (Tabela_endereços)

    LOAD

        chaveunica,

        status

    RESIDENT GeocodeResponse;


LEFT JOIN

    LOAD

        chaveunica,

        location_type

    RESIDENT GeocodeResponse;


LEFT JOIN

    LOAD

        chaveunica,

        Latitude

    RESIDENT GeocodeResponse;


LEFT JOIN

    LOAD

        chaveunica,

        Longitude

    RESIDENT GeocodeResponse;


LEFT JOIN

    LOAD

        chaveunica,

        IF(codigo = 9, Itens) AS Rua

    RESIDENT address_component

    WHERE ISNULL(IF(codigo = 9, Itens)) = FALSE();


LEFT JOIN

    LOAD

        chaveunica,

        IF(codigo = 13, Itens) AS Bairro

    RESIDENT address_component

    WHERE ISNULL(IF(codigo = 13, Itens)) = FALSE();


LEFT JOIN

    LOAD

        chaveunica,

        IF(codigo = 5, Itens) AS Número

    RESIDENT address_component

    WHERE ISNULL(IF(codigo = 5, Itens)) = FALSE();


LEFT JOIN

    LOAD

        chaveunica,

        IF(codigo = 18, Itens) AS Cidade

    RESIDENT address_component

    WHERE ISNULL(IF(codigo = 18, Itens)) = FALSE();


LEFT JOIN

    LOAD

        chaveunica,

        IF(codigo = 23, Itens) AS Estado

    RESIDENT address_component

    WHERE ISNULL(IF(codigo = 23, Itens)) = FALSE();


LEFT JOIN

    LOAD

        chaveunica,

        IF(codigo = 33, Itens) AS cep

    RESIDENT address_component

    WHERE ISNULL(IF(codigo = 33, Itens)) = FALSE();


[Final]:

NOCONCATENATE LOAD

    ChavePrincipal,

    cep,

    chaveunica,

    EndereçoTratado,

    status,

    location_type,

    Latitude,

    Longitude,

    Rua,

    Bairro,

    Número,

    Cidade,

    Estado

RESIDENT Tabela_endereços

WHERE ISNULL(Latitude) = FALSE() AND Latitude <> '';


DROP TABLE GeocodeResponse;

DROP TABLE [Maior Linha];

DROP TABLE address_component;

DROP TABLE Tabela_endereços;


STORE Final INTO ; // Especificar o destino do armazenamento


Observações Finais

API do Google: Certifique-se de que a API do Google está acessível e que as credenciais necessárias estão configuradas corretamente.

Testes e Validação: Sempre teste o script com um conjunto menor de dados antes de executá-lo em um ambiente de produção.


 Clique aqui e nos contate via What's App para avaliarmos seus projetos 

Envie seus comentários e sugestões e compartilhe este artigo!
brazilsalesforceeffectiveness@gmail.com

 Série de Livros nut Project 

DONUT PROJECT: VBA - Projetos e Códigos de Visual Basic for Applications (Visual Basic For Apllication)eBook - DONUT PROJECT 2024 - Volume 03 - Funções Financeiras - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 02 - Conectando Banco de Dados - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 01 - André Luiz Bernardes


 Série DONUT PROJECT 2024 

DONUT PROJECT 2024 - VBA - Retorna o Valor do Conteúdo da Área de Transferência do Sistema DONUT PROJECT 2024 - VBA - Retorna a Versão do Sistema Operacional em que o Excel está sendo Executado DONUT PROJECT 2024 - VBA - Desenvolvimento de Ferramentas de Análise de Riscos

DONUT PROJECT 2024 - VBA - Desenvolvimento Obter Informações sobre a Versão do Sistema Operacional DONUT PROJECT 2024 - VBA - Automatizando Tarefas de Engenharia e Design DONUT PROJECT 2024 - VBA - Automatização de Processos de Medir Distâncias no Google Maps

DONUT PROJECT 2024 - VBA - Automatização de Processos de Marketing Mail com o GMail DONUT PROJECT 2024 - VBA - Automatização de Processos de Marketing Mail DONUT PROJECT 2024 - VBA - Como proteger e ocultar fórmulas em uma planilha do Excel usando VBA

DONUT PROJECT 2024 - VBA - Código Exporta os dados e Atualiza as Quantidades em Estoque de um Determinado Produto na Planilha "Estoque" Crie Funções Personalizadas com Visual Basic for Applications (VBA) para Análise de Dados nos Negócios Saber programar em Visual Basic for Applications (VBA)

Nenhum comentário:

Postar um comentário

diHITT - Notícias