2021-02-17 01:11:55 +01:00
|
|
|
drop database if exists TARGET cascade;
|
|
|
|
create database if not exists TARGET;
|
|
|
|
|
|
|
|
create view if not exists TARGET.category as select * from SOURCE.category;
|
|
|
|
create view if not exists TARGET.concept as select * from SOURCE.concept;
|
|
|
|
create view if not exists TARGET.context as select * from SOURCE.context;
|
|
|
|
create view if not exists TARGET.country as select * from SOURCE.country;
|
|
|
|
create view if not exists TARGET.countrygdp as select * from SOURCE.countrygdp;
|
|
|
|
create view if not exists TARGET.creation_date as select * from SOURCE.creation_date;
|
|
|
|
create view if not exists TARGET.funder as select * from SOURCE.funder;
|
|
|
|
create view if not exists TARGET.fundref as select * from SOURCE.fundref;
|
|
|
|
create view if not exists TARGET.rndexpenditure as select * from SOURCE.rndexpediture;
|
|
|
|
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.result stored as parquet as
|
2021-02-17 01:11:55 +01:00
|
|
|
select distinct * from (
|
|
|
|
select * from SOURCE.result r where exists (select 1 from SOURCE.result_projects rp join SOURCE.project p on rp.project=p.id where rp.id=r.id)
|
|
|
|
union all
|
2021-06-10 01:35:46 +02:00
|
|
|
select * from SOURCE.result r where exists (select 1 from SOURCE.result_concepts rc where rc.id=r.id)
|
|
|
|
union all
|
2021-10-14 17:53:35 +02:00
|
|
|
select * from SOURCE.result r where exists (select 1 from SOURCE.result_organization ro where ro.id=r.id and ro.organization in (
|
2021-07-05 11:00:00 +02:00
|
|
|
'openorgs____::759d59f05d77188faee99b7493b46805',
|
|
|
|
'openorgs____::b84450f9864182c67b8611b5593f4250',
|
|
|
|
'openorgs____::d41cf6bd4ab1b1362a44397e0b95c975',
|
2021-11-17 14:33:00 +01:00
|
|
|
'openorgs____::eadc8da90a546e98c03f896661a2e4d4',
|
|
|
|
'openorgs____::d2a09b9d5eabb10c95f9470e172d05d2') )) foo;
|
2021-02-17 01:11:55 +01:00
|
|
|
compute stats TARGET.result;
|
|
|
|
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.result_citations stored as parquet as select * from SOURCE.result_citations orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-02-17 01:11:55 +01:00
|
|
|
compute stats TARGET.result_citations;
|
|
|
|
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.result_classifications stored as parquet as select * from SOURCE.result_classifications orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-02-17 01:11:55 +01:00
|
|
|
compute stats TARGET.result_classifications;
|
|
|
|
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.result_concepts stored as parquet as select * from SOURCE.result_concepts orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-02-17 01:11:55 +01:00
|
|
|
compute stats TARGET.result_concepts;
|
|
|
|
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.result_datasources stored as parquet as select * from SOURCE.result_datasources orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-02-17 01:11:55 +01:00
|
|
|
compute stats TARGET.result_datasources;
|
|
|
|
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.result_fundercount stored as parquet as select * from SOURCE.result_fundercount orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-02-17 01:11:55 +01:00
|
|
|
compute stats TARGET.result_fundercount;
|
|
|
|
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.result_gold stored as parquet as select * from SOURCE.result_gold orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-02-17 01:11:55 +01:00
|
|
|
compute stats TARGET.result_gold;
|
|
|
|
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.result_greenoa stored as parquet as select * from SOURCE.result_greenoa orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-02-17 01:11:55 +01:00
|
|
|
compute stats TARGET.result_greenoa;
|
|
|
|
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.result_languages stored as parquet as select * from SOURCE.result_languages orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-02-17 01:11:55 +01:00
|
|
|
compute stats TARGET.result_languages;
|
|
|
|
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.result_licences stored as parquet as select * from SOURCE.result_licenses orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-02-17 01:11:55 +01:00
|
|
|
compute stats TARGET.result_licences;
|
|
|
|
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.result_oids stored as parquet as select * from SOURCE.result_oids orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-02-17 01:11:55 +01:00
|
|
|
compute stats TARGET.result_oids;
|
|
|
|
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.result_organization stored as parquet as select * from SOURCE.result_organization orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-02-17 01:11:55 +01:00
|
|
|
compute stats TARGET.result_organization;
|
|
|
|
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.result_peerreviewed stored as parquet as select * from SOURCE.result_peerreviewed orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-02-17 01:11:55 +01:00
|
|
|
compute stats TARGET.result_peerreviewed;
|
|
|
|
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.result_pids stored as parquet as select * from SOURCE.result_pids orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-02-17 01:11:55 +01:00
|
|
|
compute stats TARGET.result_pids;
|
|
|
|
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.result_projectcount stored as parquet as select * from SOURCE.result_projectcount orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-02-17 01:11:55 +01:00
|
|
|
compute stats TARGET.result_projectcount;
|
|
|
|
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.result_projects stored as parquet as select * from SOURCE.result_projects orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-02-17 01:11:55 +01:00
|
|
|
compute stats TARGET.result_projects;
|
|
|
|
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.result_refereed stored as parquet as select * from SOURCE.result_refereed orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-02-17 01:11:55 +01:00
|
|
|
compute stats TARGET.result_refereed;
|
|
|
|
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.result_sources stored as parquet as select * from SOURCE.result_sources orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-02-17 01:11:55 +01:00
|
|
|
compute stats TARGET.result_sources;
|
|
|
|
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.result_topics stored as parquet as select * from SOURCE.result_topics orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-02-17 01:11:55 +01:00
|
|
|
compute stats TARGET.result_topics;
|
|
|
|
|
|
|
|
-- datasources
|
|
|
|
create view if not exists TARGET.datasource as select * from SOURCE.datasource;
|
|
|
|
create view if not exists TARGET.datasource_oids as select * from SOURCE.datasource_oids;
|
|
|
|
create view if not exists TARGET.datasource_organizations as select * from SOURCE.datasource_organizations;
|
|
|
|
create view if not exists TARGET.datasource_sources as select * from SOURCE.datasource_sources;
|
|
|
|
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.datasource_results stored as parquet as select id as result, datasource as id from TARGET.result_datasources;
|
2021-02-17 01:11:55 +01:00
|
|
|
compute stats TARGET.datasource_results;
|
|
|
|
|
|
|
|
-- organizations
|
|
|
|
create view if not exists TARGET.organization as select * from SOURCE.organization;
|
|
|
|
create view if not exists TARGET.organization_datasources as select * from SOURCE.organization_datasources;
|
|
|
|
create view if not exists TARGET.organization_pids as select * from SOURCE.organization_pids;
|
|
|
|
create view if not exists TARGET.organization_projects as select * from SOURCE.organization_projects;
|
|
|
|
create view if not exists TARGET.organization_sources as select * from SOURCE.organization_sources;
|
|
|
|
|
|
|
|
-- projects
|
|
|
|
create view if not exists TARGET.project as select * from SOURCE.project;
|
|
|
|
create view if not exists TARGET.project_oids as select * from SOURCE.project_oids;
|
|
|
|
create view if not exists TARGET.project_organizations as select * from SOURCE.project_organizations;
|
|
|
|
create view if not exists TARGET.project_resultcount as select * from SOURCE.project_resultcount;
|
|
|
|
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.project_results stored as parquet as select id as result, project as id from TARGET.result_projects;
|
2021-02-17 01:11:55 +01:00
|
|
|
compute stats TARGET.project_results;
|
|
|
|
|
2021-06-28 22:46:52 +02:00
|
|
|
-- indicators
|
2021-09-07 22:17:13 +02:00
|
|
|
create view TARGET.indi_dataset_avg_year_content_oa as select * from SOURCE.indi_dataset_avg_year_content_oa orig;
|
|
|
|
create view TARGET.indi_dataset_avg_year_context_oa as select * from SOURCE.indi_dataset_avg_year_context_oa orig;
|
|
|
|
create view TARGET.indi_dataset_avg_year_country_oa as select * from SOURCE.indi_dataset_avg_year_country_oa orig;
|
|
|
|
|
|
|
|
create view TARGET.indi_other_avg_year_content_oa as select * from SOURCE.indi_other_avg_year_content_oa orig;
|
|
|
|
create view TARGET.indi_other_avg_year_context_oa as select * from SOURCE.indi_other_avg_year_context_oa orig;
|
|
|
|
create view TARGET.indi_other_avg_year_country_oa as select * from SOURCE.indi_other_avg_year_country_oa orig;
|
|
|
|
|
|
|
|
create view TARGET.indi_project_datasets_count as select * from SOURCE.indi_project_datasets_count orig;
|
|
|
|
create view TARGET.indi_project_otherresearch_count as select * from SOURCE.indi_project_otherresearch_count orig;
|
|
|
|
create view TARGET.indi_project_pubs_count as select * from SOURCE.indi_project_pubs_count orig;
|
|
|
|
create view TARGET.indi_project_software_count as select * from SOURCE.indi_project_software_count orig;
|
|
|
|
|
|
|
|
create view TARGET.indi_pub_avg_year_content_oa as select * from SOURCE.indi_pub_avg_year_content_oa orig;
|
|
|
|
create view TARGET.indi_pub_avg_year_context_oa as select * from SOURCE.indi_pub_avg_year_context_oa orig;
|
|
|
|
create view TARGET.indi_pub_avg_year_country_oa as select * from SOURCE.indi_pub_avg_year_country_oa orig;
|
|
|
|
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.indi_pub_green_oa stored as parquet as select * from SOURCE.indi_pub_green_oa orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-06-28 22:46:52 +02:00
|
|
|
compute stats TARGET.indi_pub_green_oa;
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.indi_pub_grey_lit stored as parquet as select * from SOURCE.indi_pub_grey_lit orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-06-28 22:46:52 +02:00
|
|
|
compute stats TARGET.indi_pub_grey_lit;
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.indi_pub_doi_from_crossref stored as parquet as select * from SOURCE.indi_pub_doi_from_crossref orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-06-28 22:46:52 +02:00
|
|
|
compute stats TARGET.indi_pub_doi_from_crossref;
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.indi_pub_gold_oa stored as parquet as select * from SOURCE.indi_pub_gold_oa orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-06-28 22:46:52 +02:00
|
|
|
compute stats TARGET.indi_pub_gold_oa;
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.indi_pub_has_abstract stored as parquet as select * from SOURCE.indi_pub_has_abstract orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-09-07 22:17:13 +02:00
|
|
|
compute stats TARGET.indi_pub_has_abstract;
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.indi_pub_has_cc_licence stored as parquet as select * from SOURCE.indi_pub_has_cc_licence orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-09-07 22:17:13 +02:00
|
|
|
compute stats TARGET.indi_pub_has_cc_licence;
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.indi_pub_has_cc_licence_url stored as parquet as select * from SOURCE.indi_pub_has_cc_licence_url orig where exists (select 1 from TARGET.result r where r.id=orig.id);
|
2021-09-07 22:17:13 +02:00
|
|
|
compute stats TARGET.indi_pub_has_cc_licence_url;
|
|
|
|
|
|
|
|
create view TARGET.indi_software_avg_year_content_oa as select * from SOURCE.indi_software_avg_year_content_oa orig;
|
|
|
|
create view TARGET.indi_software_avg_year_context_oa as select * from SOURCE.indi_software_avg_year_context_oa orig;
|
|
|
|
create view TARGET.indi_software_avg_year_country_oa as select * from SOURCE.indi_software_avg_year_country_oa orig;
|
2021-07-29 23:31:33 +02:00
|
|
|
|
2021-02-17 01:11:55 +01:00
|
|
|
--denorm
|
|
|
|
alter table TARGET.result rename to TARGET.res_tmp;
|
|
|
|
|
2021-11-08 14:15:46 +01:00
|
|
|
create table TARGET.result_denorm stored as parquet as
|
2021-02-17 01:11:55 +01:00
|
|
|
select distinct r.*, rp.project, p.acronym as pacronym, p.title as ptitle, p.funder as pfunder, p.funding_lvl0 as pfunding_lvl0, rd.datasource, d.name as dname, d.type as dtype
|
|
|
|
from TARGET.res_tmp r
|
2021-11-08 14:15:46 +01:00
|
|
|
left outer join TARGET.result_projects rp on rp.id=r.id
|
|
|
|
left outer join TARGET.result_datasources rd on rd.id=r.id
|
|
|
|
left outer join TARGET.project p on p.id=rp.project
|
|
|
|
left outer join TARGET.datasource d on d.id=rd.datasource;
|
2021-02-17 01:11:55 +01:00
|
|
|
compute stats TARGET.result_denorm;
|
|
|
|
|
|
|
|
alter table TARGET.result_denorm rename to TARGET.result;
|
|
|
|
drop table TARGET.res_tmp;
|
2021-11-08 14:15:46 +01:00
|
|
|
--- done!
|