ICE Fixed Income Accelerator Quickstart Guide

This page provides a quickstart guide for the ICE Fixed Income Accelerator.

The ICE Fixed Income Accelerator is an FSI Accelerator package which comes with ready made Pipelines, Views, and Schemas out of the box.

Prerequisites

This quickstart guide is not intended to be a comprehensive KDB Insights Install Guide, for more information regarding KDB Insights installation refer to the kdb Insights Enterprise documentation.

This guide assumes the following prerequisites:

  • KDB Insights Enterprise installed

    • Credentials obtained and configured: Insights Users: GUI User API Client S3/blob storage secret

    • KX Downloads Portal bearer token to download packages/charts (represented by BEARER in this guide).

    • ICE Credentials: ICE Consolidated Feed Username & Password ICE Consolidated Feed IP Address & Port Number

  • Tools Used: Access to *nix command-line KDB Insights CLI - kxi Kubernetes tools: kubectl K9s Helm installed and logged in to nexus VSCode plugins: KX kdb Jupyter ICE data drops to your S3 bucket/blob storage set up for: Ratings data Instrument data

Quickstart guide

This guide details the following steps to get you started with the ICE Fixed Income Accelerator:

Download the packages

Download the required FSI packages from the KX download portal:

Shell

Copy
# Download fsi-lib - the Core FSI Library
curl -s --fail-with-body -D /dev/stderr --oauth2-bearer ${BEARER} -L -OJ https://portal.dl.kx.com/assets/raw/kxi-accelerators/fsi/fsi-lib/packages/1.3.0/fsi-lib-1.3.0.kxi

# Download fsi-app-ice-fi - the ICE Fixed Income Accelerator
curl -s --fail-with-body -D /dev/stderr --oauth2-bearer ${BEARER} -L -OJ https://portal.dl.kx.com/assets/raw/kxi-accelerators/fsi/fsi-ice-fi/packages/1.3.0/fsi-app-ice-fi-1.3.0.kxi

Push the packages

Push the packages to kdb Insights Enterprise and deploy the fsi-ice-fixed-income-assembly, as follows:

  • Install the packages

Shell

Copy
kxi pm push fsi-lib-1.3.0.kxi
kxi pm push fsi-app-ice-fi-1.3.0.kxi
                    
  • Deploy the assembly:

Shell

Copy
kxi pm deploy fsi-app-ice-fi --db fsi-core-db
                    

Deploy the pipelines

If all the files are in the same s3 region, you can set the environment variable locally to be re-used in your commands. To do that, run the following command:

Shell

Copy
export MY_S3_REGION='us-east-2'
                    

Then, deploy the pipelines for:

Reference data

To deploy the reference data for icecorereference and icecrossreference pipelines, run the following commands:

Shell

Copy
# For icecorereference
kxi pm deploy fsi-app-ice-fi --pipeline icecorereference --env icecorereference:FSI_FILEPATH=':s3://my-bucket/myreferencefile.csv' --env icecorereference:FSI_REGION=$MY_S3_REGION


#For icecrossreference
kxi pm deploy fsi-app-ice-fi --pipeline icecrossreference --env icecrossreference:FSI_FILEPATH=':s3://my-bucket/myreferencefile.csv' --env icecrossreference:FSI_REGION=$MY_S3_REGION

                    

Ratings data

The iceratings pipeline uses the ISIN number ingested by the icecrossreference pipeline to join the APEX GSM data to the existing reference data. The ISIN numbers should already be populated in the Instrument table before the iceratings pipeline is run.

Shell

Copy
kxi pm deploy fsi-app-ice-fi --pipeline iceratings --env iceratings:FSI_FILEPATH=':s3://my-bucket/myratings.xml' --env iceratings:FSI_REGION=$MY_S3_REGION
                    

Realtime pipelines

Deploy the realtime pipelines ready to ingest the feed data.

These pipelines do not require environment variables and can simply be deployed as follows:

Shell

Copy
kxi pm deploy fsi-app-ice-fi --pipeline icerealtimefi
                    

Configure and deploy the feed handler

Unpack the accelerator package to get the feed handler configuration file template:

Shell

Copy
kxi package unpack fsi-app-ice-fi-1.3.0.kxi
                    

Update the example ICE Feedhandler Config File to include your credentials and preferences.

Note

The config file contains a lot of commonly pre-populated default values.

Any values that are expected to require updating on a per-deployment base have been marked with a TODO comment, for example:

  • Connection Details

  • Subscription List

yaml

Copy
vi fsi-app-ice-fi/config/feed/ice-fi-feed-values.yaml
                    

Add the KX helm repository from the KX downloads portal.

Information

For information on how to set up your downloads bearer token, refer to https://portal.dl.kx.com/auth/token

Shell

Copy
helm repo add kx https://portal.dl.kx.com/assets/helm --username <INSERT_EMAIL> --password <INSERT_BEARER_TOKEN>

Download the ICE Feedhandler from helm:

Shell

Copy
helm fetch kx/rt-ice-pub --version 1.0.0 --untar

Add your ICE Username & Password as a kubernetes secret:

Note

The secret name, in this case my-ice-secrets, should match the ice.secrets.name value in the example config file you previously edited - fsi-app-ice-fi/config/feed/ice-fi-feed-values.yaml.

Shell

Copy
kubectl create secret generic my-ice-secrets --from-literal=my-username=<INSERT_ICE_USERNAME> --from-literal=my-password=<INSERT_ICE_PASSWORD> -n <YOUR_NAMESPACE>

To create a secret for the Helm chart to pull the feed image, use the following command:

Shell

Copy
kubectl create secret docker-registry "docker-pull" --docker-server=portal.dl.kx.com --docker-username=<INSERT_EMAIL> --docker-password=<INSERT_BEARER_TOKEN> --docker-email=<INSERT_EMAIL> -n <INSERT_YOUR_NAMESPACE>

Install the ICE Feedhandler Helm Chart using your updated config file:

Shell

Copy
helm install rt-ice-pub ./rt-ice-pub -f fsi-app-ice-fi/config/feed/ice-fi-feed-values.yaml -n <INSERT_YOUR_NAMESPACE>

Verify the ICE FH is running using kubectl:

Shell

Copy
kubectl describe pod rt-ice-pub-0

Expected Output from above command on successful install:

Shell

Copy
Events:
  Type    Reason                  Age   From                     Message
  ----    ------                  ----  ----                     -------
  Normal  Created                 24s   kubelet                  Created container rt-ice-pub
  Normal  Started                 24s   kubelet                  Started container rt-ice-pub

Now that you have reference data ingested from your cloud storage and the ICE Feedhandler running you should be able to see data flowing in using the bond screener View. The historical data is not populated yet.

To populate the historical data there must be bar data for the relevant period. A bar generation pipeline is included to generate this. For more detail on historic data and bar generation refer to the Historic Fixed Income Data documentation.