Use v4.1, move import-wikidata before import-sql (#805)

import-wikidata should run before import-sql, and v4.1 allows for that.
Also it optimizes the wd_names table to just be a simple Wikidata ID -> labels lookup, with a proper index.

Minor other changes:
* `test-perf-null` target is now part of the Makefile
* `./data/osmstat.txt` is no longer created
* area download file now in this format:   `${osm_area}-latest.osm.pbf`
pull/806/head^2
Yuri Astrakhan 2020-04-09 10:49:35 -04:00 zatwierdzone przez GitHub
rodzic f55579cd16
commit 4f5ea5f26e
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
4 zmienionych plików z 43 dodań i 52 usunięć

2
.env
Wyświetl plik

@ -6,7 +6,7 @@ POSTGRES_PORT=5432
QUICKSTART_MIN_ZOOM=0 QUICKSTART_MIN_ZOOM=0
QUICKSTART_MAX_ZOOM=7 QUICKSTART_MAX_ZOOM=7
DIFF_MODE=false DIFF_MODE=false
TOOLS_VERSION=4.0.0 TOOLS_VERSION=4.1.0
BBOX=-180.0,-85.0511,180.0,85.0511 BBOX=-180.0,-85.0511,180.0,85.0511
MIN_ZOOM=0 MIN_ZOOM=0

Wyświetl plik

@ -20,16 +20,16 @@ help:
@echo "==============================================================================" @echo "=============================================================================="
@echo " OpenMapTiles https://github.com/openmaptiles/openmaptiles " @echo " OpenMapTiles https://github.com/openmaptiles/openmaptiles "
@echo "Hints for testing areas " @echo "Hints for testing areas "
@echo " make download-geofabrik-list # list actual geofabrik OSM extracts for download -> <<your-area>> " @echo " make list-geofabrik # list actual geofabrik OSM extracts for download -> <<your-area>> "
@echo " make list # list actual geofabrik OSM extracts for download -> <<your-area>> "
@echo " ./quickstart.sh <<your-area>> # example: ./quickstart.sh madagascar " @echo " ./quickstart.sh <<your-area>> # example: ./quickstart.sh madagascar "
@echo " " @echo " "
@echo "Hints for designers:" @echo "Hints for designers:"
@echo " make start-postserve # start Postserver + Maputnik Editor [ see localhost:8088 ] " @echo " make start-postserve # start Postserver + Maputnik Editor [ see localhost:8088 ] "
@echo " make start-tileserver # start klokantech/tileserver-gl [ see localhost:8080 ] " @echo " make start-tileserver # start klokantech/tileserver-gl [ see localhost:8080 ] "
@echo " " @echo " "
@echo "Hints for developers:" @echo "Hints for developers:"
@echo " make # build source code" @echo " make # build source code"
@echo " make list-geofabrik # list actual geofabrik OSM extracts for download"
@echo " make download-geofabrik area=albania # download OSM data from geofabrik, and create config file" @echo " make download-geofabrik area=albania # download OSM data from geofabrik, and create config file"
@echo " make psql # start PostgreSQL console" @echo " make psql # start PostgreSQL console"
@echo " make psql-list-tables # list all PostgreSQL tables" @echo " make psql-list-tables # list all PostgreSQL tables"
@ -88,16 +88,26 @@ db-stop:
.PHONY: download-geofabrik .PHONY: download-geofabrik
download-geofabrik: init-dirs download-geofabrik: init-dirs
@echo =============== download-geofabrik ======================= @if ! test "$(area)"; then \
@echo Download area: $(area) echo "" ;\
@echo [[ example: make download-geofabrik area=albania ]] echo "ERROR: Unable to download an area if area is not given." ;\
@echo [[ list areas: make download-geofabrik-list ]] echo "Usage:" ;\
docker-compose run $(DC_OPTS) import-osm ./download-geofabrik.sh $(area) echo " make download-geofabrik area=<area-id>" ;\
ls -la ./data/$(area).* echo "" ;\
@echo "Generated config file: ./data/docker-compose-config.yml" echo "Use make list-geofabrik to get a list of all available areas" ;\
@echo " " echo "" ;\
cat ./data/docker-compose-config.yml exit 1 ;\
@echo " " else \
echo "=============== download-geofabrik =======================" ;\
echo "Download area: $(area)" ;\
docker-compose run $(DC_OPTS) openmaptiles-tools bash -c \
'download-osm geofabrik $(area) \
--minzoom $$QUICKSTART_MIN_ZOOM \
--maxzoom $$QUICKSTART_MAX_ZOOM \
--make-dc /import/docker-compose-config.yml -- -d /import' ;\
ls -la ./data/$(area)* ;\
echo " " ;\
fi
.PHONY: psql .PHONY: psql
psql: db-start psql: db-start
@ -205,14 +215,6 @@ import-sql-dev:
import-osm-dev: import-osm-dev:
docker-compose run $(DC_OPTS) import-osm /bin/bash docker-compose run $(DC_OPTS) import-osm /bin/bash
# the `download-geofabrik` error message mention `list`, if the area parameter is wrong. so I created a similar make command
.PHONY: list
list: download-geofabrik-list
.PHONY: download-geofabrik-list
download-geofabrik-list:
docker-compose run $(DC_OPTS) import-osm ./download-geofabrik-list.sh
.PHONY: import-wikidata .PHONY: import-wikidata
import-wikidata: import-wikidata:
docker-compose run $(DC_OPTS) openmaptiles-tools import-wikidata openmaptiles.yaml docker-compose run $(DC_OPTS) openmaptiles-tools import-wikidata openmaptiles.yaml
@ -275,3 +277,7 @@ docker-unnecessary-clean:
@docker ps -a | grep Exited | awk -F" " '{print $$1}' | xargs --no-run-if-empty docker rm @docker ps -a | grep Exited | awk -F" " '{print $$1}' | xargs --no-run-if-empty docker rm
@echo "Deleting unnecessary image(s)..." @echo "Deleting unnecessary image(s)..."
@docker images | grep \<none\> | awk -F" " '{print $$3}' | xargs --no-run-if-empty docker rmi @docker images | grep \<none\> | awk -F" " '{print $$3}' | xargs --no-run-if-empty docker rmi
.PHONY: test-perf-null
test-perf-null:
docker-compose run $(DC_OPTS) openmaptiles-tools test-perf openmaptiles.yaml --test null --no-color

Wyświetl plik

@ -30,7 +30,7 @@ tileset:
- am # Amharic - am # Amharic
- ar # Arabic - ar # Arabic
- az # Azerbaijani, Latin - az # Azerbaijani, Latin
- be # Belarusian - be # Belorussian
- bg # Bulgarian - bg # Bulgarian
- br # Breton, Latin - br # Breton, Latin
- bs # Bosnian, Latin - bs # Bosnian, Latin

Wyświetl plik

@ -27,7 +27,7 @@ if [ $# -eq 0 ]; then
else else
osm_area=$1 osm_area=$1
fi fi
testdata="${osm_area}.osm.pbf" testdata="${osm_area}-latest.osm.pbf"
## Min versions ... ## Min versions ...
MIN_COMPOSE_VER=1.7.1 MIN_COMPOSE_VER=1.7.1
@ -36,11 +36,6 @@ STARTTIME=$(date +%s)
STARTDATE=$(date +"%Y-%m-%dT%H:%M%z") STARTDATE=$(date +"%Y-%m-%dT%H:%M%z")
githash=$( git rev-parse HEAD ) githash=$( git rev-parse HEAD )
# Options to run with docker and docker-compose - ensure the container is destroyed on exit,
# as well as pass any other common parameters.
# In the future this should use -u $(id -u "$USER"):$(id -g "$USER") instead of running docker as root.
DC_OPTS="--rm -u $(id -u "$USER"):$(id -g "$USER")"
log_file=./quickstart.log log_file=./quickstart.log
rm -f $log_file rm -f $log_file
echo " " echo " "
@ -138,21 +133,12 @@ echo "--------------------------------------------------------------------------
echo "====> : Removing old MBTILES if exists ( ./data/*.mbtiles ) " echo "====> : Removing old MBTILES if exists ( ./data/*.mbtiles ) "
rm -f ./data/*.mbtiles rm -f ./data/*.mbtiles
if [ ! -f "./data/${testdata}" ]; then if [[ ! -f "./data/${testdata}" || ! -f "./data/docker-compose-config.yml" ]]; then
echo " " echo " "
echo "-------------------------------------------------------------------------------------" echo "-------------------------------------------------------------------------------------"
echo "====> : Downloading testdata $testdata" echo "====> : Downloading ${osm_area} from Geofabrik..."
rm -f ./data/* rm -rf ./data/*
#wget $testdataurl -P ./data
make download-geofabrik "area=${osm_area}" make download-geofabrik "area=${osm_area}"
echo " "
echo "-------------------------------------------------------------------------------------"
echo "====> : Osm metadata : $testdata"
cat ./data/osmstat.txt
echo " "
echo "-------------------------------------------------------------------------------------"
echo "====> : Generated docker-compose config"
cat ./data/docker-compose-config.yml
else else
echo " " echo " "
echo "-------------------------------------------------------------------------------------" echo "-------------------------------------------------------------------------------------"
@ -236,7 +222,14 @@ make import-borders
echo " " echo " "
echo "-------------------------------------------------------------------------------------" echo "-------------------------------------------------------------------------------------"
echo "====> : Start SQL postprocessing: ./build/tileset.sql -> PostgreSQL " echo "====> : Start importing Wikidata: Wikidata Query Service -> PostgreSQL"
echo " : The Wikidata license: CC0 - https://www.wikidata.org/wiki/Wikidata:Main_Page "
echo " : Thank you Wikidata Contributors ! "
make import-wikidata
echo " "
echo "-------------------------------------------------------------------------------------"
echo "====> : Start SQL postprocessing: ./build/sql/* -> PostgreSQL "
echo " : Source code: https://github.com/openmaptiles/openmaptiles-tools/blob/master/bin/import-sql" echo " : Source code: https://github.com/openmaptiles/openmaptiles-tools/blob/master/bin/import-sql"
# If the output contains a WARNING, stop further processing # If the output contains a WARNING, stop further processing
# Adapted from https://unix.stackexchange.com/questions/307562 # Adapted from https://unix.stackexchange.com/questions/307562
@ -248,17 +241,10 @@ echo "--------------------------------------------------------------------------
echo "====> : Analyze PostgreSQL tables" echo "====> : Analyze PostgreSQL tables"
make psql-analyze make psql-analyze
echo " "
echo "-------------------------------------------------------------------------------------"
echo "====> : Start importing Wikidata: Wikidata Query Service -> PostgreSQL"
echo " : The Wikidata license: CC0 - https://www.wikidata.org/wiki/Wikidata:Main_Page "
echo " : Thank you Wikidata Contributors ! "
make import-wikidata
echo " " echo " "
echo "-------------------------------------------------------------------------------------" echo "-------------------------------------------------------------------------------------"
echo "====> : Testing PostgreSQL tables to match layer definitions metadata" echo "====> : Testing PostgreSQL tables to match layer definitions metadata"
docker-compose run $DC_OPTS openmaptiles-tools test-perf openmaptiles.yaml --test null --no-color make test-perf-null
echo " " echo " "
echo "-------------------------------------------------------------------------------------" echo "-------------------------------------------------------------------------------------"
@ -289,7 +275,6 @@ md5sum build/openmaptiles.tm2source/data.yml >> ./data/quickstart_checklist.chk
md5sum "./data/${testdata}" >> ./data/quickstart_checklist.chk md5sum "./data/${testdata}" >> ./data/quickstart_checklist.chk
md5sum ./data/tiles.mbtiles >> ./data/quickstart_checklist.chk md5sum ./data/tiles.mbtiles >> ./data/quickstart_checklist.chk
md5sum ./data/docker-compose-config.yml >> ./data/quickstart_checklist.chk md5sum ./data/docker-compose-config.yml >> ./data/quickstart_checklist.chk
md5sum ./data/osmstat.txt >> ./data/quickstart_checklist.chk
cat ./data/quickstart_checklist.chk cat ./data/quickstart_checklist.chk
ENDTIME=$(date +%s) ENDTIME=$(date +%s)