Existem várias maneiras de fazer a importação do(s) arquivo(s) GPX para o SQL Server. Uma delas é através do SSIS (SQL Server Integration Services), a qual iremos abordar.
Feito o download do(s) arquivo(s), conforme explicado no post Monitoração das Atividades Físicas com Power BI – Parte 1 – Conhecendo o Strava, vamos para a segunda etapa.
2° Etapa – Importação do(s) Arquivo(s) GPX para o SQL Server, através do SSIS.
A primeira coisa a se fazer é criar um banco de dados.
- Abra o SSMS (Microsoft SQL Server Management Studio) e crie o(s) banco(s) de dados, no qual o Projeto do SSIS irá se conectar para fazer a importação do(s) arquivo(s).
- Criado o banco de dados acima, abra o Visual Studio -> File ->New -> Project
- Selecione Integration Services Project
- Dê um nome ao seu projeto e escolha qual caminho deverá ser salvo
- Clique em ok.
É necessário criar algumas conexões:
Connection Managers: Conexão OLDB, vai conectar pacote criado com o(s) banco(s) de dado(s), necessários.
- Botão direito do mouse em cima de connection managers -> New connection managers -> OLDB -> add
- Selecione new
- Configure a conexão selecionando os campos em vermelho (de acordo com o seu ambiente) e teste a conexão.
- Conexão criada com sucesso, clique em ok.
Pronto, a conexão do Projeto Strava já está conectada com o banco de dados Strava, clique em OK.
A conexão criada acima, já aparece no Solution Explorer ->Atividades Físicas -> Connection Managers.
Depois de criada a conexão com o banco de dados, é necessário criar uma outra conexão para ler o arquivo GPX (XML) : New File Connection.
- Botão direito do mouse, na área connection managers, na parte debaixo do visual studio e clique em New File Connection.
- Selecione o arquivo que vai ser importado pelo Browse e clique em OK.
As duas conexões necessárias para esse projeto, foram criadas: OLDB e Connection File.
- No SSIS Toolbox, expanda a aba favorites e arraste a Task Data Flow para a área Control Flow.
- Dê dois cliques na Task Data Flow e arraste para o Data Flow, a Task XML, se quiser pode renomea-la.
- Dê dois clicks em cima da Task Import Arq GPX e selecione o arquivo a ser importado, criando também um XSD.
- Selecionado o arquivo, clique em colunas, selecione trkpt.
Às vezes, ao fazer o carregamento do arquivo XML, pode ocorrer o seguinte warning:
Esse warning deve-se ao fato de o arquivo XSD definir suas colunas baseadas em sequências de caracteres, que não possuem um comprimento máximo e mínimo, observado dentro do próprio arquivo.
Para corrigir esse warning, basta editar o arquivo XSD e fazer as seguintes alterações:
Alterando o XSD:
Após alterar o XSD, salve e feche. Repare que ao clicar novamente na Task Import Arq GPX -> columns, o warning já não aparece mais.
Esse warning também pode ser corrigido, acessando a Task Import Arq GPX, selecionando a opção Exibir Editor Avançado ou escolher a opção de conversão de dados e converter as colunas para os tipos adequados.
Os arquivos GPX (XML) possuem várias estruturas hierárquicas, e para resolver essa configuração, o SSIS produz múltiplos conjuntos tabulares para essas estruturas hierárquicas.
Um ou vários arquivosGPX (XML), pode ser carregado em várias tabelas diferentes.
Depois de configurado o arquivo GPX (XML), o próximo passo é salvar os dados desse arquivo em uma tabela destino do SQL Server:
- Em SSIS Toolbox, expanda a aba Other Destinations -> OLDB Destination e arraste para o Data Flow.
- Faça a conexão entre a Task Import GPX e a Task Table Destino SQL Server, através da seta azul, e escolha uma saída.
- Dê dois cliques na Task Table Destino SQL Server, configure-a, para que a importação do GPX (XML) ocorra com sucesso!
É preciso selecionar uma tabela para receber o arquivo GPX (XML). Isso pode ser feito de duas formas:
– Selecionar a tabela já existente no banco de dados Strava, através do campo Name of the table or the view
– Selecionar a opção New. Assim, o SSIS já cria a tabela com os campos e os tipos de dados. Para isso, basta clicar no ícone New:
- Após escolher o nome da tabela que vai ser criada, clique em ok.
- Selecione a aba Mapeamentos e confira se as colunas de entrada estão de acordo com as colunas de saída.
- Clique em Ok.
- Execute o SSIS Packages (no nosso exemplo, Ciclismo.dtsx.)
A execução ocorreu com sucesso.
- Abra o SSMS, digite select *from na tabela GPX e visualize os dados importados.
Depois de importado para o SQL Server o(s) arquivos(s) GPX (XML), vamos para a próxima etapa que será criar alguns dados espaciais(uma coluna geográfica que irá receber a localização).
Post 3 Monitorando atividades Físicas com o Power BI – Parte 3 – Criando Dados Espaciais.
Monitoração das Atividades Físicas com Power BI – Parte 1 – Conhecendo o Strava