• Nenhum resultado encontrado

Processo ETL da fonte de dados

O data warehouse desenvolvido para armazenamento dos dados integra uma tabela de factos (“TFActivity”) e quatro tabelas de dimensão, correspondentes ao tipo de acesso (“AccessType”), operação (“Operation”), dimensão tempo (“DimTime”) e dimensão tipo de utilizador (“DimUserType”). Duas delas são degeneradas, o tipo de acesso e operação – figura 4.2.

Figura 4.2: Modelo dimensional do data warehouse com os registos provenientes da fonte

De seguida, apresenta-se uma breve descrição de todos os atributos dessas tabelas. Refira-se que, a dimensão “tempo” foi organizada em quatro atributos: “Year”, “Month”, “Week” e “Day”.

Atributo Descrição Exemplo

TimeStamp Data do registo 2011-01-01 00:00:19.270 Year Ano do registo 2011

Month Mês do registo Janeiro Week Semana do registo 4

Day Dia do registo 1

Tabela 4.1: Descrição da tabela de dimensão “Dim Time”

A dimensão relativa ao tipo de utilizador (“DimUserType”) contém informação sobre o tipo de utilizador contido na amostra. Os tipos de utilizador alvos de análise serão primordialmente alunos, tipo de utilizador S (Student), e docentes, tipo de utilizador P (Professor). Existem registos que não contêm nenhum tipo de utilizador, registos nulos na fonte, a que irão corresponder ao tipo de utilizador U (Unknown), utilizadores desconhecidos. Todos os outros registos com outros tipos de utilizador, por não terem relevância para a análise a efetuar, foram agrupados num tipo de utilizador O (Outros).

Atributo Descrição Exemplo

UserType Tipo de utilizador S/P/U/O Description Descrição do tipo de

utilizador

Aluno (Student) / Docente (Professor)/ Desconhecido (Unknown) / Outros (Other)

Tabela 4.2: Descrição da tabela de dimensão “DimUserType”

A tabela de factos (“TFActivity”) desta base de dados irá conter os dados transformados do registo de atividades da tabela de histórico na fonte. Será a base para a construção do registo de assinaturas. Para efeitos de anonimato, a identificação dos utilizadores foi alterada recorrendo a uma chave de substituição.

Atributo Descrição Exemplo

PK Identificador único de registo 129705980

TimeStamp Data do registo 2011-01-01 00:00:19.270 UserType Tipo de utilizador U

IDUser Chave de substituição do utilizador 47051 IDSession Identificador da sessão 15253311 AccessType Tipo de acesso feito pelo utilizador.

Dimensão degenerada. Acesso a Página Operation Operação efetuada pelo utilizador.

Dimensão degenerada. Operação sobre conteúdos PageView Indica se a operação efetuada constitui uma

visualização de página. Sim/Não Course Descrição da unidade curricular acedida [10-11] Projeto

Tabela 4.3: Descrição da tabela de factos “TFActivity”

Além dos atributos que guardam a data de registo (“TimeStamp”), o tipo de utilizador (“UserType”) e a identificação do utilizador (“IDUser”), temos ainda nesta tabela o identificador de sessão (“IDSession”) que será usado para por exemplo para determinar tempos de sessão. O atributo “AcessType” está tipificado pela plataforma, correspondendo ao tipo de acesso a que aquele registo diz respeito. Pode corresponder, por exemplo, a um acesso a um módulo, a um acesso a uma página, a um acesso a uma unidade curricular, a um acesso a conteúdo ou a início e fim de sessão. O atributo “Operation” irá armazenar informação sobre a operação realizada pelo utilizador, correspondente ao evento de navegação que ele despoletou. Porém, nem todos os registos na tabela de atividade correspondem a um evento de navegação, pelo que este atributo na fonte poderá ter valores nulos. O atributo “PageView” indica se a operação efetuada pelo utilizador corresponde a uma visualização de página, o que será importante a nível de cálculo de estatísticas de acesso e visualização. Por último, temos o atributo “Course” que indica qual a

unidade curricular acedida. Este atributo também pode assumir valores nulos, uma vez que poderão ocorrer acessos que não estejam no âmbito de uma unidade curricular.

Como já foi referido, o data warehouse trata do armazenamento dos dados transformados e filtrados provenientes da base de dados de histórico do sistema de e-learning. O processo de carregamento de dados visa, essencialmente, colocar no destino os dados novos que entretanto foram surgindo na fonte, para as dimensões que já referimos. O processo de carregamento é parametrizável, tendo que ser fornecido as datas de início e de fim dos registos que pretendemos importar. Para o desenvolvimento deste processo foi utilizado o Integration Services do Microsoft Visual Studio 2008, utilizando maioritariamente querys SQL diretas sobre a fonte de dados. Na figura 4.3 apresentamos sumariamente as diversas partes deste processo.

Figura 4.3: Esquema do processo de povoamento da dimensão tempo – “DimTime”

O processo de carregamento da dimensão tempo faz o povoamento da tabela “DimTime”, com todas as datas que foram utilizadas nos registos da tabela de factos. Neste processo incorporaram- se várias funções de conversão de dados necessárias para a correção e homogeneização de alguns dados provenientes das fontes. A dimensão tipo de utilizador - “DimUserType” - foi construída a priori com os tipos de utilizador que seriam alvos de análise. Assim sendo, não foi incluído o processo de carregamento desta dimensão no sistema de ETL.

Figura 4.4: Conteúdo da tabela de dimensão “DimUserType”

Finalmente, foi tratado do processo de carregamento da tabela de factos “TFActivity”. Nas instruções T-SQL (Transact-SQL) presentes nesta tarefa são realizadas várias operações de conversão e mapeamento, como sendo a geração das chaves de substituição para os utilizadores, o mapeamento do tipo de acesso e a operação efetuada, bem como a indicação se o tipo de operação feita pelo utilizador corresponde a uma visualização de página.

Figura 4.5: Carregamento da tabela de factos

Na sequência de execução do processo de ETL, ilustrada na Figura 4.6, vemos que a primeira tarefa a ser executada é a tarefa de carregamento da dimensão tempo – “DimTime”. Caso ocorresse um erro nesta tarefa, o ETL seria terminado, senão seria executada a tarefa de carregamento da tabela de factos – “TFActivity”. Como já foi referido a dimensão tipo de utilizador - “DimUserType”- não foi incluída no processo de carregamento ETL, tendo sido previamente carregada. No ETL desenvolvido foram utilizadas conexões diretas através de clientes nativos para o SQL Server e utilizados componentes, como os de OLE DB e SQL Server Destination, que se revelaram eficazes na diminuição dos tempos de execução dos processos de recolha e transformação dos dados.

Figura 4.6: Esquema dos processos incluídos no sistema de ETL