Download - FELIX KUNDE - fossgis-konferenz.de
![Page 1: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/1.jpg)
FELIX KUNDEFELIX KUNDEslides.com/fxku/postgis-v3
3
![Page 2: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/2.jpg)
ABOUT MEABOUT ME
Database Engineer @ ZalandoGeoinformatics background
Guest lecturer on spatial databases, and @FlxKu
Postgres Operator 3DCityDB pgMemento
![Page 3: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/3.jpg)
WHAT IS POSTGIS?WHAT IS POSTGIS?
Extension to databaseComes with it's own datatypes for geodataSupports coordinate reference systemsSpatial indexing for fast geo queriesOpen Source under GPLv2More infos under http://postgis.net/
PostgreSQL
++
![Page 4: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/4.jpg)
WHY IS IT GREAT?WHY IS IT GREAT?Faster and more robust than your GISSo much geo power with just some SQLGreat acceptance in the spatial industryFollows international OGC/ISO standardsBuild on top of one of the best databases
![Page 5: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/5.jpg)
POSTGRESQLPOSTGRESQL
FORKS & EXTENSIONSFORKS & EXTENSIONS
S h a r d i n g
G P U
T i m e S e r i e s
C l o u dD W / M P P/ H a d o o p
S t r e a m i n g S Q L
N o S Q L
PG-STORMPG-STORM
![Page 6: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/6.jpg)
@delawen on PostGIS day
![Page 7: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/7.jpg)
![Page 8: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/8.jpg)
THETHE
HIDDENHIDDEN
THINGSTHINGS
![Page 9: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/9.jpg)
NEW ON-DISC FORMATNEW ON-DISC FORMAT
More optional bytes for Probably: Efficient point typeProbably: Faster joinsMaybe: Precision modelUpgrade support (no dump and restore)
new things
![Page 10: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/10.jpg)
MINIMAL TOASTMINIMAL TOASTDECOMPRESSIONDECOMPRESSION
Big geoms are sliced and When read, decompression takes timePostgres 12 can "sneak" into first sliceE.g. read BBox to decide to skip geom
compressed
![Page 11: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/11.jpg)
OPTIMIZEROPTIMIZER
SUPPORT FUNCTIONSSUPPORT FUNCTIONS
Problem <v3: Function inlining to trigger indexHard for planner to consider parellel query
Solution: Give optimizer about functions ...... and see more parallel spatial queries
insights
![Page 12: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/12.jpg)
ST_Intersects(geom1, geoms2)
SELECT geom1 && geom2 AND_ST_Intersects(geom1, geoms2)
SQL function
triggers indexC function
ST_Intersects(geom1, geoms2)SUPPORT postgis_index_supportfn
C function triggersindex
OO
LL
DD
NN
EE
WW
![Page 13: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/13.jpg)
BREAKINGBREAKINGTHINGSTHINGS
![Page 14: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/14.jpg)
POSTGIS_RASTERPOSTGIS_RASTERmy_postgis_db=# ALTER EXTENSION postgis UPDATE TO '3.0.0'; WARNUNG: unpackaging raster WARNUNG: PostGIS Raster functionality has been unpackaged TIP: type `SELECT postgis_extensions_upgrade();` to finish the upgrade. After upgrading, if you want to drop raster, run: DROP EXTENSION postgis_raster; ALTER EXTENSION my_postgis_db=# SELECT postgis_extensions_upgrade(); HINWEIS: Packaging extension postgis_raster
![Page 15: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/15.jpg)
STRIP MINOR FROM LIBSTRIP MINOR FROM LIB
Before: ALTER EXTENSION postgis UPDATE first to fix itNow: Lib is called postgis-3.so for all minor releasesUpgrade your Postgres with pg_upgrade and get the newPostGIS functions when running ALTER EXTENSION etc.
$> pg_upgrade ERROR: could not access file "$libdir/postgis-2.5": No such file or directory
![Page 16: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/16.jpg)
BROKEN INDEXESBROKEN INDEXES
REINDEX your HASH indexes REINDEX your BTREE indexesREINDEX your nD spatial indexes
But hey, SP-GiST and GiST now support nD boxoperators for overlaps, contains, within, equals
![Page 17: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/17.jpg)
BYE BYEBYE BYE
ST_Accum(), use array_aggST_AsGeoJSON(version, geometry)ST_AsKML(version, geometry)Remove SFCGAL support for functionswhich are already covered by GEOSpostgissvnversion() > postgislibrevision()liblwgeom headers, librttopo if you needPostgreSQL 9.5 support (3.1+)
![Page 18: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/18.jpg)
THETHE
SHINYSHINY
THINGSTHINGS
![Page 19: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/19.jpg)
DEMO TIMEDEMO TIME
![Page 20: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/20.jpg)
SELECT ST_GeneratePoints(poly, 3) FROM geom, generate_series(1,5);
same resultOO
LL
DD
REALLY RANDOM POINTSREALLY RANDOM POINTS
![Page 21: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/21.jpg)
SELECT ST_GeneratePoints(poly, 3) FROM geom, generate_series(1,5);
same resultOO
LL
DD
NN
EE
WWSELECT ST_GeneratePoints(poly, 3) FROM geom, generate_series(1,5);
SELECT ST_GeneratePoints(poly, 3, seed := 1) FROM geom, generate_series(1,5);
random result
REALLY RANDOM POINTSREALLY RANDOM POINTS
![Page 22: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/22.jpg)
HILBERT CURVE ORDERHILBERT CURVE ORDER
Switch from Z-Curve in 2.x to Hilbert CurveMore compact spatial alignment30% faster algorithm also boosts GiST creation
![Page 23: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/23.jpg)
PLAYING WITH PLAYING WITH TINSTINS
ST_ConstrainedDelaunayTriangles in SFCGALTINs can be passed to GEOS functionsNow supported by all output functionsST_3DIntersects (2D, Solid), ST_3DDistance (Solid)
PostGIS PostGIS SFCGAL
![Page 24: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/24.jpg)
MORE LRS FOR POLYGONSMORE LRS FOR POLYGONS
ST_LocateBetween/Elevations now support:GeometryCollection, Polygon, TIN, Triangle
triangles < -2m
![Page 25: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/25.jpg)
TOPOLOGY TESTS FORTOPOLOGY TESTS FORGEOMETRYCOLLECTIONGEOMETRYCOLLECTION
ST_Overlaps, ST_Contains, ST_ContainsProperly,ST_Covers, ST_CoveredBy, ST_Crosses,ST_Touches, ST_Disjoint, ST_Relate, ST_Equalsnow work with GeometryCollectionThink about all the queries where you needed toST_Dump before (like after ST_LocateBetween ;)
![Page 26: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/26.jpg)
GEOMGEOM::JSON::JSON
Geometry can be casted with ::json / ::jsonbST_AsGeoJSON( record ) > GeoJSON FeatureGeography columns supported when in row
![Page 27: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/27.jpg)
FASTER VECTOR TILESFASTER VECTOR TILES
ST_AsMVT with parallel aggregationST_AsMVTGeom more robust output
for validation and clipping (GEOS job in the future)Feature ID support
is
boost
Wagyu
Serving MVT from PostGIS easy
![Page 28: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/28.jpg)
ST_TILEENVELOPEST_TILEENVELOPE
BBox of Tile per zoom levelWebMercator (EPSG 3857)bounds by defaultCustom bounds possibleMargin in PostGIS 3.1
![Page 29: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/29.jpg)
GRIDS GRIDS (3.1)(3.1)
ST_SquareGridST_HexagonGrid
![Page 30: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/30.jpg)
DEFAULT 3D/4D DEFAULT 3D/4D (3.1)(3.1)
Additional argument for ST_ForceXXX functionsDefine default Z/M, still 0 when left out[open] Have ST_SetZ, ST_SetM function
![Page 31: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/31.jpg)
HIDDEN HEROESHIDDEN HEROES
SF
![Page 32: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/32.jpg)
SF
Many performance improvementspostgis_geos_noop (SQL <-> GEOS)
More precise datum WKT projections support
transformation
out-db raster support since 2.4check out extension!ogr_fdw
Make it totally independentNew: ST_ConstrainedDelaunayTriangles
![Page 33: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/33.jpg)
POSTGIS POSTGIS FUTUREFUTURE2020/21
New efficient geom types? External storage type?Point density surfaces (weighted, kriging)Tolerance & Precision ( )?Much work in GEOS 3.93D-aware geography?Index-only scans with geometry?https://trac.osgeo.org/postgis/wiki/PostGIS3
#1629
![Page 34: FELIX KUNDE - fossgis-konferenz.de](https://reader031.vdocuments.site/reader031/viewer/2022012409/616a469a11a7b741a350bbf3/html5/thumbnails/34.jpg)
THANKSTHANKSto
Regina, Paul, Sandro, Darafei, Raúl, Bborie,Alex, Andrea, Andreas, Anne, Arthur, Barbara, Bas, Ben, Bernhard, Bill, Björn, Brian, Bruce, Bruno, Bryce,
Carl, Charlie, Chris, Christian, Dan, Dane, David, Eduin, Even, Esteban, Frank, George, Gerald, Gino,
Guillaume, Iida, Ingvild, Jason, Jeff, Joe, Jorge, Jose Carlos, Julien, Hugh, Kashif, Kevin, Klaus, Kris, Kristian,
Laurenz, Leo, Loic, Luca, Lucas, Maria, Mark, Markus, Mateusz, Matti, Maxime, Michael, Mike, Nathan,
Nathaniel, Nicklas, Nikita, Norman, Olivier, Pierre, Rafal, Ralph, Rémi, Richard, Silvio, Steffen, Stephen,
Steven, Sunveer, Tom, Vincent, Yuri
Teams behind GEOS/JTS, Proj, GDAL and (SF)CGAL!
The whole PostgreSQL community!The funding companies, organisations and individuals!