diff --git a/inputs/modify_tables.sh b/inputs/modify_tables.sh new file mode 100755 index 0000000000000000000000000000000000000000..ac437459fcdca5ec50b7eddfa9f6656f450c9a47 --- /dev/null +++ b/inputs/modify_tables.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +# Assign parameters to variables +HOST=$1 +USER=$2 +PASSWORD=$3 + +echo "*** Fix tables to include states and countries data and to be indexed on them:" +mariadb -h "$HOST" -u "$USER" -p"$PASSWORD" < inputs/sql/modify_tables_for_state_country.sql diff --git a/inputs/sql/modify_tables_for_state_country.sql b/inputs/sql/modify_tables_for_state_country.sql new file mode 100644 index 0000000000000000000000000000000000000000..8d93b757fc6b894720afac2cb1bea3d77e80c5a9 --- /dev/null +++ b/inputs/sql/modify_tables_for_state_country.sql @@ -0,0 +1,19 @@ +-- US data +-- add index to LODES8 table, query already optimized +ALTER TABLE LODES8 +ADD INDEX idx_geoid (GeoID); +-- no need to modify QCEW because there is agg level already to select geographical layer + +-- EU data +-- LFS at the country level only +-- SBS at the country level only + +-- Step 1: Add the country column to the table +ALTER TABLE REA +ADD COLUMN eu_country CHAR(2); +-- Step 2: Add the new column to the table index +ALTER TABLE REA +ADD INDEX idx_eu_country (eu_country); +-- Step 3: Update the country column based on the cntr_code column +UPDATE REA +SET eu_country = LEFT(GeoID, 2); diff --git a/prepare_database.sh b/prepare_database.sh index 40fe907977472449ced45146bd010ed1555f16e0..64d1b49beae0d9fa54c2b83091468b428d757f62 100755 --- a/prepare_database.sh +++ b/prepare_database.sh @@ -45,5 +45,8 @@ PASSWORD=$3 ./inputs/load_eurostat_lfs.sh "$HOST" "$USER" "$PASSWORD" ./inputs/load_eurostat_sbs.sh "$HOST" "$USER" "$PASSWORD" +# modify tables to include states and countries data and to be indexed on them +./inputs/modify_tables.sh "$HOST" "$USER" "$PASSWORD" + # dump data and drop database on 'local' instance ./inputs/dump_and_drop.sh "$HOST" "$USER" "$PASSWORD"