Skip to content

siddhi-store-rdbms

The siddhi-store-rdbms extension is an extension to Siddhi that can be used to persist events to an RDBMS instance of the user's choice. Find some useful links below:

Latest API Docs

Latest API Docs is 4.0.53.

Prerequisites

  • A RDBMS server instance should be started.
  • The user should have the necessary privileges and access rights to connect to the RDBMS data store of choice.

How to use

Using the extension in WSO2 Stream Processor

  • You can use this extension in the latest WSO2 Stream Processor that is a part of WSO2 Analytics offering, with editor, debugger and simulation support.

  • This extension is shipped by default with WSO2 Stream Processor, if you wish to use an alternative version of this extension you can replace the component jar that can be found in the <STREAM_PROCESSOR_HOME>/lib directory.

Using the extension as a java library

  • This extension can be added as a maven dependency along with other Siddhi dependencies to your project.
     <dependency>
        <groupId>org.wso2.extension.siddhi.store.rdbms</groupId>
        <artifactId>siddhi-store-rdbms</artifactId>
        <version>x.x.x</version>
     </dependency>

Note : rdbms:query() and rdbms:cud() function will work only in WSO2 Stream Processor.

Running Integration tests in docker containers(Optional)

The RDBMS functionality are tested with the docker base integration test framework, except the H2 default embedded database is not uses external docker container. The test framework initialize the docker container for each database according to the given profile before execute the test suit.

Start integration tests

  1. Install and run docker in daemon mode.

    • Installing docker on Linux,
      Note:
      These commands retrieve content from get.docker.com web in a quiet output-document mode and install.Then we need to stop docker service as it needs to restart docker in daemon mode. After that, we need to export docker daemon host.

      wget -qO- https://get.docker.com/ | sh
      sudo service dockerd stop
      export DOCKER_HOST=tcp://172.17.0.1:4326
      docker daemon -H tcp://172.17.0.1:4326
      
    • On installing docker on Mac, see Get started with Docker for Mac

    • On installing docker on Windows, see Get started with Docker for Windows

  2. To run the integration test, navigate to the siddhi-store-rdbms/ directory and issue the following commands.

    • H2 default:

      mvn clean install
      

      Note : h2 is the default activated profile as it is not used docker.

    • MySQL 5.7:

      mvn verify -P local-mysql -f /component/pom.xml -Dskip.surefire.test=true -Ddocker.removeVolumes=true
      
    • Postgres 9.6:

       mvn verify -P local-postgres -f /component/pom.xml -Dskip.surefire.test=true -Ddocker.removeVolumes=true
      
    • MSSQL CTP 2.0:

      mvn verify -P local-mssql -f /component/pom.xml -Dskip.surefire.test=true
      
    • Oracle 11.2.0.2 Express Edition:

       mvn verify -P local-oracle -f /component/pom.xml -Dskip.surefire.test=true
      
  3. To run the integration test with DB2, issue the following commands:

    • Download DB2 driver version 4.19.26 db2jcc4.jar

    • To install the JAR file as a Maven plugin, issue the following command:

       mvn install:install-file -Dfile=/tmp/db2jcc4.jar -DgroupId=com.ibm.db2 -DartifactId=db2jcc -Dversion=4.19.26 -Dpackaging=jar
      
    • Uncomment the following test dependency in the /component/pom.xml file as shown below:

       <dependency>
         <groupId>com.ibm.db2</groupId>
         <artifactId>db2jcc</artifactId>
         <scope>test</scope>
         <version>4.19.26</version>
       </dependency>
      
    • To run the integration test, navigate to siddhi-store-rdbms/ directory and issue the following commands:

       mvn verify -P local-db2 -f /component/pom.xml -Dskip.surefire.test=true
      

Start integration tests in debug mode

mvn -P local-mysql -Dmaven.failsafe.debug verify
Note: local-mysql is the profile. Use other profiles accordingly.

Jenkins Build Status


Branch Build Status
master Build Status

Features

  • cud (Stream Processor)

    This function performs SQL CUD (INSERT, UPDATE, DELETE) queries on WSO2 datasources.
    Note: This function is only available when running Siddhi with WSO2 SP.

  • query (Stream Processor)

    This function performs SQL retrieval queries on WSO2 datasources.
    Note: This function is only available when running Siddhi with WSO2 SP.

  • rdbms (Store)

    This extension assigns data sources and connection instructions to event tables. It also implements read-write operations on connected datasources.

How to Contribute

Contact us

Support

  • We are committed to ensuring support for this extension in production. Our unique approach ensures that all support leverages our open development methodology and is provided by the very same engineers who build the technology.

  • For more details and to take advantage of this unique opportunity contact us via http://wso2.com/support/.