Skip to content
Anders Barfod edited this page Jun 18, 2017 · 6 revisions

Automatisk Refresh Materializered views og Elasticsearch indexering

Den første hver måned tilføjes et dump af CVR produktionsenheder som datostemples. Efter dette skal views opdateres i følgende rækkefølge så de nyeste data bliver tilgængelig i f.eks. Kibana:
refresh materialized view cvr.cvr_prod_nyeste;
refresh materialized view data.cvr_lokalplan_vedtaget;
refresh materialized view data.cvr_region;
refresh materialized view kibana.cvr_prod_beriget;

Herunder ses bash script (refresh_drayton.sh) som opdaterer materialized views udfra text fil som indeholder et navnet for view på separate linier.

#!/bin/bash

# OBS Kræver at GDAL er installeret

cd /home/gis/scripts/ballerup/materialized_view/drayton/
#Looper gennem viewlist.txt og refresher materialized views angivet i txt-filen.
while read p; do
  echo 'REFRESHING MATERIALIZED VIEW' $p '...'
  ogrinfo -so PG:"dbname=ballerup host=drayton.mapcentia.com port=5432 user=drayton password=XXX" -sql "REFRESH MATERIALIZED VIEW $p;"
  echo 'Done'
done < viewlist.txt

Udsnit af viewlist.txt

cvr.cvr_prod_nyeste
data.cvr_lokalplan_vedtaget
data.cvr_region
kibana.cvr_prod_beriget

Herfter kan der opsættes cronjob som opdaterer views og indekserer i Elasticsearch efter data fra LIFA A/S er konverteret til PostgreSQL databasen.

00 22 01 * * /home/gis/scripts/ballerup/materialized_view/drayton/refresh_drayton.sh
00 23 01 * * curl -u user:pw -i "http://drayton.mapcentia.com/api/v1/elasticsearch/river/ballerup/kibana/cvr_prod_beriget?key=API_KEY"

Todo

  • Designe og reorganisere strukturen for den relationelle database