32
!"#$%&'() + ,-./0 1%2345 2678"% &)9 2::&4&2)59; <44 %&'()9 %595%=57; > !"#$% '()*+#($ #$ ,-(./ 011-#)*+#($" 2#+3 45+3($6 7(/89:"6 *$/ ;(<8 ?&=2 @2=272 ?56&"% A&%53)"% ": B6'&655%&6' 1%2345 ?#2)&24 267 C%2#( A5=54"#D56) !"6:&756)&24 E 1%2345 F6)5%6248@59)%&3)578G&'(4$ @59)%&3)57

011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

!"#$%&'()*+*,-./0 1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

!"#$%&'()*+#($&#$&,-(./&011-#)*+#($"&2#+3&45+3($6&7(/89:"6&*$/&;(<8

?&=2*@2=272?56&"%*A&%53)"%*":*B6'&655%&6'1%2345*?#2)&24*267*C%2#(*A5=54"#D56)

!"6:&756)&24*E 1%2345*F6)5%6248@59)%&3)578G&'(4$*@59)%&3)57

Page 2: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |

Overview

• Oracle REST Data Services (ORDS)• Node.js• Python

Confidential – Oracle Internal/Restricted/Highly Restricted 2

Enabling Spatial Analytics in Cloud applications

Page 3: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

!"#$%&'()#*+#%'#,-'."#)/'! 012*'3+-&%4562&-'()#*+#%'-#*#7#2&! 8#"*'19'!"#$%&':#*#7#2&';(&$6"&<'/+=/')&"91">#,$&<'2$#%#7%&! !)*+>+?&-'91"'@A#-#*#! B&C&"#=&2'&A+2*+,='2D+%%2';(EB<'F#C#<'#,-'G0B! @#24'*1')"1="#>'62+,=',&3'2$"+)*+,='#,-'1*/&"'$%16-'&,#7%&-'%#,=6#=&2'! (+>)%&"<'>1"&'2$#%#7%&'#))%+$#*+1,2

Page 4: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

!2)5'"%&?2)&"6*267*:&4)5%&6'*@2957*"6*4"32)&"6*267*#%"A&B&)$

C%5#2%2)&"60*=24&72)&"6*267*345269&6'*":*D#2)&24*267*E29)5%*72)2

F&9G24&?&6'*267*7&9#42$&6'*%59G4)9*"6*2*B2#

D#2)&24*HG5%$&6'*267*2624$9&9*":*I27""# 72)2*J&)(*DKL

M2)2*I2%B"6&?2)&"6*G9&6'*26$*4"32)&"6*2))%&@G)5*N277%5990*#"9)24*3"750*42)84"6'0*#423562B50*5)3O;

1%2345*P&'*M2)2*D#2)&24*267*Q%2#(!"#$%#$%&'()*+#($&*$*',+#)-&+(&.*/((0&*$/&1(234&0'*+5("6-

Page 5: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |

Oracle REST Data Services (ORDS)

Confidential – Oracle Internal/Restricted/Highly Restricted 5

Page 6: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

?#2)&24*@&)(*1%2345*A59)*B2)2*?5%=&359*C1AB?D

! E2=2*E,FF*G&7*)&5%*2##4&32)&"6" <49"*9H##"%)9*I?)26724"65J*G"75*:"%*75=54"#G56)

! K"%*&6#H)0*G2#98L&679*MAN*)"*?OP*267*QP8?OP

! K"%*"H)#H)0*)%269:"%G9*%59H4)9*)"*E?1R*267*")(5%*:"%G2)9

! ?(&#9*@&)(*1%2345*B2)2L295*267*?OP*B5=54"#5%!"6:&756)&24*S 1%2345*N6)5%6248A59)%&3)578T&'(4$*A59)%&3)57 U

!"#$%!&'(&)'*

1%2345*AF?V*B2)2*?5%=&359TVVQC?D*34&56) 1%2345*B2)2L295

?OPW2#*X*Y&67MAN

E?1R V%269:"%G*)"*E?1R ?OP*A59H4)*?5)

Page 7: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

1%2345*?@AB*C2)2*A5%=&359DBBEF9G*<EH*<##IC5= J&)(*?542)&"624*B2K459*&6*1%2345*C2)2K295

L**M3N9)6"OP**.--.0M62Q5OP***MA3"))*R&6'O0M277%599OP**MS--*T2&6*9)%55)0*H66"=2)&"6*!<O0M"%75%9OP*U*L*M"%75%6"OP**V-V0

M"%75%72)5OP*MW5K*,X0*,-.VO0M9)2)N9OP*M&6*#%"3599OY*Y*Y*

L*M"%75%6"OP**Z-Z0M"%75%72)5OP*MW5K*,[0*,-.VO0M9)2)N9OP*M&6*#%"3599OY*\*Y

]A1^

DBBEF9G

())#9P88Q$("9)8"%798(%83N9)"Q5%"%75%98.--.1%2345*?@AB

C2)2*A5%=&359A_`

1?CA*Q2#9*9)2672%7*a?H*%5bN59)9*)"*3"%%59#"67&6'*%542)&"624*A_`*F6")*93(5Q24599GP*5;';*A_`*A@`@!B*:%"Q*3N9)"Q5%9*267*"%75%9*)2K45;1?CA*249"*)%269:"%Q9*)(5*A_`*%59N4)9*&6)"*)(5*(&'(4$*#"#N42%*]2=2A3%&#)*1Kc53)*^")2)&"6*F]A1^G0*")(5%*:"%Q2)9*&634N75*DBT`0*K&62%$*267*!Ad;

WN44$*3"QQ&))57*)"*9N##"%)&6'*26$*267*244*9)2672%79*%5bN&%57*K$*WN9&"6*8*A22A 8*WTef*J5*2%5*23)&=54$*56'2'57*&6*)(5*"6'"&6'*7&24"';

A_`*%59N4)*)"*]A1^*

)%269:"%Q2)&"6

a?H*?5bN59)*"%*DBBEF9G*#"9)*Q2##57*)"*A_`*%5bN59)

]Cg!*!"6653)&"6*

E""4

1%2345*C2)2K295

a?H* T"7N45

83N9)"Q5%"%75%98.--.

B5Q#42)5

83N9)"Q5%"%75%98.--.

B5Q#42)5!"6)5h)*?"")

"%79

Page 8: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |

Spatial with Oracle Rest Data Services (ORDS)

• Create REST endpoints for tables and views with geometries

• Create REST endpoints for Spatial queries and procedures

• Create REST endpoints wrapped as GeoJSON

• Programming through PL/SQL and Java APIs

• User friendly UI in SQL Developer

Confidential – Oracle Internal/Restricted/Highly Restricted 8

Use cases

Approach

Page 9: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |

Spatial with Oracle Rest Data Services (ORDS)

Demo 1Shows how to publish results of a Spatial query as a web service

Confidential – Oracle Internal/Restricted/Highly Restricted 9

Page 10: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**> !"6:&756)&24*? 1%2345*@6)5%6248A59)%&3)578B&'(4$*A59)%&3)57 .-!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**> !"6:&756)&24*? 1%2345*@6)5%6248A59)%&3)578B&'(4$*A59)%&3)57 .-

Page 11: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |

Node.js

Confidential – Oracle Internal/Restricted/Highly Restricted 11

Page 12: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |

Spatial with Node.js

• Built for developing server side applications in JavaScript

– JavaScript instead of Java

• Open-source JavaScript run-time, runs outside of a browser

• Designed for asynchronous, event driven applications

• Built to handle streaming content

• Easily creates REST APIs

Confidential – Oracle Internal/Restricted/Highly Restricted 12

Node.js overview

Page 13: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 13

Node.js Architecture

https://www.pabbly.com/tutorials/node-js-event-loops

Page 14: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |

Spatial with Node.js

• Combine content and analyses from Spatial DB with other geospatial resources and publish REST API – For example, publish items from Spatial DB based on containment in a region defined

in an external source

• Subscribe to Oracle Database’s Continuous Query Notification (CQN) for Spatial content for near real-time monitoring app. – For example, monitoring Tracking Server notifications

• Deploy to Oracle Application Container Cloud Service to easily leverage Spatial in Oracle DBCS

Confidential – Oracle Internal/Restricted/Highly Restricted 14

Use cases

Page 15: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

?#2)&24*@&)(*A"75;B9

!"6:&756)&24*C 1%2345*D6)5%6248E59)%&3)578F&'(4$*E59)%&3)57 .G

!""#$%&'

! H5=5%2'5*6"75I"%23457J 277I"6*:"%*A"75;B9" E"JK9)*3"6653)&=&)$*)"*1%2345*72)2J295" F267459*H1L9"1#56*9"K%350*M2&6)2&657*J$*1%2345

! H5=5%2'5*'&)(KJ 5N2M#459! ?&635*A"75;B9 &9*O2=293%&#)0*****P5"O?1A &9*2*62)K%24;*?"*45=5%2'5*?Q1RSTDH;T18UE1VRPW1O?1AXY

Page 16: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

?5@"*,A*B("C9*("C*)"*@2D5*B#2)&24*32449*)"*?E*267*C5F*95%=&359*:%"@*G"75;H9*2##4&32)&"6

!"6:&756)&24*I 1%2345*J6)5%6248K59)%&3)578L&'(4$*K59)%&3)57 .M

G"75;H9*2##4&32)&"6A*6"75N9#2)&24N%59)N2#&;H9 OBPB*B5%=&35*:"%*Q&%5*

#5%@&5)5%9

.;*R5F*95%=&35*%5ST59)*)"*'5)*2*:&%5*#5%&@5)5%

,;*K59#"695*&6*UB1G

V;*WT5%$*?E*)"*:&67*)(5*KK*2::53)57*F$*)(5*:&%5*#5%&@5)5%

X;*K59#"695*&6*UB1G

Page 17: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**> !"6:&756)&24*? 1%2345*@6)5%6248A59)%&3)578B&'(4$*A59)%&3)57 .C!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**> !"6:&756)&24*? 1%2345*@6)5%6248A59)%&3)578B&'(4$*A59)%&3)57 .C

Page 18: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |

Demo 3: Shows how to build a simple tracking and notification application

• Define countries as regions of interest to track moving objects• Generate random moving objects on the globe• Generate notifications when a moving object moves into a country

Confidential – Oracle Internal/Restricted/Highly Restricted 18

Page 19: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |

Location tracking Server

• Track objects against a set of polygons and generate notifications when the moving objects enter the regions of interest

19

• Track objects within a set of polygons and generate notifications when the moving objects leaves the regions of interest

Page 20: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |

Continuous Query Notification (CQN)• CQN lets an application register queries with the database – object change notification (the default) – query result change notification

• If a query is registered for query result change notification (QRCN), the database notifies the application whenever a transaction changes the result of the query and commits• CQN provides a push mechanism for generating notifications for changes in

the DB

Confidential – Oracle Internal/Restricted/Highly Restricted 20

Page 21: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

?5@"*AB*C":)D2%5*3"@#"656)9

!"6:&756)&24*E 1%2345*F6)5%6248G59)%&3)578H&'(4$*G59)%&3)57 ,.

I"75;J9*2##4&32)&"6B*95%=5%;J9

?&9#42$*K=56)9

?5@"*AB*C":)D2%5*3"@#"656)9

LM9(*I")&:&32)&"69*2N"M)*@"=&6'*"NJ53)9

!OI*267*P"32)&"6*Q%23R&6'*C5%=5%

.S 95%=5%;J9 2##*%5'&9)5%9*6")&:&32)&"69*)2N45*D&)(*!OI,S )%23R&6'*95%=5%*TM5M59*@5992'59AS 75TM5M57*@5992'59*2%5*&695%)57*)"*)2N45US !OI*#M9(59*6")&:&32)&"69VS 95%=5%;J9 #%"359959*6")&:&32)&"69*267*)2R59*23)&"69

Page 22: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**> !"6:&756)&24*? 1%2345*@6)5%6248A59)%&3)578B&'(4$*A59)%&3)57 ,,!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**> !"6:&756)&24*? 1%2345*@6)5%6248A59)%&3)578B&'(4$*A59)%&3)57 ,,

Page 23: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |

Python

Confidential – Oracle Internal/Restricted/Highly Restricted 23

Page 24: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |

Spatial with Python

• Very popular general-purpose open-source language• Interpreted, high level, easy to get started• Widely adopted for data science and general data analysis• Tons of available well-maintained and widely adopted and libraries

Confidential – Oracle Internal/Restricted/Highly Restricted 24

Python overview

Page 25: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |

Spatial with Python

• Pull content from Spatial to Python to perform specialized geostatistical analysis• Invoke Spatial from Python for large scale spatial processing such as spatial

join, dynamic segmentation etc and retrieve results for further work• Combine content from Spatial with other geospatial sources in Python such

as ShapeFiles , GeoJSON files and services

Confidential – Oracle Internal/Restricted/Highly Restricted 25

Use cases

Page 26: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

?#2)&24*@&)(*A$)("6

!"6:&756)&24*B 1%2345*C6)5%6248D59)%&3)578E&'(4$*D59)%&3)57 ,F

!""#$%&'

! G5=5%2'5*3HI1%2345 J"7K45" D"LK9)*3"6653)&=&)$*)"*1%2345*72)2L295"1#56*9"K%350*J2&6)2&657*L$*1%2345

" ?M1INO1POQDR*L&67&6'90*G1S*(2674&6'

" 955*'&)(KL 5H2J#459*&634;*?#2)&24

! G5=5%2'5*'5"9#2)&24*4&L%2%$*53"9$9)5J" N5"A267290*?(2#54$0*A$?<G0*5)3

! T95*6")5L""U*V&;5;*WK#$)5%X*)"*2624$Y5*267*=&9K24&Y5*

Page 27: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |

Jupyter Notebook• Jupyter Notebook is an open-source web

application that allows you to create and share code and documents

• Benefits of this environment – you can document your code

– run code, look at the outcome

– visualize data and see the results without leaving the environment

– A handy tool for performing end to end data science workflows – data cleaning, statistical modeling, building and training machine learning models, visualizing data

Oracle Confidential – Internal/Restricted/Highly Restricted 27

Page 28: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |

Demo 4: Shows how to use shapefile data to query against Spatial database and visualize result

• Regions of interest provided in a shapefile

• Pick one region of interest from the file and use it to query against the spatial database

• Visualize results on a map and as a bar graph

• All these tasks can be done from one environment

Confidential – Oracle Internal/Restricted/Highly Restricted 28

Page 29: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**> !"6:&756)&24*? 1%2345*@6)5%6248A59)%&3)578B&'(4$*A59)%&3)57 ,C!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**> !"6:&756)&24*? 1%2345*@6)5%6248A59)%&3)578B&'(4$*A59)%&3)57 ,C

Page 30: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

!"#$%&'()'*$+$,-'&"$%.,$/0#-$123345)(6!"#$%"#$#&'(%$)*#+,--.)'*/#,0#+.1*,-"%1#$)2#3$%*)"%1#*4$*#+,))"+*1#$)2#"5+4$)6"1#7),89"26"#,)9')":#$)2#$*#+,)0"%")+"1#$)2#"&")*1;

72)5$40$25*)5#$()564-*8923:2-'9*#0&'()'*923345)(6

<')7"2=) >,,69"? =@A>#B=>

C,%$13$*'$91'6

,%$+9"13$*'$91'6C6-$'9;+,-

Page 31: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |

Analytics and Data SummitAll Analytics. All Data. No Nonsense.

March 12 – 14, 2019

Formerly called the BIWA Summit with the Spatial and Graph SummitSame great technical content…new name!

www.AnalyticsandDataSummit.org

Call for Speakers now open! Submit an abstract to share your use case or technical session

Page 32: 011-#)*+#($&2#+3&45+3($6&7(/89:6& *$/&(

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |

Questions?

Confidential – Oracle Internal/Restricted/Highly Restricted 32