def handle(self, *args, **options): dao = DAO('mysql') sql = "SELECT DISTINCT TRIM(VA.alternativa) FROM vestibular.alternativas VA \ WHERE VA.perguntas_idperguntas = 3 \ ORDER BY TRIM(VA.alternativa);" bd = dao.get_connection() c = bd.cursor() c.execute(sql) dados = c.fetchall() print(('Número de registros encontrados: {}').format(len(dados))) conta_criados = 0 conta_atualizados = 0 if len(dados) > 0: for d in dados: origem_escolar = d[0] # INSERT DOS DADOS NA TABELA DO DATAWAREHOUSE obj, created = OrigemEscolar.objects.update_or_create( descricao=origem_escolar) if created: conta_criados += 1 else: conta_atualizados += 1 print(('Número de registros INSERIDOS: {}').format(conta_criados)) print( ('Número de registros ATUALIZADOS: {}').format(conta_atualizados)) bd.close()
def handle(self, *args, **options): dao = DAO('mysql') sql = "SELECT DISTINCT TRIM(VA.alternativa) FROM vestibular.alternativas VA \ WHERE VA.perguntas_idperguntas = 31 \ ORDER BY TRIM(VA.alternativa);" bd = dao.get_connection() c = bd.cursor() c.execute(sql) dados = c.fetchall() quantidades_criados = 0 quantidades_atualizados = 0 if len(dados) > 0: for d in dados: etnia_descricao = d[0] # inserção dos dados na tabela dw obj, created = Etnia.objects.update_or_create( descricao=etnia_descricao) if created: quantidades_criados += 1 else: quantidades_atualizados += 1 bd.close()
def handle(self, *args, **options): dao = DAO('postgres') sql = "SELECT DISTINCT TRIM(S.nome) FROM setor S \ INNER JOIN edu_diretoria ED ON ED.setor_id = S.id \ INNER JOIN edu_cursocampus ECC ON ECC.diretoria_id = ED.id \ ORDER BY TRIM(S.nome);" bd = dao.get_connection() c = bd.cursor() c.execute(sql) dados = c.fetchall() print(('Número de registros encontrados: {}').format(len(dados))) conta_criados = 0 conta_atualizados = 0 if len(dados) > 0: for d in dados: campus_nome = d[0] # type: string # TRATAMENTOS DE DADOS NECESSÁRIOS campus_nome = campus_nome.replace('CÂMPUS', 'CAMPUS') # TRANSFORMAÇÃO E PREPARAÇÃO DE DADOS PARA INJETAR NO DATAWAREHOUSE campus_nome = campus_nome.title() # INSERT DOS DADOS NA TABELA DO DATAWAREHOUSE obj, created = Campus.objects.update_or_create( nome=campus_nome) if created: conta_criados += 1 else: conta_atualizados += 1 print(('Número de registros INSERIDOS: {}').format(conta_criados)) print( ('Número de registros ATUALIZADOS: {}').format(conta_atualizados)) bd.close()
def handle(self, *args, **options): dao = DAO('postgres') sql = "SELECT DISTINCT TRIM(ECC.descricao) FROM setor S \ INNER JOIN edu_diretoria ED ON ED.setor_id = S.id \ INNER JOIN edu_cursocampus ECC ON ECC.diretoria_id = ED.id \ INNER JOIN edu_aluno EA ON EA.curso_campus_id = ECC.id \ INNER JOIN pessoa_fisica PF ON PF.pessoa_ptr_id = EA.pessoa_fisica_id \ ORDER BY TRIM(ECC.descricao);" bd = dao.get_connection() c = bd.cursor() c.execute(sql) dados = c.fetchall() print(('Número de registros encontrados: {}').format(len(dados))) conta_criados = 0 conta_atualizados = 0 if len(dados) > 0: for d in dados: curso_nome = d[0] # TRANSFORMAÇÃO E PREPARAÇÃO DE DADOS PARA INJETAR NO DATAWAREHOUSE curso_nome = curso_nome.title() # INSERT DOS DADOS NA TABELA DO DATAWAREHOUSE obj, created = Curso.objects.update_or_create(nome=curso_nome) if created: conta_criados += 1 else: conta_atualizados += 1 print(('Número de registros INSERIDOS: {}').format(conta_criados)) print( ('Número de registros ATUALIZADOS: {}').format(conta_atualizados)) bd.close()
def handle(self, *args, **options): dao = DAO('postgres') #usada para retornar apenas valores distintos sql = "SELECT DISTINCT TRIM(ECC.descricao) FROM setor S \ INNER JOIN edu_diretoria ED ON ED.setor_id = S.id \ INNER JOIN edu_cursocampus ECC ON ECC.diretoria_id = ED.id \ INNER JOIN edu_aluno EA ON EA.curso_campus_id = ECC.id \ INNER JOIN pessoa_fisica PF ON PF.pessoa_ptr_id = EA.pessoa_fisica_id \ ORDER BY TRIM(ECC.descricao);" bd = dao.get_connection() c = bd.cursor() c.execute(sql) dados = c.fetchall() quantidades_criadas = 0 quantidades_atualizados = 0 if len(dados) > 0: for d in dados: curso_nome = d[0] # nesta parte é realizada o tratamento dos dados curso_nome = curso_nome.title() # nesta parte é feita a inserção dos dados na tabela dw obj, created = Curso.objects.update_or_create( nome = curso_nome ) if created: quantidades_criadas += 1 else: quantidades_atualizados += 1 bd.close()
def handle(self, *args, **options): dao = DAO('postgres') #usada para retornar apenas valores distintos sql = "SELECT DISTINCT TRIM(S.nome) FROM setor S \ INNER JOIN edu_diretoria ED ON ED.setor_id = S.id \ INNER JOIN edu_cursocampus ECC ON ECC.diretoria_id = ED.id \ ORDER BY TRIM(S.nome);" bd = dao.get_connection() c = bd.cursor() c.execute(sql) dados = c.fetchall() quantidades_criadas = 0 quantidades_atualizados = 0 if len(dados) > 0: for d in dados: campus_nome = d[0] # tratamento dos dados campus_nome = campus_nome.replace('CÂMPUS', 'CAMPUS') # transformacao e preparacao dos dados para colocar no dw campus_nome = campus_nome.title() # inserção dos dados na tabela dw obj, created = Campus.objects.update_or_create( nome=campus_nome) if created: quantidades_criadas += 1 else: quantidades_atualizados += 1 bd.close()
def handle(self, *args, **options): daoPostgres = DAO('postgres') daoMysql = DAO('mysql') sql = "select distinct trim(PF.cpf), trim(PF.sexo), trim(ECC.descricao), trim(S.nome) from pessoa_fisica PF \ inner join edu_aluno EA on EA.pessoa_fisica_id = PF.pessoa_ptr_id \ inner join edu_cursocampus ECC on ECC.id = EA.curso_campus_id \ inner join edu_diretoria ED on ED.id = ECC.diretoria_id \ inner join setor S on S.id = ED.setor_id \ where PF.cpf is not null \ order by 1;" bdPostgres = daoPostgres.get_connection() c = bdPostgres.cursor() bdMysql = daoMysql.get_connection() c.execute(sql) dadosPostgres = c.fetchall() dadosMysql = get_list(bdMysql) if len(dadosPostgres) > 0: for d in dadosPostgres: cpf_aluno = d[0] sexo_descricao = d[1] curso_nome = d[2] campus_nome = d[3] origemEscolar_descricao = 'ND' etnia_descricao = 'Não Declarada' index = search(dadosMysql, cpf_aluno) if index: origemEscolar_descricao = dadosMysql[index[0]][1] etnia_descricao = dadosMysql[index[0]][2] # tratamento dos dados curso_nome = curso_nome.title() campus_nome = campus_nome.replace('CÂMPUS', 'CAMPUS') campus_nome = campus_nome.title() # transformacao e preparacao dos dados para colocar no dw sexo_obj = None if sexo_descricao: sexo_obj = Sexo.objects.get(descricao=sexo_descricao) curso_obj = None if curso_nome: curso_obj = Curso.objects.get(nome=curso_nome) campus_obj = None if campus_nome: campus_obj = Campus.objects.get(nome=campus_nome) origemEscolar_obj = None if origemEscolar_descricao: origemEscolar_obj = OrigemEscolar.objects.get(descricao=origemEscolar_descricao) etnia_obj = None if etnia_descricao: etnia_obj = Etnia.objects.get(descricao=etnia_descricao) # inserção dos dados na tabela dw obj, created = Aluno.objects.update_or_create( cpf=cpf_aluno, defaults={ 'sexo': sexo_obj, 'curso': curso_obj, 'campus': campus_obj, 'etnia': etnia_obj, 'origemEscolar': origemEscolar_obj, } ) bdPostgres.close() bdMysql.close()
def handle(self, *args, **options): daoPostgres = DAO('postgres') daoMysql = DAO('mysql') sql = "select distinct trim(PF.cpf), trim(PF.sexo), trim(ECC.descricao), trim(S.nome) from pessoa_fisica PF \ inner join edu_aluno EA on EA.pessoa_fisica_id = PF.pessoa_ptr_id \ inner join edu_cursocampus ECC on ECC.id = EA.curso_campus_id \ inner join edu_diretoria ED on ED.id = ECC.diretoria_id \ inner join setor S on S.id = ED.setor_id \ where PF.cpf is not null \ order by 1;" bdPostgres = daoPostgres.get_connection() c = bdPostgres.cursor() bdMysql = daoMysql.get_connection() c.execute(sql) dadosPostgres = c.fetchall() dadosMysql = get_list(bdMysql) print( ('Número de registros encontrados: {}').format(len(dadosPostgres))) print(('Número de registros encontrados: {}').format(len(dadosMysql))) conta_criados = 0 conta_atualizados = 0 if len(dadosPostgres) > 0: for d in dadosPostgres: cpf_aluno = d[0] sexo_descricao = d[1] curso_nome = d[2] campus_nome = d[3] origemEscolar_descricao = 'Não Declarado' etnia_descricao = 'Não Declarada' index = search(dadosMysql, cpf_aluno) if index: origemEscolar_descricao = dadosMysql[index[0]][1] etnia_descricao = dadosMysql[index[0]][2] # TRATAMENTOS DE DADOS NECESSÁRIOS curso_nome = curso_nome.title() campus_nome = campus_nome.replace('CÂMPUS', 'CAMPUS') campus_nome = campus_nome.title() # TRANSFORMAÇÃO E PREPARAÇÃO DE DADOS PARA INJETAR NO DATAWAREHOUSE sexo_obj = None if sexo_descricao: sexo_obj = Sexo.objects.get(descricao=sexo_descricao) curso_obj = None if curso_nome: curso_obj = Curso.objects.get(nome=curso_nome) campus_obj = None if campus_nome: campus_obj = Campus.objects.get(nome=campus_nome) origemEscolar_obj = None if origemEscolar_descricao: origemEscolar_obj = OrigemEscolar.objects.get( descricao=origemEscolar_descricao) etnia_obj = None if etnia_descricao: etnia_obj = Etnia.objects.get(descricao=etnia_descricao) # INSERT DOS DADOS NA TABELA DO DATAWAREHOUSE obj, created = Aluno.objects.update_or_create( cpf=cpf_aluno, defaults={ 'sexo': sexo_obj, 'curso': curso_obj, 'campus': campus_obj, 'etnia': etnia_obj, 'origemEscolar': origemEscolar_obj, }) if created: conta_criados += 1 else: conta_atualizados += 1 print(('Número de registros INSERIDOS: {}').format(conta_criados)) print( ('Número de registros ATUALIZADOS: {}').format(conta_atualizados)) bdPostgres.close() bdMysql.close()