what’s new in the next generaon of oracle databasecreate sharded table customers ( custno number...

60

Upload: others

Post on 18-Apr-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)
Page 2: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

What’sNewintheNextGeneraEonofOracleDatabase

GeraldVenzl(@GeraldVenzl)SeniorPrincipalProductManagerDatabaseDevelopmentJune08,2017

Page 3: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

SafeHarborStatementThefollowingisintendedtooutlineourgeneralproductdirecEon.ItisintendedforinformaEonpurposesonly,andmaynotbeincorporatedintoanycontract.Itisnotacommitmenttodeliveranymaterial,code,orfuncEonality,andshouldnotberelieduponinmakingpurchasingdecisions.Thedevelopment,release,andEmingofanyfeaturesorfuncEonalitydescribedforOracle’sproductsremainsatthesolediscreEonofOracle.

Page 4: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

ProgramAgenda

ApplicaEonContainers

OracleDatabaseSharding

Evenbe[erJSON

BigDataSQL

Longaskedforandothers

1

2

3

4

5

Page 5: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

ProgramAgenda

ApplicaEonContainers

OracleDatabaseSharding

Evenbe[erJSON

BigDataSQL

Longaskedforandothers

1

2

3

4

5

Page 6: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

OracleDataandUserDataBefore12.1:Oracleanduserdataintermingleover;me

•  NewdatabasecontainsOraclemeta-dataonly

•  Populatedatabasewithuserdata– Oracleandcustomermeta-dataintermingled

– Portabilitychallenge!

• MulEtenantfix:Horizontally-par--oneddatadic-onary– OnlyOracle-suppliedmeta-dataremainsinroot

RootPDB

Meta-Data UserData

OBJ$ TAB$ SOURCE$

OBJ$

TAB$ SOURCE$ DEPTEMP

Page 7: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

ApplicaEonContainers

thebrooklynbeanV2

ProgramsreplicatedacrossPDBs

Page 8: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

•  ApplicaEonContainercomprises– ApplicaEonRoot(Master)– ApplicaEonPDBs(foreachTenant)– ApplicaEonSeed(forprovisioning)

•  PDBsshareapplicaEonobjects– Code,metadataanddata

•  Furthersimplifiesmanagement– ApplyupdatestoapplicaEoncontainer– SynctenantPDBsfromcentralmaster

•  SuitableforallapplicaEons– SaaS,franchise,divisional,etc.

ApplicaEonContainersRootcontainerforyourapplica;ons

Page 9: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

ApplicaEonContainersShare&propagateacrossmul;plePDBs

AccountType•  Credit•  Debit•  Check•  Savings

BankAccount

Person

BankCard

PDB$SEED APPROOT PDB1 PDB2 PDB3

Page 10: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

WhatisanApplicaEonContainer?

•  AnApplicaEoncontainerisacollecEonofPDBsconsisEngofApplicaEonRootandallApplicaEonPDBsassociatedwithit

CDB$ROOT

AppRoot AppPDB1 AppPDB2 PDB1

CDB$ROOT

APPRoot PDB1

AppPDB1 AppPDB2

PhysicalRepresentaEonLogicalRepresentaEon

Page 11: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

ApplicaEonContainers

• ApplicaEonRootPDBfordefiningapplicaEonmaster– MetadataandcommondatasharedacrosstenantPDBs

•  InstallonecopyofyourapplicaEon•  InstantprovisioningofanApplicaEonPDB/Tenant(withaseedPDB)• ContainerDataviewsforreporEngacrossPDBs(CONTAINERSclausebased)

•  Supportsin-placesimplepatching•  SupportsUnplug/PlugupgradeacrossApplicaEonRoot

ThefutureofDatabaseApplica;onDevelopment

Page 12: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

ProgramAgenda

ApplicaEonContainers

OracleDatabaseSharding

Evenbe[erJSON

BigDataSQL

Longaskedforandothers

1

2

3

4

5

Page 13: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

OracleDatabaseShardingOracleDatabaseforweb-scaleapplica;ons

OnegiantdatabaseparEEonedintomanysmalldatabases(shards)

CustomersAmericas

Customers

CustomersEurope

CustomersAsia

•  RACandDataGuardmeetneedsofover99%ofapplica;onswhilepreservingapplicaEontransparency

•  SomeGlobal-ScaleOLTPapplica;onsprefertoshardmassivedatabasesintoafarmofsmallerdatabases

–  Avoidscalabilityoravailabilityedgecasesofasinglelargedatabase

–  WillingtocustomizedatamodelandapplicaEonstoenabletransacEonstobeautomaEcallyroutedtotherightshard

•  NaEveSQLforshardingtablesacrossupto1000Shards-  RouEngofSQLbasedonshardkey,andcrossshardqueries-  OnlineaddiEonandreorganizaEonofshards-  Linearscalabilityofdata,workload,userswithisolaEon

Page 14: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

ApplicaEonSuitabilityforShardingOLTPApplica;onswiththeFollowingCharacteris;cs

• ApplicaEonsformassivescale– E.g.e-commerce,mobile,socialetc.

• ApplicaEonsmustbeshard-aware• Primaryusagepa[ern

– Single-shardoperaEonsbasedonshardkey,e.g.customer_id,account_idetc.

Page 15: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

OracleShardingAutomatedDistribuEonEnhancedSQLsyntaxforSharding…

CREATE SHARDED TABLE Customers( CustId VARCHAR2(60) NOT NULL, FirstName VARCHAR2(60), LastName VARCHAR2(60), … PRIMARY KEY(CustId),)PARTITION BY CONSISTENT HASH (CustId) …

•  SQLsyntaxforcreaEngshardedtables•  NotproprietaryAPIsaswithNoSQL

•  CreaEonofashardedtableautomaEcallyparEEonsdataacrossshards

•  Transparentreshardingasdatagrows•  Choiceofshardingmethods:

•  Systemmanaged-consistenthash•  Userdefined-range,list•  Composite-range-hash,list-hash

•  Commonreferencedata(e.g.PriceList)isautomaEcallyduplicatedonallshards

•  SupportsshardplacementinspecificgeographiestosaEsfygovernmentdataprivacy

Page 16: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

ShardedSchema

Customers Orders LineItems

Products

Sharded

Duplicated

Public

Page 17: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

ShardedTableFamily–EnhancedSQLDDLSyntax

CREATE LOOKUP TABLE Products( SKU NUMBER(4) PRIMARY KEY, Product VARCHAR2(20), Price NUMBER(6,2)) ) TABLESPACE dupl ;

CREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo) ) PARTITION BY CONSISTENT HASH (CustNo) PARTITIONS AUTO TABLESPACE SET ts1 ;

CREATE SHARDED TABLE Orders ( OrderNo NUMBER(5), CustNo NUMBER(3), OrderDate DATE , … CONSTRAINT CustFK FOREIGN KEY (CustNo) REFERENCES Customers(CustNo) ) PARTITION BY REFERENCE (CustFK) ;

Page 18: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

CoordinatorDB

AppTier

RouEngTier

RouEngSupportonClientforHighestSpeed

ApplicaEonServer

ShardDirectors

•  Clientspassshardingkey(e.g.CustomerID)toConnecEonpool,connecEonisroutedtotherightshard

•  Fast:cachingkeyrangesonclientensuresthatmostaccessesgodirectlytotheshard

•  Scalable:easilyscaleswithmoreclientsandshards

•  SupportsUCP,OCI,ODP.NET,andJDBC

Shardingkey

DataTier

Page 19: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

DataTier

Non-ShardKeyAccess&Cross-ShardQueries

•  IfclientdoesnotpassshardkeytoConnecEonpool,theconnecEonismadetothecoordinatordatabase

•  CoordinatorparsesSQLandwillproxy/routerequesttooneormoreshards

•  Supportsshardpruningandsca[er-gather

•  Fordeveloperconvenienceandnotforhighperformance

•  SupportsmanybutnotallQueries

•  NoUpdatesupport

CoordinatorDB

AppTier

RouEngTier

ApplicaEonServer

ShardDirectors

Page 20: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

ProgramAgenda

ApplicaEonContainers

OracleDatabaseSharding

Evenbe[erJSON

BigDataSQL

Longaskedforandothers

1

2

3

4

5

Page 21: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016Oracleand/oritsaffiliates.Allrightsreserved.|

Page 22: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016Oracleand/oritsaffiliates.Allrightsreserved.|

EvoluEonofdatamanagement

1970s

CobolISAM

Rela;onalSQL

ObjectDBs

Mul;-ModelSQL

XMLXPath

Mul;-ModelSQL

JSON

Mul;-ModelSQL

Complexity

Page 23: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016Oracleand/oritsaffiliates.Allrightsreserved.|

EvoluEonofdatamanagement

1970s

CobolISAM

Rela;onalSQL

1980s

ObjectDBs

Mul;-ModelSQL

XMLXPath

Mul;-ModelSQL

JSON

Mul;-ModelSQL

Complexity

Page 24: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016Oracleand/oritsaffiliates.Allrightsreserved.|

EvoluEonofdatamanagement

1970s

CobolISAM

Rela;onalSQL

1980s

ObjectDBs

Mul;-ModelSQL

XMLXPath

Mul;-ModelSQL

JSON

Mul;-ModelSQL

1990s

Complexity

Page 25: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016Oracleand/oritsaffiliates.Allrightsreserved.|

EvoluEonofdatamanagement

1970s

CobolISAM

Rela;onalSQL

1980s

ObjectDBs

Mul;-ModelSQL

XMLXPath

Mul;-ModelSQL

JSON

Mul;-ModelSQL

Complexity

1990s

Page 26: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016Oracleand/oritsaffiliates.Allrightsreserved.|

EvoluEonofdatamanagement

1970s

CobolISAM

Rela;onalSQL

1980s

ObjectDBs

Mul;-ModelSQL

XMLXPath

Mul;-ModelSQL

JSON

Mul;-ModelSQL

2000s

Complexity

1990s

Page 27: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016Oracleand/oritsaffiliates.Allrightsreserved.|

EvoluEonofdatamanagement

1970s

CobolISAM

Rela;onalSQL

1980s

ObjectDBs

Mul;-ModelSQL

XMLXPath

Mul;-ModelSQL

JSON

Mul;-ModelSQL

2000s

Complexity

1990s

Page 28: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016Oracleand/oritsaffiliates.Allrightsreserved.|

EvoluEonofdatamanagement

1970s

CobolISAM

Rela;onalSQL

1980s

ObjectDBs

Mul;-ModelSQL

XMLXPath

Mul;-ModelSQL

JSON

Mul;-ModelSQL

2000s 2010s

Complexity

1990s

Page 29: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016Oracleand/oritsaffiliates.Allrightsreserved.|

MulE-modelprevailsoverEmeComplexity

1970s

Rela;onalSQL

1980s

ObjectDBs

Mul;-ModelSQL

XMLXPath

Mul;-ModelSQL

JSON

Mul;-ModelSQL

1990s 2000s 2010s 20??

CobolISAM

Mul;-ModelSQL

Next“big”thing

Page 30: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

SimpleNoSQLDevelopmentexperienceOracle12cJSONdocumentstore

SQL

ApplicaEonsdevelopedusing

SODAAPIs

JSONDocumentsStoredandManagedUsingOracleDatabase

SQLbasedreporEngandanalyEcaloperaEonsonJSONDocuments

OracleDatabase12c

JSON

Page 31: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

EnterpriseDataManagementOracle12cJSONdocumentstore

ApplicaEonsdevelopedusing

SODAAPIs

JSONDocumentsStoredandManagedUsingOracleDatabase

SQLbasedreporEngandanalyEcaloperaEonsonJSONDocuments

OracleDatabase12c

SQLJSON

Page 32: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

AllthepowerofSQLwhenneededOracle12cJSONdocumentstore

ApplicaEonsdevelopedusing

SODAAPIs

JSONDocumentsStoredandManagedUsingOracleDatabase

SQLbasedreporEngandanalyEcaloperaEonsonJSONDocuments

OracleDatabase12c

SQLJSON

Page 33: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2015Oracleand/oritsaffiliates.Allrightsreserved.|

JSONSupportinOracleDatabaseFastApplicaEonDevelopment+PowerfulSQLAccess

33

ApplicaEondevelopers:AccessJSONdocumentsusingRESTAPI

POST /my_database/my_schema/customers HTTP/1.0Content-Type: application/jsonBody: { "firstName": "John", “lastName”: "Smith", "age": 25, "address": {

"streetAddress": "21 2nd Street", "city": "New York",

"state": "NY", "postalCode": "10021“, "isBusiness" : false },

"phoneNumbers": [ {"type": "home", "number": "212 555-1234“ }, {"type": "fax", "number": "646 555-4567“ } ]

}

select c.json_document.firstName, c.json_document.lastName, c.json_document.address.cityfrom customers c;

firstName lastName address.city----------- ----------- --------------“John” “Smith” “New York”

AnalyEcaltoolsandbusinessusers:QueryJSONusingSQL

JSON

Page 34: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

JSONintegraEonwithPL/SQL• NewPL/SQLobjectsenablefinegrainedmanipulaEonofJSONcontent

– JSON_OBJECT_T:forworkingwithJSONobjects– JSON_ARRAY_T:forworkingwithJSONArrays– JSON_OBJECT_TandJSON_ARRAY_TaresubtypesofJSON_ELEMENT_T

•  TheseobjectsprovideasetofmethodsformanipulaEngJSON• PiecewiseupdatesofJSONdocumentsnowsupportedinPL/SQL

Page 35: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

JSONintegraEonwithPL/SQLWITH FUNCTION updateTax(JSON_DOC in VARCHAR2 ) RETURN VARCHAR2 IS

jo JSON_OBJECT_T; price NUMBER; taxRate NUMBER;

BEGIN jo := JSON_OBJECT_T(JSON_DOC); taxRate := jo.get_Number('taxRate'); price := jo.get_Number('total'); jo.put('totalIncludingTax', price * (1+taxRate)); RETURN jo.to_string();

END; ORDERS AS (

SELECT '{"taxRate":0.175,"total":10.00}' JSON_DOCUMENT FROM dual

) SELECT JSON_DOCUMENT, updateTax(JSON_DOCUMENT) FROM ORDERS; JSON_DOCUMENT UPDATETAX(JSON_DOCUMENT) ------------------------------- ---------------------------------------------------------{"taxRate":0.175,"total":10.00} {"taxRate":0.175,"total":10.00,"totalIncludingTax":11.75}

Page 36: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

DataGuide:UnderstandingyourJSONdocuments

• Metadatadiscovery:discoversthestructureofcollecEonofJSONdocuments– OpEonal:deepanalysisofJSONforListofValues,ranges,sizingetc.

• AutomaEcallyGenerates– Virtualcolumns– RelaEonalviews

•  De-normalizedrelaEonalviewsforarrays

– Reports/SynopsisofJSONstructure

Page 37: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

DataGuide:AutomaEcSchemaInference

SQL> desc MOVIE_TICKETS NAME TYPE --------------------- ----------- BOOKING_ID RAW(16) BOOKING_TIME TIMESTAMP(6) BOOKING_DETAILS VARCHAR2(4000)

TablecontainingJSONdocuments

JSONDataGuide Tableenhancedwithvirtualcolumns

SQL> desc MOVIE_TICKETS NAME TYPE --------------------- ----------- BOOKING_ID RAW(16) BOOKING_TIME TIMESTAMP(6) BOOKING_DETAILS VARCHAR2(4000) BOOKING_DETAILS$Movie VARCHAR2(16) BOOKING_DETAILS$Theater VARCHAR2(16) BOOKING_DETAILS$Adults NUMBER BOOKING_DETAILS$Time VARCHAR2(32) {

"Theater":"AMC 15", "Movie":"Jurrasic World 3D", "Time“:2015-11-26T18:45:00", "Tickets":{ "Adults":2 }}

DBMS_JSON.AddVC( “MOVIE_TICKETS”, “BOOKING_DETAILS”);

Page 38: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

JSONSearchIndex:AuniversalindexforJSONcontent

•  Supports searching on JSON using key, path and value•  Supports range searches on numeric values•  Supports full text searches:

–  Full boolean search capabilities (and, or, and not)–  Phrase search, proximity search and "within field" searches.–  Inexact queries: fuzzy match, soundex and name search.– Automatic linguistic stemming for 32 languages– A full, integrated ISO thesaurus framework

CREATE SEARCH INDEX JSON_SEARCH_INDEX ON J_PURCHASEORDER (PO_DOCUMENT) FOR JSON;

Page 39: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

QueryOpEmizaEonsforJSONExadataSmartScans•  ExadataSmartScansexecuteporEonsofSQLqueriesonExadatastoragecells

•  JSONqueryoperaEons‘pusheddown’toExadatastoragecells•  MassivelyparallelprocessingofJSONdocuments

In-MemoryColumnarStore•  Virtualcolumns,includedthosegeneratedusingJSONDataGuideloadedintoIn-MemoryVirtualColumns

•  JSONdocumentsloadedusingahighlyopEmizedIn-Memorybinaryformat

•  QueryoperaEonsonJSONcontentautomaEcallydirectedtoIn-Memory

Page 40: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

NaEveJSONGeneraEon

•  JSONgeneraEonfuncEonsavailable:– JSON_OBJECT/JSON_OBJECTAGG– JSON_ARRAY/JSON_ARRAYAGG

SQL> SELECT JSON_OBJECT('Id' is EMPLOYEE_ID, 'FirstName' is FIRST_NAME, 2 'LastName' is LAST_NAME) JSON 3 FROM HR.EMPLOYEES 4 WHERE EMPLOYEE_ID = 100; JSON ------------------------------------------------------------------------------ { "Id" : 100 , "FirstName" : "Steven" , "LastName" : "King" } SQL>

Page 41: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

ProgramAgenda

ApplicaEonContainers

OracleDatabaseSharding

Evenbe[erJSON

BigDataSQL

Longaskedforandothers

1

2

3

4

5

Page 42: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

BigDataSQL

TheBestofBothWorlds

SQL

Page 43: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

TheBestofBothWorlds

•  Simplicity•  SpecializaEon•  Performance

•  Complexity•  FragmentaEon•  Delays

Page 44: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

Yesterday’sOn-PremisesDeploymentModels

Page 45: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

TodayMoreDeploymentOpEonsforBigDataSQL

Page 46: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

ProgramAgenda

ApplicaEonContainers

OracleDatabaseSharding

Evenbe[erJSON

BigDataSQL

Longaskedforandothers

1

2

3

4

5

Page 47: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

Case-insensiEveDatabaseandColumn-levelCollaEonGreatlysimplifiesmigra;onofcase-insensi;vefunc;onalityof3rd-partyproducts

•  LinguisEc-sensiEveoperaEons,e.g.,comparisonandsorEng,onthecolumnhonorthedeclaredcollaEon

•  UnspecifiedcolumncollaEonisinheritedfromthedefaultcollaEonpropertyoftheparenttableorschema

•  COLLATEoperatorcanbeusedtocastanexplicitcollaEonanywhereinanexpression

CREATE TABLE product ( id NUMBER, name VARCHAR2(50) COLLATE BINARY_CI, comments VARCHAR2(500) ) DEFAULT COLLATION BINARY;

SELECT name, comments FROM product WHERE name LIKE '%BASE%' OR comments COLLATE BINARY_CI LIKE '%REPORT%'; NAME COMMENTS _ Oracle Database Activity-Based Management Business Intelligence Replaces Reports

_CI=case-insensiEve

InheritsBINARY

Page 48: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

•  12.1.0.2APPROX_COUNT_DISTINCT•  12.2.0.1adds:•  APPROX_PERCENTILE•  APPROX_MEDIAN

–  FindthevalueforagivenpercenEle,e.g.whatistheamountsoldthatrepresentsthe90%percenEleofallsales

–  6-13Xfasterwitherrortypically<1%

•  ApproximatefuncEonsusedwithoutanyapplicaEonchanges–  QueriesautomaEcallyre-wri[entouseapproximatefuncEons

–  approx_for_aggregaEon=TRUE

•  Storeapproximateaggregatesinmaterializedviewswithqueryrewrite–  NotpreviouslypossibletouseMV’swithdisEnctandpercenEleaggregates

ApproximateQueryProcessingNoteveryqueryrequiresacompletelyaccurateresult

Page 49: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

PropertyGraphSupport• Massively-ScalableGraphDatabase

– Scalestotrillionsofedges• Memory-basedGraphAnalyEcs

– Morethan35graphanalysisalgorithms

•  SimpleStandardinterfaces– SQL,Java– Tinkerpop:Blueprints,Gremlin,Rexster– Groovy,Python

START

Page 50: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

PL/SQLdeprecatepragma

create procedure p authid Definer is pragma deprecate(p, 'p is deprecated. You must use p2 instead.'); begin DBMS_Output.Put_Line('p'); end p; PLW-06019: entity P is deprecated create procedure q authid Definer is begin p(); DBMS_Output.Put_Line('q'); end q; PLW-06020: reference to a deprecated entity: p is deprecated. You must use p2 instead.

Page 51: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

128-byteidenEfiersforobjects

CREATE TABLE VERY_VERY_LONG_TABLE_NAME_IDENTIFIER_THAT_IS_58_BYTES_LONG ( VERY_VERY_LONG_TEXT_COLUMN_WITH_DATA_TYPE_VARCHAR2_THAT_IS_72_BYTES_LONG VARCHAR2(25) ); Table VERY_VERY_LONG_TABLE_NAME_IDENTIFIER_THAT_IS_58_BYTES_LONG created. INSERT INTO VERY_VERY_LONG_TABLE_NAME_IDENTIFIER_THAT_IS_58_BYTES_LONG VALUES ('Hello OOW attendees!'); 1 row inserted. SELECT * FROM VERY_VERY_LONG_TABLE_NAME_IDENTIFIER_THAT_IS_58_BYTES_LONG; VERY_VERY_LONG_TEXT_COLUM ------------------------- Hello OOW attendees!

Page 52: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2015Oracleand/oritsaffiliates.Allrightsreserved.|

OracleonDocker

• OracleDatabaseisfullysupportedonDocker– OracleLinux7– RedHatEnterpriseLinux7

• OracleimageonDockerStore• DockerbuildfilesonGitHub

Page 53: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2015Oracleand/oritsaffiliates.Allrightsreserved.|

OracleonDocker• Dockercontainercontainssingle-PDBCDB• PDBcanbeplugged,unplugged,etc.• PDBcanmovebi-direcEonal

Page 54: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2015Oracleand/oritsaffiliates.Allrightsreserved.|

DockerStore• Oracle12.1.0.2imagesareavailableonDockerStoreRegistry

– h[ps://store.docker.com– 12.2.0.1comingsoon(currentlygoingthroughtesEng)

Page 55: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2015Oracleand/oritsaffiliates.Allrightsreserved.|

DockerbuildfilesavailableonGitHub• Repository:h[ps://github.com/oracle/docker-images• Buildfilesfor12.2.0.1EE/SE2,12.1.0.2EE/SE2,11.2.0.2XE

Page 56: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2014Oracleand/oritsaffiliates.Allrightsreserved.|

LiveSQL.oracle.com

56

ThefullpowerofOracleSQLinyourbrowser

Page 57: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

Thankyou!

haps://developer.oracle.com

Page 58: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

SafeHarborStatementTheprecedingisintendedtooutlineourgeneralproductdirecEon.ItisintendedforinformaEonpurposesonly,andmaynotbeincorporatedintoanycontract.Itisnotacommitmenttodeliveranymaterial,code,orfuncEonality,andshouldnotberelieduponinmakingpurchasingdecisions.Thedevelopment,release,andEmingofanyfeaturesorfuncEonalitydescribedforOracle’sproductsremainsatthesolediscreEonofOracle.

Page 59: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)

Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|

Page 60: What’s New in the Next Generaon of Oracle DatabaseCREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo)