Portfolio Manager demo using Spark

You run scripts that create a portfolio of stocks.

The Portfolio Manager demo runs an application that is based on a financial use case. You run scripts that create a portfolio of stocks. On the online transaction processing (OLTP) side, each portfolio contains a list of stocks, the number of shares purchased, and the purchase price. The demo’s pricer utility simulates real-time stock data. Each portfolio gets updated based on its overall value and the percentage of gain or loss compared to the purchase price. The utility also generates 100 days of historical market data, which is the end-of-day price for each stock. On the DSE online analytical processing (OLAP) side, a Spark job calculates the greatest historical 10 day loss period for each portfolio, which is an indicator of the risk associated with a portfolio. This information is then fed back into the real-time application to allow customers to better gauge their potential losses.

DataStax demos do not work with either LDAP or internal authorization (username/password) enabled.

To run the demo, do the following:

  1. Install DataStax Enterprise (DSE) on a node.

    • Tarball installation: The Portfolio Manager demo is installed as part of the normal installation.

    • Package installation: You must include the demos package in your installation commands.

    Default network interface localhost (127.0.0.1) is required for the demo.

  2. Start DSE as a DSE Analytics node.

  3. Go to the Portfolio Manager demo directory.

    The default location of the Portfolio Manager demo depends on the type of installation:

    • Package installations: /usr/share/dse/demos/portfolio_manager

    • Tarball installations: INSTALL_DIRECTORY/demos/portfolio_manager

    The Scala and Java source code for the demo are in the src directory.

  4. Run the pricer utility to generate stock data for the application:

    bin/pricer -o INSERT_PRICES
    bin/pricer -o UPDATE_PORTFOLIOS
    bin/pricer -o INSERT_HISTORICAL_PRICES -n 100

    The utility takes several minutes to run.

    For help, run bin/pricer --help.

  5. Start the web service:

    cd website
    sudo ./start
  6. Open a browser and go to http://localhost:8983/portfolio.

    The real-time Portfolio Manager demo application is displayed.

    ana_portfolio_demo1
    Ana portfolio demo 1
  7. Open another terminal.

  8. Run the Spark SQL job in the 10-day-loss.q file.

    dse spark-sql -f 10-day-loss.q
  9. Run the equivalent Spark Scala job in the 10-day-loss.sh script.

    The Spark application takes several minutes to run.

    ./10-day-loss.sh
  10. Run the equivalent Spark Java job in the 10-day-loss-java.sh script.

    ./10-day-loss-java.sh
  11. After the job completes, refresh the Portfolio Manager web page.

    The results of the Largest Historical 10 day Loss for each portfolio are displayed.

    ana_historical-loss
    Ana historical loss

Was this helpful?

Give Feedback

How can we improve the documentation?

© Copyright IBM Corporation 2026 | Privacy policy | Terms of use Manage Privacy Choices

Apache, Apache Cassandra, Cassandra, Apache Tomcat, Tomcat, Apache Lucene, Apache Solr, Apache Hadoop, Hadoop, Apache Pulsar, Pulsar, Apache Spark, Spark, Apache TinkerPop, TinkerPop, Apache Kafka and Kafka are either registered trademarks or trademarks of the Apache Software Foundation or its subsidiaries in Canada, the United States and/or other countries. Kubernetes is the registered trademark of the Linux Foundation.

General Inquiries: Contact IBM