SlideShare a Scribd company logo
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Pandas und Python auf die
Oracle DB “loslassen”
Karin Patenge | @kpatenge | Karin.patenge@oracle.com
Leitende Systemberaterin / Solution Engineer
Business Unit Core & Cloud Technologies | Oracle Deutschland B.V. & Co. KG
DOAG Big Data Days 2018 | Dresden | 20.-21. September 2018
Geht das gut?
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for
information purposes only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and should not be relied upon
in making purchasing decisions. The development, release, and timing of any features or
functionality described for Oracle’s products remains at the sole discretion of Oracle.
3
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Motivation
4
Quelle:
https://de.wikipedia.org/wiki/Pythons
Quelle:
https://de.wikipedia.org/wiki/Pythons
blogs.oracle.com/oraclespatial/spatial-with-python-and-geopandas-made-easy-with-cx_oracle
@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 5
Das Ende vorweggenommen ...
arthur-e.github.io/Wicket/
@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Agenda
Die Oracle Datenbank aus Sicht der Anwendungsentwicklung
Python und Pandas
Python und die Oracle Datenbank
Zusammenfassung
1
2
3
4
6@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Die Oracle Datenbank aus Sicht der Anwendungsentwicklung
Python und Pandas
Python und die Oracle Datenbank
Zusammenfassung
1
2
3
4
7@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 8
Womit entwickeln wir? Populäre Programmiersprachen
Quelle: https://insights.stackoverflow.com/survey/2018/#technology Quelle: https://redmonk.com/sogrady/2018/03/07/language-rankings-1-18/
@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Eine Datenbank für alle wichtigen Plattformen und Sprachen
Die Oracle Datenbank für EntwicklerInnen
JSON
Ruby
Oracle ADF Oracle APEX
Oracle RDS
9@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
PROGRAMMIER-
SPRACHE
TREIBER
C OCI
C++ OCCI
Java JDBC
.NET ODP.NET
Node.js node-oracledb
Python cx_Oracle
PHP OCI8, PDO_OCI
R ROracle
Perl DBD::Oracle
Ruby ruby-oci8
10
… und ODBC, OLE DB,
Pro*C, Pro*COBOL,
Pro*Fortran, SQLJ
Third-party Drivers
Open Source Drivers
(Oracle contributions)
Oracle provided
@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Node.js: node-oracledb 2.3
• Pre-built binaries für Node 6, 8, 10. Für Windows (x86), macOS , Linux (x86-64) – alle 64-bit.
• Apache 2.0 Lizenz.
• http://github.com/oracle/node-oracledb http://oracle.github.io/node-oracledb/
Python: cx_Oracle 7.0 (Sept. 2018)
• Python 2.7 sowie 3.5+. Oracle 11.2, 12, 18 Client Bibliotheken. BSD Lizenz.
• http://cx-oracle.sourceforge.net http://oracle.github.io/python-cx_Oracle/
PHP: OCI8 2.1.8
• Oracle 10.2, 11 und 12 Client Bibliotheken. Über 2 Mio Downloads.
• http://pecl.php.net/package/oci8
R: ROracle 1.3-1
• Oracle Database Interface Treiber für R. DBI-compliant. LPGL-2 [2.1|3] Lizenz.
• http://cran.r-project.org/web/packages/ROracle
Open Source Treiber von Oracle
Open Source Drivers
(Oracle contributions)
11@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Die Oracle Datenbank aus Sicht der Anwendungsentwicklung
Python und Pandas
Python und die Oracle Datenbank
Zusammenfassung
1
2
3
4
12@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Die Programmiersprache Python
• Universelle, höhere Programmiersprache
• Unterstützung unterschiedlicher
Programmierparadigmen
– objektorientiert, aspektorientiert, funktional
• Dynamische Typisierung
– Deklarationszwang für Variablen entfällt
• Häufigste Nutzung als Skriptsprache
• Programmstruktur wird durch Einrückungen
abgebildet
• Versionslinien: Python 2.x / Python 3.x
– 3.x mit substantiellen Verbesserungen
• Basis: Read-Evaluate-Print Loop (REPL)
• Empfohlene Dateiendung für Skripte: .py
• Unterstützung für Object Type: SDO_GEOMETRY
und LOBs (WKT, WKB)
• Warum Python?
– Kompakter Kern
– Leicht zu erlernen
– Leicht lesbar - klare, übersichtliche Syntax -
Wenige Schlüsselworte
– Leicht anzuwenden
– Eingebaute umfangreiche Standard-
bibliothek und zahlreiche Pakete
• Sonstiges
– Erscheinungsjahr 1991
– Python Software Foundation Lizenz
– www.python.org
– Prompt: „>>>“
– >>> help() | >>> exit() [quit()]
13@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Python in der Praxis (1)
• Python ist vorinstalliert in den meisten Linux Distributionen
14
[oracle@localhost ~]$ python
Python 2.7.5 (default, Jul 3 2018, 06:28:28)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28.0.1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()
[oracle@localhost ~]$ python -v
# installing zipimport hook
import zipimport # builtin
# installed zipimport hook
# /usr/lib64/python2.7/site.pyc matches /usr/lib64/python2.7/site.py
…
@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Python in der Praxis (2)
Wenn notwendig, installieren
• Zusätzliche Software-Komponenten:
– PyPI ( Pakete finden) , pip (Pakete laden) , Python Tools
– Oracle Database Client Software
15
[oracle@localhost Downloads]$ sudo -i
[root@localhost ~]# python get-pip.py
[root@localhost Downloads]# python get-pip.py
Collecting pip
Downloading
https://files.pythonhosted.org/packages/5f/25/e52d3f31441505a5f3af41213346e5b6c221c9e086a166f3703d2
ddaf940/pip-18.0-py2.py3-none-any.whl (1.3MB)
100% |████████████████████████████████| 1.3MB 647kB/s
Collecting wheel
Downloading
https://files.pythonhosted.org/packages/81/30/e935244ca6165187ae8be876b6316ae201b71485538ffac1d7188
43025a9/wheel-0.31.1-py2.py3-none-any.whl (41kB)
100% |████████████████████████████████| 51kB 2.9MB/s
Installing collected packages: pip, wheel
Successfully installed pip-18.0 wheel-0.31.1
@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
• Pandas ist eine der populärsten
Programmbibliotheken (Module)
für Python
– Setzt das Modul Numpy voraus
• Fokus: Datenmanipulation und
Analyse
• Datenstrukturen und Funktionen
für die Manipulation von Zeitreihen
und Tabellen:
– Series
– DataFrame
16
Pandas und GeoPandas
@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
• GeoPandas ist eine Programm-
bibliothek (Modul) für Python zum
Manipulieren von Vektordaten
– Multi-/Punkte, Multi-/Linien,
Multi/Polygone
• Nutzt das Modul shapely für
geometrische Operationen
• Abhängigkeiten auch zu anderen
Bibiotheken (u.a. matplotlib)
• Datenstrukturen analog:
– GeoSeries
– GeoDataFrame
Pandas und GeoPandas
Datenstruktur Attribute Methoden
GeoSeries Area
Bounds
Total_bounds
Geom_type
Is_valid
Distance(other)
Centroid
Representative_point()
To_crs()
Plot()
geom_almost_equals(o
ther)
contains(other)
intersects(other)
GeoDataFrame Analog mit ‚geometry‘ Spalte vom
Datentyp GeoSeries
Zusätzlich: Methode zum Lesen und
Schreiben von Dateien und
Geokodieren
17@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Demo
> # Start Python
> python
> # oder Jupyter Notebook
> jupyter notebook --notebook-dir=~/Python &
18@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Die Oracle Datenbank aus Sicht der Anwendungsentwicklung
Python und Pandas
Python und die Oracle Datenbank
Zusammenfassung
1
2
3
4
19@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Python und die Oracle Datenbank
20
Architektur der cx_Oracle Schnittstelle
Client Bibliotheken verfügbar über:
• Lokaler Oracle Datenbank
• Oracle Client
@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
cx_Oracle
• Stand Juli 2018: Version 6.4
• Open Source (Oracle Contribution)
• Unterstützt Python 2.7 und 3.4+
• Für Oracle Client 11.2+ und
jede davon unterstützte Oracle DB Version
• Unterstützung für Vektordaten über Object Types (SDO_GEOMETRY) und
LOBs (WKT, WKB)
– Binding von SDO_GEOMETRY an Python Objekte
• Laden von Vektordaten in die Oracle Datenbank
– Anfragen an SDO_GEOMETRY über Python
• Nutzung des Python Package GeoPandas (http://geopandas.org/)
• Beispielcode: github.com/oracle/python-cx_Oracle/blob/master/samples/SpatialToGeoPandas.py
21@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Python in der Praxis (3)
Das Python Paket cx_Oracle
22
• Installation und Überprüfung:
• Dokumentation für Python:
[oracle@localhost ~]$ sudo pip install cx_Oracle
[sudo] password for oracle:
Collecting cx_Oracle
Downloading
https://files.pythonhosted.org/packages/3b/09/6b10675a6db7c7da1b8d23225f0a95b2a45248c56a1e8f711
d59809278d3/cx_Oracle-6.4.1-cp27-cp27mu-manylinux1_x86_64.whl (590kB)
100% |████████████████████████████████| 593kB 2.4MB/s
Installing collected packages: cx-Oracle
Successfully installed cx-Oracle-6.4.1
[oracle@localhost ~]$ python
Python 2.7.5 (default, Apr 11 2018, 17:41:36)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28.0.1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> help('modules')
[oracle@localhost ~]$ python -m pydoc cx_Oracle
@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Python in der Praxis (4)
Mit der Oracle DB verbinden
>>> import cx_Oracle
>>> con = cx_Oracle.connect('hr/hr@localhost/orcl')
>>> print(con.version)
12.2.0.1.0
>>> cur=con.cursor()
>>>
>>> cur.execute('select * from employees order by last_name')
<cx_Oracle.Cursor on <cx_Oracle.Connection to hr@localhost/orcl>>
>>> for row in cur:
... print(row)
...
(174, 'Ellen', 'Abel', 'EABEL', '011.44.1644.429267', datetime.datetime(1996, 5, 11, 0,
0), 'SA_REP', 11000.0, 0.3, 149, 80)
(166, 'Sundar', 'Ande', 'SANDE', '011.44.1346.629268', datetime.datetime(2000, 3, 24, 0,
0), 'SA_REP', 6400.0, 0.1, 147, 80)
23@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Python in der Praxis (5.1)
Arbeit mit cx_Oracle und GeoPandas
24
• Installation GeoPandas Paket und davon abhängige Pakete
[oracle@localhost ~]$ sudo yum install python-devel
...
[oracle@localhost ~]$ sudo pip install geopandas
[sudo] password for oracle:
Collecting geopandas
Downloading
https://files.pythonhosted.org/packages/24/11/d77c157c16909bd77557d00798b05a5b6615ed6
0acb5900fbe6a65d35e93/geopandas-0.4.0-py2.py3-none-any.whl (899kB)
100% |████████████████████████████████| 901kB 2.6MB/s
...
Installing collected packages: pyproj, munch, click, click-plugins, cligj, enum34,
fiona, geopandas
Successfully installed click-6.7 click-plugins-1.0.3 cligj-0.4.0 enum34-1.1.6 fiona-
1.7.13 geopandas-0.4.0 munch-2.3.2 pyproj-1.9.5.1
@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Python in der Praxis (5.2)
Arbeit mit cx_Oracle und GeoPandas
25
• Vorgefertigtes Modul for Verbindung mit Oracle DB
https://github.com/oracle/python-cx_Oracle/blob/master/samples/SampleEnv.py
– Benötigt 2 Datenbank Nutzer
PYTHONDEMO und PYTHONEDITIONS
– Muß im gleichen Verzeichnis
wie das Hauptprogramm liegen
@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Demo
> # Start Python
> python
> # oder Jupyter Notebook
> jupyter notebook --notebook-dir=~/Python &
26@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Python in der Praxis (5.3)
Arbeit mit cx_Oracle und GeoPandas
27
>>> from __future__ import print_function
>>>
>>> import SampleEnv
>>> import cx_Oracle
>>> from shapely.wkb import loads
>>> import geopandas as gpd
...
>>> import matplotlib as mpl
>>> # Create Oracle connection and cursor objects
... connection = cx_Oracle.Connection(SampleEnv.MAIN_CONNECT_STRING)
>>> cursor = connection.cursor()
>>> connection.autocommit = True
>>> def OutputTypeHandler(cursor, name, defaultType, size, precision, scale):
... if defaultType == cx_Oracle.BLOB:
... return cursor.var(cx_Oracle.LONG_BINARY, arraysize = cursor.arraysize)
...
>>> connection.outputtypehandler = OutputTypeHandler
@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Python in der Praxis (5.4)
Arbeit mit cx_Oracle und GeoPandas
28
>>> # Drop and create table
... print("Dropping and creating table...")
Dropping and creating table...
>>> cursor.execute("""
... begin
... execute immediate 'drop table de_federal_states';
... exception when others then
... if sqlcode <> -942 then
... raise;
... end if;
... end;""")
>>> cursor.execute("""
... create table de_federal_states (
... name VARCHAR2(30) not null,
... geometry SDO_GEOMETRY not null
... )""")
@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Python in der Praxis (5.5)
Arbeit mit cx_Oracle und GeoPandas
29
>>> # acquire types used for creating SDO_GEOMETRY objects
... typeObj = connection.gettype("MDSYS.SDO_GEOMETRY")
>>> elementInfoTypeObj = connection.gettype("MDSYS.SDO_ELEM_INFO_ARRAY")
>>> ordinateTypeObj = connection.gettype("MDSYS.SDO_ORDINATE_ARRAY")
>>>
>>> # define function for creating an SDO_GEOMETRY object
... def CreateGeometryObj(*ordinates):
... geometry = typeObj.newobject()
... geometry.SDO_GTYPE = 2003
... geometry.SDO_SRID = 8307
... geometry.SDO_ELEM_INFO = elementInfoTypeObj.newobject()
... geometry.SDO_ELEM_INFO.extend([1, 1003, 1])
... geometry.SDO_ORDINATES = ordinateTypeObj.newobject()
... geometry.SDO_ORDINATES.extend(ordinates)
... return geometry
@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Python in der Praxis (5.6)
Arbeit mit cx_Oracle und GeoPandas
30
>>> geometryBrandenburg = CreateGeometryObj(13.8479741700806,53.5154842208988,...
>>> geometrySachsen = CreateGeometryObj(12.8462989319859,51.6830540864208,...
>>> geometryThueringen = CreateGeometryObj(10.80620196783,51.6409960580726,...
>>>
>>> data = [
... ('Brandenburg', geometryBrandenburg),
... ('Sachsen', geometrySachsen),
... ('Thueringen', geometryThueringen)
... ]
>>> cur.executemany('insert into de_federal_states values (:state, :obj)', data)
>>> cur.execute("""
... select count(*)
... from de_federal_states""")
<cx_Oracle.Cursor on <cx_Oracle.Connection to pythondemo@localhost/orcl>>
>>>
>>> for row in cur:
... print(row)
...
(3,)
@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Python in der Praxis (5.7)
Arbeit mit cx_Oracle und GeoPandas
31
>>> ...
@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
1
2
3
4
Die Oracle Datenbank aus Sicht der Anwendungsentwicklung
Python und Pandas
Python und die Oracle Datenbank
Zusammenfassung
Weiterführende Informationen5
32@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 33
1. Wir können auch #nextGen !
2. (Ganz) Viel ist möglich.
Ihr müßt Euch nur trauen ☺
@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Bonus für die ganz Experimentierfreudigen:
Oracle Database Multilingual Engine
oracle.com/technetwork/database/multilingual-engine
MLE is an experimental feature for the Oracle Database 12c. MLE
enables developers to work efficiently with DB-resident data in
modern programming languages and development environments
of their choice.
34
https://www.youtube.com/watch?v=AY_2M3tgaZs
@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Folgen Sie @kpatenge @SpatialHannes @JeanIhm
karin.patenge@oracle.com
35@kpatenge #BIGDATADAYS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 36@kpatenge #BIGDATADAYS
20180921_DOAG_BigDataDays_OracleSpatialandPython_kpatenge

More Related Content

What's hot

MySQL User Group NL: MySQL 8.0 Document Store- NoSQL with all the benefits of...
MySQL User Group NL: MySQL 8.0 Document Store- NoSQL with all the benefits of...MySQL User Group NL: MySQL 8.0 Document Store- NoSQL with all the benefits of...
MySQL User Group NL: MySQL 8.0 Document Store- NoSQL with all the benefits of...
Frederic Descamps
 
Deep learning on HDP 2018 Prague
Deep learning on HDP 2018 PragueDeep learning on HDP 2018 Prague
Deep learning on HDP 2018 Prague
Timothy Spann
 
Open Computer Vision with OpenCV, Apache NiFi, TensorFlow, Python
Open Computer Vision with OpenCV, Apache NiFi, TensorFlow, PythonOpen Computer Vision with OpenCV, Apache NiFi, TensorFlow, Python
Open Computer Vision with OpenCV, Apache NiFi, TensorFlow, Python
Timothy Spann
 
Sangam 18 - The New Optimizer in Oracle 12c
Sangam 18 - The New Optimizer in Oracle 12cSangam 18 - The New Optimizer in Oracle 12c
Sangam 18 - The New Optimizer in Oracle 12c
Connor McDonald
 
The internals of gporca optimizer
The internals of gporca optimizerThe internals of gporca optimizer
The internals of gporca optimizer
Xin Zhang
 
Percona Live Europe 2018 MySQL Group Replication... the magic explained
Percona Live Europe 2018  MySQL Group Replication... the magic explainedPercona Live Europe 2018  MySQL Group Replication... the magic explained
Percona Live Europe 2018 MySQL Group Replication... the magic explained
Frederic Descamps
 
Oracle Code in Seoul: Provisioning of Cloud Resource
Oracle Code in Seoul: Provisioning of Cloud ResourceOracle Code in Seoul: Provisioning of Cloud Resource
Oracle Code in Seoul: Provisioning of Cloud Resource
Taewan Kim
 
Apache MXNet for IoT with Apache NiFi
Apache MXNet for IoT with Apache NiFiApache MXNet for IoT with Apache NiFi
Apache MXNet for IoT with Apache NiFi
Timothy Spann
 
Spring boot microservice metrics monitoring
Spring boot   microservice metrics monitoringSpring boot   microservice metrics monitoring
Spring boot microservice metrics monitoring
Oracle Korea
 
Improve PostgreSQL replication with Oracle GoldenGate
Improve PostgreSQL replication with Oracle GoldenGateImprove PostgreSQL replication with Oracle GoldenGate
Improve PostgreSQL replication with Oracle GoldenGate
Bobby Curtis
 
DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !
Frederic Descamps
 
OOW19 - HOL5221
OOW19 - HOL5221OOW19 - HOL5221
OOW19 - HOL5221
Bobby Curtis
 
Hit Refresh with Oracle GoldenGate Microservices
Hit Refresh with Oracle GoldenGate MicroservicesHit Refresh with Oracle GoldenGate Microservices
Hit Refresh with Oracle GoldenGate Microservices
Bobby Curtis
 
Oracle goldegate microservice
Oracle goldegate microserviceOracle goldegate microservice
Oracle goldegate microservice
Mojtaba Khandan
 
Java EE, What's Next? by Anil Gaur
Java EE, What's Next? by Anil GaurJava EE, What's Next? by Anil Gaur
Java EE, What's Next? by Anil Gaur
Takashi Ito
 
MySQL 8 High Availability with InnoDB Clusters
MySQL 8 High Availability with InnoDB ClustersMySQL 8 High Availability with InnoDB Clusters
MySQL 8 High Availability with InnoDB Clusters
Miguel Araújo
 
Web Scale Reasoning and the LarKC Project
Web Scale Reasoning and the LarKC ProjectWeb Scale Reasoning and the LarKC Project
Web Scale Reasoning and the LarKC Project
Saltlux Inc.
 
GoldenGate Monitoring - GOUSER - 4/2014
GoldenGate Monitoring - GOUSER - 4/2014GoldenGate Monitoring - GOUSER - 4/2014
GoldenGate Monitoring - GOUSER - 4/2014
Bobby Curtis
 
Moving applications to HDF5 1.8
Moving applications to HDF5 1.8Moving applications to HDF5 1.8
Moving applications to HDF5 1.8
The HDF-EOS Tools and Information Center
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster
Frederic Descamps
 

What's hot (20)

MySQL User Group NL: MySQL 8.0 Document Store- NoSQL with all the benefits of...
MySQL User Group NL: MySQL 8.0 Document Store- NoSQL with all the benefits of...MySQL User Group NL: MySQL 8.0 Document Store- NoSQL with all the benefits of...
MySQL User Group NL: MySQL 8.0 Document Store- NoSQL with all the benefits of...
 
Deep learning on HDP 2018 Prague
Deep learning on HDP 2018 PragueDeep learning on HDP 2018 Prague
Deep learning on HDP 2018 Prague
 
Open Computer Vision with OpenCV, Apache NiFi, TensorFlow, Python
Open Computer Vision with OpenCV, Apache NiFi, TensorFlow, PythonOpen Computer Vision with OpenCV, Apache NiFi, TensorFlow, Python
Open Computer Vision with OpenCV, Apache NiFi, TensorFlow, Python
 
Sangam 18 - The New Optimizer in Oracle 12c
Sangam 18 - The New Optimizer in Oracle 12cSangam 18 - The New Optimizer in Oracle 12c
Sangam 18 - The New Optimizer in Oracle 12c
 
The internals of gporca optimizer
The internals of gporca optimizerThe internals of gporca optimizer
The internals of gporca optimizer
 
Percona Live Europe 2018 MySQL Group Replication... the magic explained
Percona Live Europe 2018  MySQL Group Replication... the magic explainedPercona Live Europe 2018  MySQL Group Replication... the magic explained
Percona Live Europe 2018 MySQL Group Replication... the magic explained
 
Oracle Code in Seoul: Provisioning of Cloud Resource
Oracle Code in Seoul: Provisioning of Cloud ResourceOracle Code in Seoul: Provisioning of Cloud Resource
Oracle Code in Seoul: Provisioning of Cloud Resource
 
Apache MXNet for IoT with Apache NiFi
Apache MXNet for IoT with Apache NiFiApache MXNet for IoT with Apache NiFi
Apache MXNet for IoT with Apache NiFi
 
Spring boot microservice metrics monitoring
Spring boot   microservice metrics monitoringSpring boot   microservice metrics monitoring
Spring boot microservice metrics monitoring
 
Improve PostgreSQL replication with Oracle GoldenGate
Improve PostgreSQL replication with Oracle GoldenGateImprove PostgreSQL replication with Oracle GoldenGate
Improve PostgreSQL replication with Oracle GoldenGate
 
DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !
 
OOW19 - HOL5221
OOW19 - HOL5221OOW19 - HOL5221
OOW19 - HOL5221
 
Hit Refresh with Oracle GoldenGate Microservices
Hit Refresh with Oracle GoldenGate MicroservicesHit Refresh with Oracle GoldenGate Microservices
Hit Refresh with Oracle GoldenGate Microservices
 
Oracle goldegate microservice
Oracle goldegate microserviceOracle goldegate microservice
Oracle goldegate microservice
 
Java EE, What's Next? by Anil Gaur
Java EE, What's Next? by Anil GaurJava EE, What's Next? by Anil Gaur
Java EE, What's Next? by Anil Gaur
 
MySQL 8 High Availability with InnoDB Clusters
MySQL 8 High Availability with InnoDB ClustersMySQL 8 High Availability with InnoDB Clusters
MySQL 8 High Availability with InnoDB Clusters
 
Web Scale Reasoning and the LarKC Project
Web Scale Reasoning and the LarKC ProjectWeb Scale Reasoning and the LarKC Project
Web Scale Reasoning and the LarKC Project
 
GoldenGate Monitoring - GOUSER - 4/2014
GoldenGate Monitoring - GOUSER - 4/2014GoldenGate Monitoring - GOUSER - 4/2014
GoldenGate Monitoring - GOUSER - 4/2014
 
Moving applications to HDF5 1.8
Moving applications to HDF5 1.8Moving applications to HDF5 1.8
Moving applications to HDF5 1.8
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster
 

Similar to 20180921_DOAG_BigDataDays_OracleSpatialandPython_kpatenge

Project Helidon Overview (Japanese)
Project Helidon Overview (Japanese)Project Helidon Overview (Japanese)
Project Helidon Overview (Japanese)
Logico
 
Serverless Kotlin
Serverless KotlinServerless Kotlin
Serverless Kotlin
David Delabassee
 
Diagnose Your Microservices
Diagnose Your MicroservicesDiagnose Your Microservices
Diagnose Your Microservices
Marcus Hirt
 
“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core
C4Media
 
Replicate data between environments
Replicate data between environmentsReplicate data between environments
Replicate data between environments
DLT Solutions
 
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
Olivier DASINI
 
Introducing Fn Project
Introducing Fn ProjectIntroducing Fn Project
Introducing Fn Project
Ayumu Aizawa
 
Overpowered Kubernetes: CI/CD for K8s on Enterprise IaaS
Overpowered Kubernetes: CI/CD for K8s on Enterprise IaaSOverpowered Kubernetes: CI/CD for K8s on Enterprise IaaS
Overpowered Kubernetes: CI/CD for K8s on Enterprise IaaS
J On The Beach
 
Python and the MySQL Document Store
Python and the MySQL Document StorePython and the MySQL Document Store
Python and the MySQL Document Store
Jesper Wisborg Krogh
 
MySQL Document Store and Node.JS
MySQL Document Store and Node.JSMySQL Document Store and Node.JS
MySQL Document Store and Node.JS
Reggie Burnett
 
[Oracle Innovation Summit Tokyo 2018] ブロックチェーンで切り拓く新たな世界
[Oracle Innovation Summit Tokyo 2018] ブロックチェーンで切り拓く新たな世界[Oracle Innovation Summit Tokyo 2018] ブロックチェーンで切り拓く新たな世界
[Oracle Innovation Summit Tokyo 2018] ブロックチェーンで切り拓く新たな世界
オラクルエンジニア通信
 
MySQL Document Store (Oracle Code Warsaw 2018)
MySQL Document Store (Oracle Code Warsaw 2018)MySQL Document Store (Oracle Code Warsaw 2018)
MySQL Document Store (Oracle Code Warsaw 2018)
Vittorio Cioe
 
Developing cloud-native microservices using project Helidon
Developing cloud-native microservices using project HelidonDeveloping cloud-native microservices using project Helidon
Developing cloud-native microservices using project Helidon
Dmitry Kornilov
 
Oracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native AppOracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native App
Paulo Alberto Simoes ∴
 
MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.
MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.
MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.
Cloud Native Day Tel Aviv
 
Helidon: Java Libraries for Writing Microservices
Helidon: Java Libraries for Writing MicroservicesHelidon: Java Libraries for Writing Microservices
Helidon: Java Libraries for Writing Microservices
Dmitry Kornilov
 
Functions and DevOps
Functions and DevOpsFunctions and DevOps
Functions and DevOps
Shaun Smith
 
Java Cloud and Container Ready
Java Cloud and Container ReadyJava Cloud and Container Ready
Java Cloud and Container Ready
CodeOps Technologies LLP
 
Přehled portfolia Oracle Database Appliance a praktických případů v regionu EMEA
Přehled portfolia Oracle Database Appliance a praktických případů v regionu EMEAPřehled portfolia Oracle Database Appliance a praktických případů v regionu EMEA
Přehled portfolia Oracle Database Appliance a praktických případů v regionu EMEA
MarketingArrowECS_CZ
 
Jakarta EE Meets NoSQL in the Cloud Age [DEV6109]
Jakarta EE Meets NoSQL in the Cloud Age [DEV6109]Jakarta EE Meets NoSQL in the Cloud Age [DEV6109]
Jakarta EE Meets NoSQL in the Cloud Age [DEV6109]
Otávio Santana
 

Similar to 20180921_DOAG_BigDataDays_OracleSpatialandPython_kpatenge (20)

Project Helidon Overview (Japanese)
Project Helidon Overview (Japanese)Project Helidon Overview (Japanese)
Project Helidon Overview (Japanese)
 
Serverless Kotlin
Serverless KotlinServerless Kotlin
Serverless Kotlin
 
Diagnose Your Microservices
Diagnose Your MicroservicesDiagnose Your Microservices
Diagnose Your Microservices
 
“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core
 
Replicate data between environments
Replicate data between environmentsReplicate data between environments
Replicate data between environments
 
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
 
Introducing Fn Project
Introducing Fn ProjectIntroducing Fn Project
Introducing Fn Project
 
Overpowered Kubernetes: CI/CD for K8s on Enterprise IaaS
Overpowered Kubernetes: CI/CD for K8s on Enterprise IaaSOverpowered Kubernetes: CI/CD for K8s on Enterprise IaaS
Overpowered Kubernetes: CI/CD for K8s on Enterprise IaaS
 
Python and the MySQL Document Store
Python and the MySQL Document StorePython and the MySQL Document Store
Python and the MySQL Document Store
 
MySQL Document Store and Node.JS
MySQL Document Store and Node.JSMySQL Document Store and Node.JS
MySQL Document Store and Node.JS
 
[Oracle Innovation Summit Tokyo 2018] ブロックチェーンで切り拓く新たな世界
[Oracle Innovation Summit Tokyo 2018] ブロックチェーンで切り拓く新たな世界[Oracle Innovation Summit Tokyo 2018] ブロックチェーンで切り拓く新たな世界
[Oracle Innovation Summit Tokyo 2018] ブロックチェーンで切り拓く新たな世界
 
MySQL Document Store (Oracle Code Warsaw 2018)
MySQL Document Store (Oracle Code Warsaw 2018)MySQL Document Store (Oracle Code Warsaw 2018)
MySQL Document Store (Oracle Code Warsaw 2018)
 
Developing cloud-native microservices using project Helidon
Developing cloud-native microservices using project HelidonDeveloping cloud-native microservices using project Helidon
Developing cloud-native microservices using project Helidon
 
Oracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native AppOracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native App
 
MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.
MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.
MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.
 
Helidon: Java Libraries for Writing Microservices
Helidon: Java Libraries for Writing MicroservicesHelidon: Java Libraries for Writing Microservices
Helidon: Java Libraries for Writing Microservices
 
Functions and DevOps
Functions and DevOpsFunctions and DevOps
Functions and DevOps
 
Java Cloud and Container Ready
Java Cloud and Container ReadyJava Cloud and Container Ready
Java Cloud and Container Ready
 
Přehled portfolia Oracle Database Appliance a praktických případů v regionu EMEA
Přehled portfolia Oracle Database Appliance a praktických případů v regionu EMEAPřehled portfolia Oracle Database Appliance a praktických případů v regionu EMEA
Přehled portfolia Oracle Database Appliance a praktických případů v regionu EMEA
 
Jakarta EE Meets NoSQL in the Cloud Age [DEV6109]
Jakarta EE Meets NoSQL in the Cloud Age [DEV6109]Jakarta EE Meets NoSQL in the Cloud Age [DEV6109]
Jakarta EE Meets NoSQL in the Cloud Age [DEV6109]
 

More from Karin Patenge

20190704_AGIT_Georaster_ImageryData_KPatenge
20190704_AGIT_Georaster_ImageryData_KPatenge20190704_AGIT_Georaster_ImageryData_KPatenge
20190704_AGIT_Georaster_ImageryData_KPatenge
Karin Patenge
 
20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatenge
20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatenge20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatenge
20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatenge
Karin Patenge
 
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
Karin Patenge
 
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickBig Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Karin Patenge
 
20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge
Karin Patenge
 
20181120_DOAG_OracleNoSQLDB_KPatenge
20181120_DOAG_OracleNoSQLDB_KPatenge20181120_DOAG_OracleNoSQLDB_KPatenge
20181120_DOAG_OracleNoSQLDB_KPatenge
Karin Patenge
 
20181123 dn2018 graph_analytics_k_patenge
20181123 dn2018 graph_analytics_k_patenge20181123 dn2018 graph_analytics_k_patenge
20181123 dn2018 graph_analytics_k_patenge
Karin Patenge
 
20181019 code.talks graph_analytics_k_patenge
20181019 code.talks graph_analytics_k_patenge20181019 code.talks graph_analytics_k_patenge
20181019 code.talks graph_analytics_k_patenge
Karin Patenge
 
OracleCode_Berlin_Jun2018_AnalyzeBitcoinTransactionDataUsingAsGraph
OracleCode_Berlin_Jun2018_AnalyzeBitcoinTransactionDataUsingAsGraphOracleCode_Berlin_Jun2018_AnalyzeBitcoinTransactionDataUsingAsGraph
OracleCode_Berlin_Jun2018_AnalyzeBitcoinTransactionDataUsingAsGraph
Karin Patenge
 
Graph Analytics on Data from Meetup.com
Graph Analytics on Data from Meetup.comGraph Analytics on Data from Meetup.com
Graph Analytics on Data from Meetup.com
Karin Patenge
 
5 Gründe für Oracle Spatial Technologies
5 Gründe für Oracle Spatial Technologies5 Gründe für Oracle Spatial Technologies
5 Gründe für Oracle Spatial Technologies
Karin Patenge
 
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
Karin Patenge
 
20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge
20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge
20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge
Karin Patenge
 
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
Karin Patenge
 
Oracle NoSQL Database: Integration in den Oracle Enterprise Manager 12
Oracle NoSQL Database: Integration in den Oracle Enterprise Manager 12Oracle NoSQL Database: Integration in den Oracle Enterprise Manager 12
Oracle NoSQL Database: Integration in den Oracle Enterprise Manager 12
Karin Patenge
 
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
Karin Patenge
 
20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge
Karin Patenge
 
Datenbank-gestützte Validierung und Geokodierung von Adressdatenbeständen
Datenbank-gestützte Validierung und Geokodierung von AdressdatenbeständenDatenbank-gestützte Validierung und Geokodierung von Adressdatenbeständen
Datenbank-gestützte Validierung und Geokodierung von Adressdatenbeständen
Karin Patenge
 
Raster Algebra mit Oracle Spatial und uDig
Raster Algebra mit Oracle Spatial und uDigRaster Algebra mit Oracle Spatial und uDig
Raster Algebra mit Oracle Spatial und uDig
Karin Patenge
 
Geodatenmanagement und -Visualisierung mit Oracle Spatial Technologies
Geodatenmanagement und -Visualisierung mit Oracle Spatial TechnologiesGeodatenmanagement und -Visualisierung mit Oracle Spatial Technologies
Geodatenmanagement und -Visualisierung mit Oracle Spatial Technologies
Karin Patenge
 

More from Karin Patenge (20)

20190704_AGIT_Georaster_ImageryData_KPatenge
20190704_AGIT_Georaster_ImageryData_KPatenge20190704_AGIT_Georaster_ImageryData_KPatenge
20190704_AGIT_Georaster_ImageryData_KPatenge
 
20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatenge
20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatenge20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatenge
20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatenge
 
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
 
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickBig Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
 
20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge
 
20181120_DOAG_OracleNoSQLDB_KPatenge
20181120_DOAG_OracleNoSQLDB_KPatenge20181120_DOAG_OracleNoSQLDB_KPatenge
20181120_DOAG_OracleNoSQLDB_KPatenge
 
20181123 dn2018 graph_analytics_k_patenge
20181123 dn2018 graph_analytics_k_patenge20181123 dn2018 graph_analytics_k_patenge
20181123 dn2018 graph_analytics_k_patenge
 
20181019 code.talks graph_analytics_k_patenge
20181019 code.talks graph_analytics_k_patenge20181019 code.talks graph_analytics_k_patenge
20181019 code.talks graph_analytics_k_patenge
 
OracleCode_Berlin_Jun2018_AnalyzeBitcoinTransactionDataUsingAsGraph
OracleCode_Berlin_Jun2018_AnalyzeBitcoinTransactionDataUsingAsGraphOracleCode_Berlin_Jun2018_AnalyzeBitcoinTransactionDataUsingAsGraph
OracleCode_Berlin_Jun2018_AnalyzeBitcoinTransactionDataUsingAsGraph
 
Graph Analytics on Data from Meetup.com
Graph Analytics on Data from Meetup.comGraph Analytics on Data from Meetup.com
Graph Analytics on Data from Meetup.com
 
5 Gründe für Oracle Spatial Technologies
5 Gründe für Oracle Spatial Technologies5 Gründe für Oracle Spatial Technologies
5 Gründe für Oracle Spatial Technologies
 
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
 
20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge
20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge
20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge
 
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
 
Oracle NoSQL Database: Integration in den Oracle Enterprise Manager 12
Oracle NoSQL Database: Integration in den Oracle Enterprise Manager 12Oracle NoSQL Database: Integration in den Oracle Enterprise Manager 12
Oracle NoSQL Database: Integration in den Oracle Enterprise Manager 12
 
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
 
20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge
 
Datenbank-gestützte Validierung und Geokodierung von Adressdatenbeständen
Datenbank-gestützte Validierung und Geokodierung von AdressdatenbeständenDatenbank-gestützte Validierung und Geokodierung von Adressdatenbeständen
Datenbank-gestützte Validierung und Geokodierung von Adressdatenbeständen
 
Raster Algebra mit Oracle Spatial und uDig
Raster Algebra mit Oracle Spatial und uDigRaster Algebra mit Oracle Spatial und uDig
Raster Algebra mit Oracle Spatial und uDig
 
Geodatenmanagement und -Visualisierung mit Oracle Spatial Technologies
Geodatenmanagement und -Visualisierung mit Oracle Spatial TechnologiesGeodatenmanagement und -Visualisierung mit Oracle Spatial Technologies
Geodatenmanagement und -Visualisierung mit Oracle Spatial Technologies
 

Recently uploaded

Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 

Recently uploaded (20)

Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 

20180921_DOAG_BigDataDays_OracleSpatialandPython_kpatenge

  • 1.
  • 2. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Pandas und Python auf die Oracle DB “loslassen” Karin Patenge | @kpatenge | Karin.patenge@oracle.com Leitende Systemberaterin / Solution Engineer Business Unit Core & Cloud Technologies | Oracle Deutschland B.V. & Co. KG DOAG Big Data Days 2018 | Dresden | 20.-21. September 2018 Geht das gut?
  • 3. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 3
  • 4. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Motivation 4 Quelle: https://de.wikipedia.org/wiki/Pythons Quelle: https://de.wikipedia.org/wiki/Pythons blogs.oracle.com/oraclespatial/spatial-with-python-and-geopandas-made-easy-with-cx_oracle @kpatenge #BIGDATADAYS
  • 5. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 5 Das Ende vorweggenommen ... arthur-e.github.io/Wicket/ @kpatenge #BIGDATADAYS
  • 6. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Agenda Die Oracle Datenbank aus Sicht der Anwendungsentwicklung Python und Pandas Python und die Oracle Datenbank Zusammenfassung 1 2 3 4 6@kpatenge #BIGDATADAYS
  • 7. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Die Oracle Datenbank aus Sicht der Anwendungsentwicklung Python und Pandas Python und die Oracle Datenbank Zusammenfassung 1 2 3 4 7@kpatenge #BIGDATADAYS
  • 8. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 8 Womit entwickeln wir? Populäre Programmiersprachen Quelle: https://insights.stackoverflow.com/survey/2018/#technology Quelle: https://redmonk.com/sogrady/2018/03/07/language-rankings-1-18/ @kpatenge #BIGDATADAYS
  • 9. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Eine Datenbank für alle wichtigen Plattformen und Sprachen Die Oracle Datenbank für EntwicklerInnen JSON Ruby Oracle ADF Oracle APEX Oracle RDS 9@kpatenge #BIGDATADAYS
  • 10. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | PROGRAMMIER- SPRACHE TREIBER C OCI C++ OCCI Java JDBC .NET ODP.NET Node.js node-oracledb Python cx_Oracle PHP OCI8, PDO_OCI R ROracle Perl DBD::Oracle Ruby ruby-oci8 10 … und ODBC, OLE DB, Pro*C, Pro*COBOL, Pro*Fortran, SQLJ Third-party Drivers Open Source Drivers (Oracle contributions) Oracle provided @kpatenge #BIGDATADAYS
  • 11. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Node.js: node-oracledb 2.3 • Pre-built binaries für Node 6, 8, 10. Für Windows (x86), macOS , Linux (x86-64) – alle 64-bit. • Apache 2.0 Lizenz. • http://github.com/oracle/node-oracledb http://oracle.github.io/node-oracledb/ Python: cx_Oracle 7.0 (Sept. 2018) • Python 2.7 sowie 3.5+. Oracle 11.2, 12, 18 Client Bibliotheken. BSD Lizenz. • http://cx-oracle.sourceforge.net http://oracle.github.io/python-cx_Oracle/ PHP: OCI8 2.1.8 • Oracle 10.2, 11 und 12 Client Bibliotheken. Über 2 Mio Downloads. • http://pecl.php.net/package/oci8 R: ROracle 1.3-1 • Oracle Database Interface Treiber für R. DBI-compliant. LPGL-2 [2.1|3] Lizenz. • http://cran.r-project.org/web/packages/ROracle Open Source Treiber von Oracle Open Source Drivers (Oracle contributions) 11@kpatenge #BIGDATADAYS
  • 12. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Die Oracle Datenbank aus Sicht der Anwendungsentwicklung Python und Pandas Python und die Oracle Datenbank Zusammenfassung 1 2 3 4 12@kpatenge #BIGDATADAYS
  • 13. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Die Programmiersprache Python • Universelle, höhere Programmiersprache • Unterstützung unterschiedlicher Programmierparadigmen – objektorientiert, aspektorientiert, funktional • Dynamische Typisierung – Deklarationszwang für Variablen entfällt • Häufigste Nutzung als Skriptsprache • Programmstruktur wird durch Einrückungen abgebildet • Versionslinien: Python 2.x / Python 3.x – 3.x mit substantiellen Verbesserungen • Basis: Read-Evaluate-Print Loop (REPL) • Empfohlene Dateiendung für Skripte: .py • Unterstützung für Object Type: SDO_GEOMETRY und LOBs (WKT, WKB) • Warum Python? – Kompakter Kern – Leicht zu erlernen – Leicht lesbar - klare, übersichtliche Syntax - Wenige Schlüsselworte – Leicht anzuwenden – Eingebaute umfangreiche Standard- bibliothek und zahlreiche Pakete • Sonstiges – Erscheinungsjahr 1991 – Python Software Foundation Lizenz – www.python.org – Prompt: „>>>“ – >>> help() | >>> exit() [quit()] 13@kpatenge #BIGDATADAYS
  • 14. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Python in der Praxis (1) • Python ist vorinstalliert in den meisten Linux Distributionen 14 [oracle@localhost ~]$ python Python 2.7.5 (default, Jul 3 2018, 06:28:28) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28.0.1)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> quit() [oracle@localhost ~]$ python -v # installing zipimport hook import zipimport # builtin # installed zipimport hook # /usr/lib64/python2.7/site.pyc matches /usr/lib64/python2.7/site.py … @kpatenge #BIGDATADAYS
  • 15. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Python in der Praxis (2) Wenn notwendig, installieren • Zusätzliche Software-Komponenten: – PyPI ( Pakete finden) , pip (Pakete laden) , Python Tools – Oracle Database Client Software 15 [oracle@localhost Downloads]$ sudo -i [root@localhost ~]# python get-pip.py [root@localhost Downloads]# python get-pip.py Collecting pip Downloading https://files.pythonhosted.org/packages/5f/25/e52d3f31441505a5f3af41213346e5b6c221c9e086a166f3703d2 ddaf940/pip-18.0-py2.py3-none-any.whl (1.3MB) 100% |████████████████████████████████| 1.3MB 647kB/s Collecting wheel Downloading https://files.pythonhosted.org/packages/81/30/e935244ca6165187ae8be876b6316ae201b71485538ffac1d7188 43025a9/wheel-0.31.1-py2.py3-none-any.whl (41kB) 100% |████████████████████████████████| 51kB 2.9MB/s Installing collected packages: pip, wheel Successfully installed pip-18.0 wheel-0.31.1 @kpatenge #BIGDATADAYS
  • 16. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | • Pandas ist eine der populärsten Programmbibliotheken (Module) für Python – Setzt das Modul Numpy voraus • Fokus: Datenmanipulation und Analyse • Datenstrukturen und Funktionen für die Manipulation von Zeitreihen und Tabellen: – Series – DataFrame 16 Pandas und GeoPandas @kpatenge #BIGDATADAYS
  • 17. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | • GeoPandas ist eine Programm- bibliothek (Modul) für Python zum Manipulieren von Vektordaten – Multi-/Punkte, Multi-/Linien, Multi/Polygone • Nutzt das Modul shapely für geometrische Operationen • Abhängigkeiten auch zu anderen Bibiotheken (u.a. matplotlib) • Datenstrukturen analog: – GeoSeries – GeoDataFrame Pandas und GeoPandas Datenstruktur Attribute Methoden GeoSeries Area Bounds Total_bounds Geom_type Is_valid Distance(other) Centroid Representative_point() To_crs() Plot() geom_almost_equals(o ther) contains(other) intersects(other) GeoDataFrame Analog mit ‚geometry‘ Spalte vom Datentyp GeoSeries Zusätzlich: Methode zum Lesen und Schreiben von Dateien und Geokodieren 17@kpatenge #BIGDATADAYS
  • 18. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Demo > # Start Python > python > # oder Jupyter Notebook > jupyter notebook --notebook-dir=~/Python & 18@kpatenge #BIGDATADAYS
  • 19. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Die Oracle Datenbank aus Sicht der Anwendungsentwicklung Python und Pandas Python und die Oracle Datenbank Zusammenfassung 1 2 3 4 19@kpatenge #BIGDATADAYS
  • 20. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Python und die Oracle Datenbank 20 Architektur der cx_Oracle Schnittstelle Client Bibliotheken verfügbar über: • Lokaler Oracle Datenbank • Oracle Client @kpatenge #BIGDATADAYS
  • 21. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | cx_Oracle • Stand Juli 2018: Version 6.4 • Open Source (Oracle Contribution) • Unterstützt Python 2.7 und 3.4+ • Für Oracle Client 11.2+ und jede davon unterstützte Oracle DB Version • Unterstützung für Vektordaten über Object Types (SDO_GEOMETRY) und LOBs (WKT, WKB) – Binding von SDO_GEOMETRY an Python Objekte • Laden von Vektordaten in die Oracle Datenbank – Anfragen an SDO_GEOMETRY über Python • Nutzung des Python Package GeoPandas (http://geopandas.org/) • Beispielcode: github.com/oracle/python-cx_Oracle/blob/master/samples/SpatialToGeoPandas.py 21@kpatenge #BIGDATADAYS
  • 22. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Python in der Praxis (3) Das Python Paket cx_Oracle 22 • Installation und Überprüfung: • Dokumentation für Python: [oracle@localhost ~]$ sudo pip install cx_Oracle [sudo] password for oracle: Collecting cx_Oracle Downloading https://files.pythonhosted.org/packages/3b/09/6b10675a6db7c7da1b8d23225f0a95b2a45248c56a1e8f711 d59809278d3/cx_Oracle-6.4.1-cp27-cp27mu-manylinux1_x86_64.whl (590kB) 100% |████████████████████████████████| 593kB 2.4MB/s Installing collected packages: cx-Oracle Successfully installed cx-Oracle-6.4.1 [oracle@localhost ~]$ python Python 2.7.5 (default, Apr 11 2018, 17:41:36) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28.0.1)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> help('modules') [oracle@localhost ~]$ python -m pydoc cx_Oracle @kpatenge #BIGDATADAYS
  • 23. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Python in der Praxis (4) Mit der Oracle DB verbinden >>> import cx_Oracle >>> con = cx_Oracle.connect('hr/hr@localhost/orcl') >>> print(con.version) 12.2.0.1.0 >>> cur=con.cursor() >>> >>> cur.execute('select * from employees order by last_name') <cx_Oracle.Cursor on <cx_Oracle.Connection to hr@localhost/orcl>> >>> for row in cur: ... print(row) ... (174, 'Ellen', 'Abel', 'EABEL', '011.44.1644.429267', datetime.datetime(1996, 5, 11, 0, 0), 'SA_REP', 11000.0, 0.3, 149, 80) (166, 'Sundar', 'Ande', 'SANDE', '011.44.1346.629268', datetime.datetime(2000, 3, 24, 0, 0), 'SA_REP', 6400.0, 0.1, 147, 80) 23@kpatenge #BIGDATADAYS
  • 24. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Python in der Praxis (5.1) Arbeit mit cx_Oracle und GeoPandas 24 • Installation GeoPandas Paket und davon abhängige Pakete [oracle@localhost ~]$ sudo yum install python-devel ... [oracle@localhost ~]$ sudo pip install geopandas [sudo] password for oracle: Collecting geopandas Downloading https://files.pythonhosted.org/packages/24/11/d77c157c16909bd77557d00798b05a5b6615ed6 0acb5900fbe6a65d35e93/geopandas-0.4.0-py2.py3-none-any.whl (899kB) 100% |████████████████████████████████| 901kB 2.6MB/s ... Installing collected packages: pyproj, munch, click, click-plugins, cligj, enum34, fiona, geopandas Successfully installed click-6.7 click-plugins-1.0.3 cligj-0.4.0 enum34-1.1.6 fiona- 1.7.13 geopandas-0.4.0 munch-2.3.2 pyproj-1.9.5.1 @kpatenge #BIGDATADAYS
  • 25. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Python in der Praxis (5.2) Arbeit mit cx_Oracle und GeoPandas 25 • Vorgefertigtes Modul for Verbindung mit Oracle DB https://github.com/oracle/python-cx_Oracle/blob/master/samples/SampleEnv.py – Benötigt 2 Datenbank Nutzer PYTHONDEMO und PYTHONEDITIONS – Muß im gleichen Verzeichnis wie das Hauptprogramm liegen @kpatenge #BIGDATADAYS
  • 26. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Demo > # Start Python > python > # oder Jupyter Notebook > jupyter notebook --notebook-dir=~/Python & 26@kpatenge #BIGDATADAYS
  • 27. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Python in der Praxis (5.3) Arbeit mit cx_Oracle und GeoPandas 27 >>> from __future__ import print_function >>> >>> import SampleEnv >>> import cx_Oracle >>> from shapely.wkb import loads >>> import geopandas as gpd ... >>> import matplotlib as mpl >>> # Create Oracle connection and cursor objects ... connection = cx_Oracle.Connection(SampleEnv.MAIN_CONNECT_STRING) >>> cursor = connection.cursor() >>> connection.autocommit = True >>> def OutputTypeHandler(cursor, name, defaultType, size, precision, scale): ... if defaultType == cx_Oracle.BLOB: ... return cursor.var(cx_Oracle.LONG_BINARY, arraysize = cursor.arraysize) ... >>> connection.outputtypehandler = OutputTypeHandler @kpatenge #BIGDATADAYS
  • 28. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Python in der Praxis (5.4) Arbeit mit cx_Oracle und GeoPandas 28 >>> # Drop and create table ... print("Dropping and creating table...") Dropping and creating table... >>> cursor.execute(""" ... begin ... execute immediate 'drop table de_federal_states'; ... exception when others then ... if sqlcode <> -942 then ... raise; ... end if; ... end;""") >>> cursor.execute(""" ... create table de_federal_states ( ... name VARCHAR2(30) not null, ... geometry SDO_GEOMETRY not null ... )""") @kpatenge #BIGDATADAYS
  • 29. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Python in der Praxis (5.5) Arbeit mit cx_Oracle und GeoPandas 29 >>> # acquire types used for creating SDO_GEOMETRY objects ... typeObj = connection.gettype("MDSYS.SDO_GEOMETRY") >>> elementInfoTypeObj = connection.gettype("MDSYS.SDO_ELEM_INFO_ARRAY") >>> ordinateTypeObj = connection.gettype("MDSYS.SDO_ORDINATE_ARRAY") >>> >>> # define function for creating an SDO_GEOMETRY object ... def CreateGeometryObj(*ordinates): ... geometry = typeObj.newobject() ... geometry.SDO_GTYPE = 2003 ... geometry.SDO_SRID = 8307 ... geometry.SDO_ELEM_INFO = elementInfoTypeObj.newobject() ... geometry.SDO_ELEM_INFO.extend([1, 1003, 1]) ... geometry.SDO_ORDINATES = ordinateTypeObj.newobject() ... geometry.SDO_ORDINATES.extend(ordinates) ... return geometry @kpatenge #BIGDATADAYS
  • 30. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Python in der Praxis (5.6) Arbeit mit cx_Oracle und GeoPandas 30 >>> geometryBrandenburg = CreateGeometryObj(13.8479741700806,53.5154842208988,... >>> geometrySachsen = CreateGeometryObj(12.8462989319859,51.6830540864208,... >>> geometryThueringen = CreateGeometryObj(10.80620196783,51.6409960580726,... >>> >>> data = [ ... ('Brandenburg', geometryBrandenburg), ... ('Sachsen', geometrySachsen), ... ('Thueringen', geometryThueringen) ... ] >>> cur.executemany('insert into de_federal_states values (:state, :obj)', data) >>> cur.execute(""" ... select count(*) ... from de_federal_states""") <cx_Oracle.Cursor on <cx_Oracle.Connection to pythondemo@localhost/orcl>> >>> >>> for row in cur: ... print(row) ... (3,) @kpatenge #BIGDATADAYS
  • 31. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Python in der Praxis (5.7) Arbeit mit cx_Oracle und GeoPandas 31 >>> ... @kpatenge #BIGDATADAYS
  • 32. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 1 2 3 4 Die Oracle Datenbank aus Sicht der Anwendungsentwicklung Python und Pandas Python und die Oracle Datenbank Zusammenfassung Weiterführende Informationen5 32@kpatenge #BIGDATADAYS
  • 33. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 33 1. Wir können auch #nextGen ! 2. (Ganz) Viel ist möglich. Ihr müßt Euch nur trauen ☺ @kpatenge #BIGDATADAYS
  • 34. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Bonus für die ganz Experimentierfreudigen: Oracle Database Multilingual Engine oracle.com/technetwork/database/multilingual-engine MLE is an experimental feature for the Oracle Database 12c. MLE enables developers to work efficiently with DB-resident data in modern programming languages and development environments of their choice. 34 https://www.youtube.com/watch?v=AY_2M3tgaZs @kpatenge #BIGDATADAYS
  • 35. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Folgen Sie @kpatenge @SpatialHannes @JeanIhm karin.patenge@oracle.com 35@kpatenge #BIGDATADAYS
  • 36. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 36@kpatenge #BIGDATADAYS