SlideShare une entreprise Scribd logo
1  sur  55
Drag, Drop and other Stuff
XML DB Repository
   Ever executed DBMS_XDB…?

    dbms_xdb.SetHTTPPort(8080)
    dbms_xdb.SetFTPPort(2100)
   Based on XML Standards:
    XPath V2 , XSLT V1 , XQuery V1 ,
    XQuery Update (11.2.0.3) , XBRL (Extention)
   XML Handling
     Stores, Consumes, Generates, Validates
   XDB Repository
     HTTP(s), FTP & WebDAV
     XDB Repository Events
   No Cost Option, Core database feature
   XDB Repository File / Folder (aka Resources)
   Resource manipulation
     DBMS_XDB, DBMS_XDBRESOURCE
   Default XDB ACL Driven Security
   XDB Protocol Listener
   Respository Events
   Versioning
   XML Schema awareness
   Extending XML Schema functionality
   XDB$RESOURCE
     XDBResource.xsd
     XMLType Table (Schema based XML Table)
   Access to XDB Repository
     WebDAV, FTP, HTTP(s)
     SQL, PL/SQL, NDWS
     PATH_VIEW, RESOURCE_VIEW
   Select, Update, Delete
     UNDER_PATH, EQUALS_PATH
Servlet ?


MIME Type?


Security ?

XML
Schema ?

XDB Event ?


Extention?
Use Case
Database FileServer   2 The MAX

      Copy a FILE
    to the Database
Event
MIME                     Event
             Listener
Check                   Handler

         XML Protocol
        Server (Listener)
Extract
               Move
File Info

     Store in XDB
      Repository
Extract File    XDB File to
 Content          Server


    Batch File to XDB
    “Batch” Directory
Use Case
Database FileServer   2 The MAX

    Copy a PICTURE
    to the Database
Event
MIME                     Event
             Listener
Check                   Handler

         XML Protocol
        Server (Listener)
Extract       Store in
 XML           Table

    Store in XDB
     Repository
EXIF           KML



  Display in GUI,
   Google Map
Methods at Work
Servlet ?


MIME Type?


Security ?

XML
Schema ?

XDB Event ?


Extention?
   XML Schema - xdbconfig.xsd
   Notepad, XMLSpy, PL/SQL
   Secured via WebDAV ACL (xdbadmin)
   Packages (among others):
     DBMS_XDB
      ▪ Caching, Session, Locking, Security behavior
      ▪ Enable HTTP/FTP, MIME, Encoding, Virtual Paths
      ▪ SERVLETS: NDWS, APEX, XDBUrifactory
     DBMS_EPG
      ▪ Creation off Database Access Descriptors
<xdbconfig>
  <sysconfig>
    <acl-max-age>15</acl-max-age>
    <acl-cache-size>32</acl-cache-size>
    <invalid-pathname-chars/>
    <case-sensitive>true</case-sensitive>
    <call-timeout>6000</call-timeout>
    <max-link-queue>65536</max-link-queue>
    <max-session-use>100</max-session-use>
    <persistent-sessions>false</persistent-sessions>
    <default-lock-timeout>3600</default-lock-timeout>
    <xdbcore-log-level>0</xdbcore-log-level>
    <resource-view-cache-size>1048576</resource…size>
    <xdbcore-xobmem-bound>1024</xdbcore-xobmem-bound>
    <xdbcore-loadableunit-size>16</xdbcore-……………size>
    <acl-evaluation-method>ace-order</acl-ev……method>
  </sysconfig>
</xdbconfig>
<servlet xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd">
  <servlet-name>APEX</servlet-name>
  <servlet-language>PL/SQL</servlet-language>
  <display-name>APEX</display-name>
  <plsql xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd">
    <database-username>ANONYMOUS</database-username>
    <default-page>apex</default-page>
    <document-table-name>wwv_flow_file_objects$</document-…-
  name>
    <document-path>docs</document-path>
    <document-procedure>
      wwv_flow_file_mgr.process_download
    </document-procedure>
    <nls-language>american_america.al32utf8</nls-language>
    <request-validation-function>
      wwv_flow_epg_include_modules.authorize
    </request-validation-function>
  </plsql>
  <security-role-ref
  xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd">
    <role-name>anonymousServletRole</role-name>
    <role-link>anonymousServletRole</role-link>
  </security-role-ref>
</servlet>
Methods at Work
   Event Listener
     Java Class, PL/SQL Package, Object Type
      ▪ E.g. a package called: “HANDLE_XDB_EVENTS”
   Event Handlers
     Event handlers processes a single event
      ▪ Package procedures called “handlePreCreate”,
        “handlePostCreate, “handlePreVersionControl”…
   Resource Configuration File
     The glue between Event Listener and Resources
   Render      UnLinkIn      UnCheckOut
   Create      UnLinkFrom    VersionControl
   Delete      Lock          UnLock
   Update      CheckIn       LinkTo
   LinkIn      CheckOut
   Create      handlePreCreate
                handlePostCreate
   Delete      handlePreDelete
                handlePostDelete
Render         handleRender
Lock
                handlePreLock
…               handlePostLock
URL: XDBEvent   XDBEventListener
Methods at Work
Servlet ?


MIME Type?


Security ?

XML
Schema ?

XDB Event ?


Extention?
   Glue between Event Listener and Resource
   An XML File
     XML Schema restricted: XDBResConfig.xsd
   Contains (among others):
     Events and Source (Event Listener)
     Path to “itself” (/public/myResFile.xml)
     Pre-conditions (XPATH on XDB$RESOURCE)
   Is assigned to a Resource (File/Folder)
     DBMS_RESCONFIG.AppendResConfig
   XML Schema: xdb$resource.xsd
   XMLType Table
   PATH_VIEW, RESOURCE_VIEW
   LOB Column (with file content)
   Non Schema based metadata in LOB
   Info about:
     RESID, DisplayName, Owner, Creator, VersionID,
     ChecktOut, CreationDate, ModifiedDate, SizeOnDisk,
     ContentSize, ContentType, Comments, CharacterSet,
     Etc…
   Move all files created by BATCH to…
   Extract Info from picture if extension GIF…
<pre-condition>
  <existsNode>
    <XPath>/Resource[Creator="BATCH"]</XPath>
  </existsNode>
</pre-condition>

<pre-condition>
  <existsNode>
    <XPath>/Resource[ContentType="image/jpg"]</XPath>
  </existsNode>
</pre-condition>
Holistic Approach
Servlet ?


MIME Type?


Security ?

XML
Schema ?

XDB Event ?


Extension?
XML Schema      XML Schema
XML Document
                     in XML ?       Registered ?



Physical XMLType   Shred XML into      Update
 Associated ?         XMLType       XDB$Resource
Everybody knows EXIF…
Jeffrey's EXIF Viewer
   Camera Make and Model
   Aperture, Shutter Speed, Focal Length
   ISO Speed, Date Taken, Description
   Geo-coding, Copyright Information

   EXIF XML Schema is pre-registered with XML
    DB by Oracle MultiMedia
   Type ordsys.ordimage extracts EXIF
    metadata document from a JPG image
   The following embedded image metadata
    formats are supported by Oracle Multimedia:

      EXIF                (JPEG/TIFF - JEIDA)
      IPTC-IIM            (JPEG/TIFF – Adobe)
      XMP                 (GIF/JPEG/TIFF – Adobe/RDF)


    http://www.adobe.com   http://www.w3.org/RDF   Wikipedia - EXIF
   ENABLE_HIERARCHY_RESMETADATA
   Metadata defined using an XML Schema
   Metadata stored in a separate table
   Table includes hidden column RESID
     Enables join with RESOURCE_VIEW, PATH_VIEW
   Applications query and update metadata
    directly
     Improved Indexing
   Metadata deleted when resource is deleted
Document       MIME type JPG   Event Listener?




                     EXIF        EXIF Extended
Event Handler?
                 XML Schema?     w/ USER XSD ?



 Extract JPG      Extract JPG     Extract JPG
  File info        EXIF info     USER metadata
XDB$Resource     XMLType Table   XMLType Table
Its about Time to wrap it Up
Servlet ?


MIME Type?


Security ?

XML
Schema ?

XDB Event ?


Extention?
1. EVENT LISTENER
   • Package
2. EVENT HANDLERS
   • Procedures in “Event Listener”
3. RESOURCE CONFIGURATION FILE
   • XML File
• General File Stuff turns out to be XML then…

4. XML SCHEMA REGISTRATION
   • dbms_xmlschema.register_schema
5. EXTRA USER DEFINED METADATA NEEDED
   • dbms_xmlschema.enable_hierarchy_resm
     etadata
• XML DB
   - Beyond the Database, Fileserver Realm
• Imagination is your limit, e.g.:
  - Extending “file” server with Text Search
  - Extending “file” server with ETL functionality
• Extra options: database / fileserver interfacing
• Based on standards
• No cost option / all database versions
   URL: OTN XMLDB Sample Code

     XFILES Version 5
     Introduction to Oracle XML DB Repository Events
     Oracle XML DB-based Mashup with Google Earth
     Oracle XML DB Repository Features
     XDB Utilities and more…
   Blog posts about:

     Setting up logging in the XDB Repository
     Package template HANDLE_XDB_EVENTS
     Concepts & Howto’s for XDB Repository
     Automatically shred content out of Windows
      Office (docx) into table columns
     References to XLSX examples of Marc Bleron and
      Anton Scheffers

Contenu connexe

Tendances

Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...
Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...
Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...InSync2011
 
OrientDB introduction - NoSQL
OrientDB introduction - NoSQLOrientDB introduction - NoSQL
OrientDB introduction - NoSQLLuca Garulli
 
Jdbc 4.0 New Features And Enhancements
Jdbc 4.0 New Features And EnhancementsJdbc 4.0 New Features And Enhancements
Jdbc 4.0 New Features And Enhancementsscacharya
 
The power of datomic
The power of datomicThe power of datomic
The power of datomicKonrad Szydlo
 
Introduction à DocumentDB
Introduction à DocumentDBIntroduction à DocumentDB
Introduction à DocumentDBMSDEVMTL
 
Datomic – A Modern Database - StampedeCon 2014
Datomic – A Modern Database - StampedeCon 2014Datomic – A Modern Database - StampedeCon 2014
Datomic – A Modern Database - StampedeCon 2014StampedeCon
 
Silicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your databaseSilicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your databaseSpeedment, Inc.
 
Processing large-scale graphs with Google Pregel
Processing large-scale graphs with Google PregelProcessing large-scale graphs with Google Pregel
Processing large-scale graphs with Google PregelMax Neunhöffer
 
Advanced SQL - Database Access from Programming Languages
Advanced SQL - Database Access  from Programming LanguagesAdvanced SQL - Database Access  from Programming Languages
Advanced SQL - Database Access from Programming LanguagesS.Shayan Daneshvar
 
FITC presents: Mobile & offline data synchronization in Angular JS
FITC presents: Mobile & offline data synchronization in Angular JSFITC presents: Mobile & offline data synchronization in Angular JS
FITC presents: Mobile & offline data synchronization in Angular JSFITC
 
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...NoSQLmatters
 
Electron, databases, and RxDB
Electron, databases, and RxDBElectron, databases, and RxDB
Electron, databases, and RxDBBen Gotow
 
NHibernate (The ORM For .NET Platform)
NHibernate (The ORM For .NET Platform)NHibernate (The ORM For .NET Platform)
NHibernate (The ORM For .NET Platform)Samnang Chhun
 

Tendances (20)

Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...
Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...
Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...
 
Xml parsers
Xml parsersXml parsers
Xml parsers
 
OrientDB introduction - NoSQL
OrientDB introduction - NoSQLOrientDB introduction - NoSQL
OrientDB introduction - NoSQL
 
Jdbc 4.0 New Features And Enhancements
Jdbc 4.0 New Features And EnhancementsJdbc 4.0 New Features And Enhancements
Jdbc 4.0 New Features And Enhancements
 
The power of datomic
The power of datomicThe power of datomic
The power of datomic
 
PostgreSQL - Case Study
PostgreSQL - Case StudyPostgreSQL - Case Study
PostgreSQL - Case Study
 
Introduction à DocumentDB
Introduction à DocumentDBIntroduction à DocumentDB
Introduction à DocumentDB
 
Datomic – A Modern Database - StampedeCon 2014
Datomic – A Modern Database - StampedeCon 2014Datomic – A Modern Database - StampedeCon 2014
Datomic – A Modern Database - StampedeCon 2014
 
Silicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your databaseSilicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your database
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Processing large-scale graphs with Google Pregel
Processing large-scale graphs with Google PregelProcessing large-scale graphs with Google Pregel
Processing large-scale graphs with Google Pregel
 
Advanced SQL - Database Access from Programming Languages
Advanced SQL - Database Access  from Programming LanguagesAdvanced SQL - Database Access  from Programming Languages
Advanced SQL - Database Access from Programming Languages
 
FITC presents: Mobile & offline data synchronization in Angular JS
FITC presents: Mobile & offline data synchronization in Angular JSFITC presents: Mobile & offline data synchronization in Angular JS
FITC presents: Mobile & offline data synchronization in Angular JS
 
Introduction to datomic
Introduction to datomicIntroduction to datomic
Introduction to datomic
 
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...
 
Electron, databases, and RxDB
Electron, databases, and RxDBElectron, databases, and RxDB
Electron, databases, and RxDB
 
NHibernate (The ORM For .NET Platform)
NHibernate (The ORM For .NET Platform)NHibernate (The ORM For .NET Platform)
NHibernate (The ORM For .NET Platform)
 
NoSQL Introduction
NoSQL IntroductionNoSQL Introduction
NoSQL Introduction
 
Multi model-databases
Multi model-databasesMulti model-databases
Multi model-databases
 
Mongo db
Mongo dbMongo db
Mongo db
 

En vedette

UKOUG Tech15 - Going Full Circle - Building a native JSON Database API
UKOUG Tech15 - Going Full Circle - Building a native JSON Database APIUKOUG Tech15 - Going Full Circle - Building a native JSON Database API
UKOUG Tech15 - Going Full Circle - Building a native JSON Database APIMarco Gralike
 
eProseed Oracle Open World 2016 debrief - Oracle Management Cloud
eProseed Oracle Open World 2016 debrief - Oracle Management CloudeProseed Oracle Open World 2016 debrief - Oracle Management Cloud
eProseed Oracle Open World 2016 debrief - Oracle Management CloudMarco Gralike
 
BGOUG 2012 - XML Index Strategies
BGOUG 2012 - XML Index StrategiesBGOUG 2012 - XML Index Strategies
BGOUG 2012 - XML Index StrategiesMarco Gralike
 
Miracle Open World 2011 - XML Index Strategies
Miracle Open World 2011  -  XML Index StrategiesMiracle Open World 2011  -  XML Index Strategies
Miracle Open World 2011 - XML Index StrategiesMarco Gralike
 
Oaktable World 2014 Kevin Closson: SLOB – For More Than I/O!
Oaktable World 2014 Kevin Closson:  SLOB – For More Than I/O!Oaktable World 2014 Kevin Closson:  SLOB – For More Than I/O!
Oaktable World 2014 Kevin Closson: SLOB – For More Than I/O!Kyle Hailey
 
OakTable World 2015 - Using XMLType content with the Oracle In-Memory Column...
OakTable World 2015  - Using XMLType content with the Oracle In-Memory Column...OakTable World 2015  - Using XMLType content with the Oracle In-Memory Column...
OakTable World 2015 - Using XMLType content with the Oracle In-Memory Column...Marco Gralike
 

En vedette (6)

UKOUG Tech15 - Going Full Circle - Building a native JSON Database API
UKOUG Tech15 - Going Full Circle - Building a native JSON Database APIUKOUG Tech15 - Going Full Circle - Building a native JSON Database API
UKOUG Tech15 - Going Full Circle - Building a native JSON Database API
 
eProseed Oracle Open World 2016 debrief - Oracle Management Cloud
eProseed Oracle Open World 2016 debrief - Oracle Management CloudeProseed Oracle Open World 2016 debrief - Oracle Management Cloud
eProseed Oracle Open World 2016 debrief - Oracle Management Cloud
 
BGOUG 2012 - XML Index Strategies
BGOUG 2012 - XML Index StrategiesBGOUG 2012 - XML Index Strategies
BGOUG 2012 - XML Index Strategies
 
Miracle Open World 2011 - XML Index Strategies
Miracle Open World 2011  -  XML Index StrategiesMiracle Open World 2011  -  XML Index Strategies
Miracle Open World 2011 - XML Index Strategies
 
Oaktable World 2014 Kevin Closson: SLOB – For More Than I/O!
Oaktable World 2014 Kevin Closson:  SLOB – For More Than I/O!Oaktable World 2014 Kevin Closson:  SLOB – For More Than I/O!
Oaktable World 2014 Kevin Closson: SLOB – For More Than I/O!
 
OakTable World 2015 - Using XMLType content with the Oracle In-Memory Column...
OakTable World 2015  - Using XMLType content with the Oracle In-Memory Column...OakTable World 2015  - Using XMLType content with the Oracle In-Memory Column...
OakTable World 2015 - Using XMLType content with the Oracle In-Memory Column...
 

Similaire à BGOUG 2012 - Drag & drop and other stuff - Using your database as a file server

Boost Your Environment With XMLDB - UKOUG 2008 - Marco Gralike
Boost Your Environment With XMLDB - UKOUG 2008 - Marco GralikeBoost Your Environment With XMLDB - UKOUG 2008 - Marco Gralike
Boost Your Environment With XMLDB - UKOUG 2008 - Marco GralikeMarco Gralike
 
Softshake - Offline applications
Softshake - Offline applicationsSoftshake - Offline applications
Softshake - Offline applicationsjeromevdl
 
Internet Explorer 8
Internet Explorer 8Internet Explorer 8
Internet Explorer 8David Chou
 
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1Marco Gralike
 
09.Local Database Files and Storage on WP
09.Local Database Files and Storage on WP09.Local Database Files and Storage on WP
09.Local Database Files and Storage on WPNguyen Tuan
 
12 core technologies you should learn, love, and hate to be a 'real' technocrat
12 core technologies you should learn, love, and hate to be a 'real' technocrat12 core technologies you should learn, love, and hate to be a 'real' technocrat
12 core technologies you should learn, love, and hate to be a 'real' technocratlinoj
 
Local data storage for mobile apps
Local data storage for mobile appsLocal data storage for mobile apps
Local data storage for mobile appsIvano Malavolta
 
Yuriy Gerasimov. Drupal Services. Integration with third party applications. ...
Yuriy Gerasimov. Drupal Services. Integration with third party applications. ...Yuriy Gerasimov. Drupal Services. Integration with third party applications. ...
Yuriy Gerasimov. Drupal Services. Integration with third party applications. ...Vlad Savitsky
 
Metadata and Provenance for ML Pipelines with Hopsworks
Metadata and Provenance for ML Pipelines with Hopsworks Metadata and Provenance for ML Pipelines with Hopsworks
Metadata and Provenance for ML Pipelines with Hopsworks Jim Dowling
 
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...SPTechCon
 
Dojo - from web page to web apps
Dojo - from web page to web appsDojo - from web page to web apps
Dojo - from web page to web appsyoavrubin
 
Hibernate presentation
Hibernate presentationHibernate presentation
Hibernate presentationManav Prasad
 
Declare your infrastructure: InfraKit, LinuxKit and Moby
Declare your infrastructure: InfraKit, LinuxKit and MobyDeclare your infrastructure: InfraKit, LinuxKit and Moby
Declare your infrastructure: InfraKit, LinuxKit and MobyMoby Project
 
SQLBits X SQL Server 2012 Rich Unstructured Data
SQLBits X SQL Server 2012 Rich Unstructured DataSQLBits X SQL Server 2012 Rich Unstructured Data
SQLBits X SQL Server 2012 Rich Unstructured DataMichael Rys
 
Import web resources using R Studio
Import web resources using R StudioImport web resources using R Studio
Import web resources using R StudioRupak Roy
 
Cliw - extension development
Cliw -  extension developmentCliw -  extension development
Cliw - extension developmentvicccuu
 
PLAT-13 Metadata Extraction and Transformation
PLAT-13 Metadata Extraction and TransformationPLAT-13 Metadata Extraction and Transformation
PLAT-13 Metadata Extraction and TransformationAlfresco Software
 

Similaire à BGOUG 2012 - Drag & drop and other stuff - Using your database as a file server (20)

Boost Your Environment With XMLDB - UKOUG 2008 - Marco Gralike
Boost Your Environment With XMLDB - UKOUG 2008 - Marco GralikeBoost Your Environment With XMLDB - UKOUG 2008 - Marco Gralike
Boost Your Environment With XMLDB - UKOUG 2008 - Marco Gralike
 
Local Storage
Local StorageLocal Storage
Local Storage
 
Softshake - Offline applications
Softshake - Offline applicationsSoftshake - Offline applications
Softshake - Offline applications
 
Internet Explorer 8
Internet Explorer 8Internet Explorer 8
Internet Explorer 8
 
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
 
09.Local Database Files and Storage on WP
09.Local Database Files and Storage on WP09.Local Database Files and Storage on WP
09.Local Database Files and Storage on WP
 
12 core technologies you should learn, love, and hate to be a 'real' technocrat
12 core technologies you should learn, love, and hate to be a 'real' technocrat12 core technologies you should learn, love, and hate to be a 'real' technocrat
12 core technologies you should learn, love, and hate to be a 'real' technocrat
 
Local data storage for mobile apps
Local data storage for mobile appsLocal data storage for mobile apps
Local data storage for mobile apps
 
Yuriy Gerasimov. Drupal Services. Integration with third party applications. ...
Yuriy Gerasimov. Drupal Services. Integration with third party applications. ...Yuriy Gerasimov. Drupal Services. Integration with third party applications. ...
Yuriy Gerasimov. Drupal Services. Integration with third party applications. ...
 
Metadata and Provenance for ML Pipelines with Hopsworks
Metadata and Provenance for ML Pipelines with Hopsworks Metadata and Provenance for ML Pipelines with Hopsworks
Metadata and Provenance for ML Pipelines with Hopsworks
 
Hadoop HDFS Concepts
Hadoop HDFS ConceptsHadoop HDFS Concepts
Hadoop HDFS Concepts
 
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
 
Dojo - from web page to web apps
Dojo - from web page to web appsDojo - from web page to web apps
Dojo - from web page to web apps
 
Hibernate presentation
Hibernate presentationHibernate presentation
Hibernate presentation
 
Hibernate presentation
Hibernate presentationHibernate presentation
Hibernate presentation
 
Declare your infrastructure: InfraKit, LinuxKit and Moby
Declare your infrastructure: InfraKit, LinuxKit and MobyDeclare your infrastructure: InfraKit, LinuxKit and Moby
Declare your infrastructure: InfraKit, LinuxKit and Moby
 
SQLBits X SQL Server 2012 Rich Unstructured Data
SQLBits X SQL Server 2012 Rich Unstructured DataSQLBits X SQL Server 2012 Rich Unstructured Data
SQLBits X SQL Server 2012 Rich Unstructured Data
 
Import web resources using R Studio
Import web resources using R StudioImport web resources using R Studio
Import web resources using R Studio
 
Cliw - extension development
Cliw -  extension developmentCliw -  extension development
Cliw - extension development
 
PLAT-13 Metadata Extraction and Transformation
PLAT-13 Metadata Extraction and TransformationPLAT-13 Metadata Extraction and Transformation
PLAT-13 Metadata Extraction and Transformation
 

Plus de Marco Gralike

UKOUG2018 - I Know what you did Last Summer [in my Database].pptx
UKOUG2018 - I Know what you did Last Summer [in my Database].pptxUKOUG2018 - I Know what you did Last Summer [in my Database].pptx
UKOUG2018 - I Know what you did Last Summer [in my Database].pptxMarco Gralike
 
eProseed Oracle Open World 2016 debrief - Oracle 12.2.0.1 Database
eProseed Oracle Open World 2016 debrief - Oracle 12.2.0.1 DatabaseeProseed Oracle Open World 2016 debrief - Oracle 12.2.0.1 Database
eProseed Oracle Open World 2016 debrief - Oracle 12.2.0.1 DatabaseMarco Gralike
 
Oracle Database - JSON and the In-Memory Database
Oracle Database - JSON and the In-Memory DatabaseOracle Database - JSON and the In-Memory Database
Oracle Database - JSON and the In-Memory DatabaseMarco Gralike
 
UKOUG Tech14 - Getting Started With JSON in the Database
UKOUG Tech14 - Getting Started With JSON in the DatabaseUKOUG Tech14 - Getting Started With JSON in the Database
UKOUG Tech14 - Getting Started With JSON in the DatabaseMarco Gralike
 
UKOUG Tech14 - Using Database In-Memory Column Store with Complex Datatypes
UKOUG Tech14 - Using Database In-Memory Column Store with Complex DatatypesUKOUG Tech14 - Using Database In-Memory Column Store with Complex Datatypes
UKOUG Tech14 - Using Database In-Memory Column Store with Complex DatatypesMarco Gralike
 
Ordina Oracle Open World
Ordina Oracle Open WorldOrdina Oracle Open World
Ordina Oracle Open WorldMarco Gralike
 
Starting with JSON Path Expressions in Oracle 12.1.0.2
Starting with JSON Path Expressions in Oracle 12.1.0.2Starting with JSON Path Expressions in Oracle 12.1.0.2
Starting with JSON Path Expressions in Oracle 12.1.0.2Marco Gralike
 
An introduction into Oracle VM V3.x
An introduction into Oracle VM V3.xAn introduction into Oracle VM V3.x
An introduction into Oracle VM V3.xMarco Gralike
 
An introduction into Oracle Enterprise Manager Cloud Control 12c Release 3
An introduction into Oracle Enterprise Manager Cloud Control 12c Release 3An introduction into Oracle Enterprise Manager Cloud Control 12c Release 3
An introduction into Oracle Enterprise Manager Cloud Control 12c Release 3Marco Gralike
 
An AMIS Overview of Oracle database 12c (12.1)
An AMIS Overview of Oracle database 12c (12.1)An AMIS Overview of Oracle database 12c (12.1)
An AMIS Overview of Oracle database 12c (12.1)Marco Gralike
 
Flexibiliteit & Snel Schakelen
Flexibiliteit & Snel SchakelenFlexibiliteit & Snel Schakelen
Flexibiliteit & Snel SchakelenMarco Gralike
 
Hotsos 2013 - Creating Structure in Unstructured Data
Hotsos 2013 - Creating Structure in Unstructured DataHotsos 2013 - Creating Structure in Unstructured Data
Hotsos 2013 - Creating Structure in Unstructured DataMarco Gralike
 
ODTUG Webcast - Thinking Clearly about XML
ODTUG Webcast - Thinking Clearly about XMLODTUG Webcast - Thinking Clearly about XML
ODTUG Webcast - Thinking Clearly about XMLMarco Gralike
 
UKOUG 2010 (Birmingham) - XML Indexing strategies - Choosing the Right Index ...
UKOUG 2010 (Birmingham) - XML Indexing strategies - Choosing the Right Index ...UKOUG 2010 (Birmingham) - XML Indexing strategies - Choosing the Right Index ...
UKOUG 2010 (Birmingham) - XML Indexing strategies - Choosing the Right Index ...Marco Gralike
 
XML In The Real World - Use Cases For Oracle XMLDB
XML In The Real World - Use Cases For Oracle XMLDBXML In The Real World - Use Cases For Oracle XMLDB
XML In The Real World - Use Cases For Oracle XMLDBMarco Gralike
 
Oracle Developer Day, 20 October 2009, Oracle De Meern, Holland: Oracle Datab...
Oracle Developer Day, 20 October 2009, Oracle De Meern, Holland: Oracle Datab...Oracle Developer Day, 20 October 2009, Oracle De Meern, Holland: Oracle Datab...
Oracle Developer Day, 20 October 2009, Oracle De Meern, Holland: Oracle Datab...Marco Gralike
 

Plus de Marco Gralike (17)

UKOUG2018 - I Know what you did Last Summer [in my Database].pptx
UKOUG2018 - I Know what you did Last Summer [in my Database].pptxUKOUG2018 - I Know what you did Last Summer [in my Database].pptx
UKOUG2018 - I Know what you did Last Summer [in my Database].pptx
 
eProseed Oracle Open World 2016 debrief - Oracle 12.2.0.1 Database
eProseed Oracle Open World 2016 debrief - Oracle 12.2.0.1 DatabaseeProseed Oracle Open World 2016 debrief - Oracle 12.2.0.1 Database
eProseed Oracle Open World 2016 debrief - Oracle 12.2.0.1 Database
 
Oracle Database - JSON and the In-Memory Database
Oracle Database - JSON and the In-Memory DatabaseOracle Database - JSON and the In-Memory Database
Oracle Database - JSON and the In-Memory Database
 
UKOUG Tech14 - Getting Started With JSON in the Database
UKOUG Tech14 - Getting Started With JSON in the DatabaseUKOUG Tech14 - Getting Started With JSON in the Database
UKOUG Tech14 - Getting Started With JSON in the Database
 
UKOUG Tech14 - Using Database In-Memory Column Store with Complex Datatypes
UKOUG Tech14 - Using Database In-Memory Column Store with Complex DatatypesUKOUG Tech14 - Using Database In-Memory Column Store with Complex Datatypes
UKOUG Tech14 - Using Database In-Memory Column Store with Complex Datatypes
 
Ordina Oracle Open World
Ordina Oracle Open WorldOrdina Oracle Open World
Ordina Oracle Open World
 
Starting with JSON Path Expressions in Oracle 12.1.0.2
Starting with JSON Path Expressions in Oracle 12.1.0.2Starting with JSON Path Expressions in Oracle 12.1.0.2
Starting with JSON Path Expressions in Oracle 12.1.0.2
 
An introduction into Oracle VM V3.x
An introduction into Oracle VM V3.xAn introduction into Oracle VM V3.x
An introduction into Oracle VM V3.x
 
An introduction into Oracle Enterprise Manager Cloud Control 12c Release 3
An introduction into Oracle Enterprise Manager Cloud Control 12c Release 3An introduction into Oracle Enterprise Manager Cloud Control 12c Release 3
An introduction into Oracle Enterprise Manager Cloud Control 12c Release 3
 
An AMIS Overview of Oracle database 12c (12.1)
An AMIS Overview of Oracle database 12c (12.1)An AMIS Overview of Oracle database 12c (12.1)
An AMIS Overview of Oracle database 12c (12.1)
 
Flexibiliteit & Snel Schakelen
Flexibiliteit & Snel SchakelenFlexibiliteit & Snel Schakelen
Flexibiliteit & Snel Schakelen
 
Hotsos 2013 - Creating Structure in Unstructured Data
Hotsos 2013 - Creating Structure in Unstructured DataHotsos 2013 - Creating Structure in Unstructured Data
Hotsos 2013 - Creating Structure in Unstructured Data
 
ODTUG Webcast - Thinking Clearly about XML
ODTUG Webcast - Thinking Clearly about XMLODTUG Webcast - Thinking Clearly about XML
ODTUG Webcast - Thinking Clearly about XML
 
UKOUG 2010 (Birmingham) - XML Indexing strategies - Choosing the Right Index ...
UKOUG 2010 (Birmingham) - XML Indexing strategies - Choosing the Right Index ...UKOUG 2010 (Birmingham) - XML Indexing strategies - Choosing the Right Index ...
UKOUG 2010 (Birmingham) - XML Indexing strategies - Choosing the Right Index ...
 
Amis ACE
Amis ACEAmis ACE
Amis ACE
 
XML In The Real World - Use Cases For Oracle XMLDB
XML In The Real World - Use Cases For Oracle XMLDBXML In The Real World - Use Cases For Oracle XMLDB
XML In The Real World - Use Cases For Oracle XMLDB
 
Oracle Developer Day, 20 October 2009, Oracle De Meern, Holland: Oracle Datab...
Oracle Developer Day, 20 October 2009, Oracle De Meern, Holland: Oracle Datab...Oracle Developer Day, 20 October 2009, Oracle De Meern, Holland: Oracle Datab...
Oracle Developer Day, 20 October 2009, Oracle De Meern, Holland: Oracle Datab...
 

BGOUG 2012 - Drag & drop and other stuff - Using your database as a file server

  • 1. Drag, Drop and other Stuff
  • 2.
  • 3.
  • 4.
  • 6. Ever executed DBMS_XDB…? dbms_xdb.SetHTTPPort(8080) dbms_xdb.SetFTPPort(2100)
  • 7. Based on XML Standards: XPath V2 , XSLT V1 , XQuery V1 , XQuery Update (11.2.0.3) , XBRL (Extention)  XML Handling Stores, Consumes, Generates, Validates  XDB Repository HTTP(s), FTP & WebDAV XDB Repository Events  No Cost Option, Core database feature
  • 8. XDB Repository File / Folder (aka Resources)  Resource manipulation DBMS_XDB, DBMS_XDBRESOURCE  Default XDB ACL Driven Security  XDB Protocol Listener  Respository Events  Versioning  XML Schema awareness  Extending XML Schema functionality
  • 9. XDB$RESOURCE  XDBResource.xsd  XMLType Table (Schema based XML Table)  Access to XDB Repository  WebDAV, FTP, HTTP(s)  SQL, PL/SQL, NDWS  PATH_VIEW, RESOURCE_VIEW  Select, Update, Delete  UNDER_PATH, EQUALS_PATH
  • 10. Servlet ? MIME Type? Security ? XML Schema ? XDB Event ? Extention?
  • 12. Database FileServer 2 The MAX Copy a FILE to the Database
  • 13. Event MIME Event Listener Check Handler XML Protocol Server (Listener)
  • 14. Extract Move File Info Store in XDB Repository
  • 15. Extract File XDB File to Content Server Batch File to XDB “Batch” Directory
  • 17. Database FileServer 2 The MAX Copy a PICTURE to the Database
  • 18. Event MIME Event Listener Check Handler XML Protocol Server (Listener)
  • 19. Extract Store in XML Table Store in XDB Repository
  • 20. EXIF KML Display in GUI, Google Map
  • 22. Servlet ? MIME Type? Security ? XML Schema ? XDB Event ? Extention?
  • 23. XML Schema - xdbconfig.xsd  Notepad, XMLSpy, PL/SQL  Secured via WebDAV ACL (xdbadmin)  Packages (among others):  DBMS_XDB ▪ Caching, Session, Locking, Security behavior ▪ Enable HTTP/FTP, MIME, Encoding, Virtual Paths ▪ SERVLETS: NDWS, APEX, XDBUrifactory  DBMS_EPG ▪ Creation off Database Access Descriptors
  • 24. <xdbconfig> <sysconfig> <acl-max-age>15</acl-max-age> <acl-cache-size>32</acl-cache-size> <invalid-pathname-chars/> <case-sensitive>true</case-sensitive> <call-timeout>6000</call-timeout> <max-link-queue>65536</max-link-queue> <max-session-use>100</max-session-use> <persistent-sessions>false</persistent-sessions> <default-lock-timeout>3600</default-lock-timeout> <xdbcore-log-level>0</xdbcore-log-level> <resource-view-cache-size>1048576</resource…size> <xdbcore-xobmem-bound>1024</xdbcore-xobmem-bound> <xdbcore-loadableunit-size>16</xdbcore-……………size> <acl-evaluation-method>ace-order</acl-ev……method> </sysconfig> </xdbconfig>
  • 25. <servlet xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd"> <servlet-name>APEX</servlet-name> <servlet-language>PL/SQL</servlet-language> <display-name>APEX</display-name> <plsql xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd"> <database-username>ANONYMOUS</database-username> <default-page>apex</default-page> <document-table-name>wwv_flow_file_objects$</document-…- name> <document-path>docs</document-path> <document-procedure> wwv_flow_file_mgr.process_download </document-procedure> <nls-language>american_america.al32utf8</nls-language> <request-validation-function> wwv_flow_epg_include_modules.authorize </request-validation-function> </plsql> <security-role-ref xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd"> <role-name>anonymousServletRole</role-name> <role-link>anonymousServletRole</role-link> </security-role-ref> </servlet>
  • 27. Event Listener  Java Class, PL/SQL Package, Object Type ▪ E.g. a package called: “HANDLE_XDB_EVENTS”  Event Handlers  Event handlers processes a single event ▪ Package procedures called “handlePreCreate”, “handlePostCreate, “handlePreVersionControl”…  Resource Configuration File  The glue between Event Listener and Resources
  • 28. Render  UnLinkIn  UnCheckOut  Create  UnLinkFrom  VersionControl  Delete  Lock  UnLock  Update  CheckIn  LinkTo  LinkIn  CheckOut
  • 29. Create handlePreCreate handlePostCreate  Delete handlePreDelete handlePostDelete Render handleRender Lock handlePreLock … handlePostLock URL: XDBEvent XDBEventListener
  • 30.
  • 32. Servlet ? MIME Type? Security ? XML Schema ? XDB Event ? Extention?
  • 33. Glue between Event Listener and Resource  An XML File  XML Schema restricted: XDBResConfig.xsd  Contains (among others):  Events and Source (Event Listener)  Path to “itself” (/public/myResFile.xml)  Pre-conditions (XPATH on XDB$RESOURCE)  Is assigned to a Resource (File/Folder)  DBMS_RESCONFIG.AppendResConfig
  • 34. XML Schema: xdb$resource.xsd  XMLType Table  PATH_VIEW, RESOURCE_VIEW  LOB Column (with file content)  Non Schema based metadata in LOB  Info about: RESID, DisplayName, Owner, Creator, VersionID, ChecktOut, CreationDate, ModifiedDate, SizeOnDisk, ContentSize, ContentType, Comments, CharacterSet, Etc…
  • 35. Move all files created by BATCH to…  Extract Info from picture if extension GIF… <pre-condition> <existsNode> <XPath>/Resource[Creator="BATCH"]</XPath> </existsNode> </pre-condition> <pre-condition> <existsNode> <XPath>/Resource[ContentType="image/jpg"]</XPath> </existsNode> </pre-condition>
  • 37. Servlet ? MIME Type? Security ? XML Schema ? XDB Event ? Extension?
  • 38. XML Schema XML Schema XML Document in XML ? Registered ? Physical XMLType Shred XML into Update Associated ? XMLType XDB$Resource
  • 41.
  • 42.
  • 43. Camera Make and Model  Aperture, Shutter Speed, Focal Length  ISO Speed, Date Taken, Description  Geo-coding, Copyright Information  EXIF XML Schema is pre-registered with XML DB by Oracle MultiMedia  Type ordsys.ordimage extracts EXIF metadata document from a JPG image
  • 44. The following embedded image metadata formats are supported by Oracle Multimedia:  EXIF (JPEG/TIFF - JEIDA)  IPTC-IIM (JPEG/TIFF – Adobe)  XMP (GIF/JPEG/TIFF – Adobe/RDF) http://www.adobe.com http://www.w3.org/RDF Wikipedia - EXIF
  • 45. ENABLE_HIERARCHY_RESMETADATA
  • 46. Metadata defined using an XML Schema  Metadata stored in a separate table  Table includes hidden column RESID  Enables join with RESOURCE_VIEW, PATH_VIEW  Applications query and update metadata directly  Improved Indexing  Metadata deleted when resource is deleted
  • 47. Document MIME type JPG Event Listener? EXIF EXIF Extended Event Handler? XML Schema? w/ USER XSD ? Extract JPG Extract JPG Extract JPG File info EXIF info USER metadata XDB$Resource XMLType Table XMLType Table
  • 48.
  • 49. Its about Time to wrap it Up
  • 50. Servlet ? MIME Type? Security ? XML Schema ? XDB Event ? Extention?
  • 51. 1. EVENT LISTENER • Package 2. EVENT HANDLERS • Procedures in “Event Listener” 3. RESOURCE CONFIGURATION FILE • XML File
  • 52. • General File Stuff turns out to be XML then… 4. XML SCHEMA REGISTRATION • dbms_xmlschema.register_schema 5. EXTRA USER DEFINED METADATA NEEDED • dbms_xmlschema.enable_hierarchy_resm etadata
  • 53. • XML DB - Beyond the Database, Fileserver Realm • Imagination is your limit, e.g.: - Extending “file” server with Text Search - Extending “file” server with ETL functionality • Extra options: database / fileserver interfacing • Based on standards • No cost option / all database versions
  • 54. URL: OTN XMLDB Sample Code  XFILES Version 5  Introduction to Oracle XML DB Repository Events  Oracle XML DB-based Mashup with Google Earth  Oracle XML DB Repository Features  XDB Utilities and more…
  • 55. Blog posts about:  Setting up logging in the XDB Repository  Package template HANDLE_XDB_EVENTS  Concepts & Howto’s for XDB Repository  Automatically shred content out of Windows Office (docx) into table columns  References to XLSX examples of Marc Bleron and Anton Scheffers