In this tutorial I will provide a step-by-step procedure for deploying OmniSci Enterprise Edition software on Google Cloud Platform (GCP). These instructions assume that you have a Google Cloud Platform account. Check this instruction if you don’t have a GCP account.
Creating a Virtual Machine
On the GCP Console, select Compute Engine and select an existing project or create a new project.
Select Create Instance for creating the OmniSci virtual machine (VM).
Enter a name for the VM, and select Customize under Machine Type to choose the flavor of the compute platform which will also impact the initial selection for the region & zone where the VM can be deployed.
This is a minimalistic configuration for running OmniSci, you can refer the Hardware Configuration Reference Guide for guidance on your production deployment. Change the Number of GPUs to 1 and from the GPU Type drop down menu select NVIDIA Tesla P4. As the P4 GPUs are available in us-west2 region and us-west2-c zone, make the changes accordingly. Also, increase the number of CPU cores to 4 and the memory to 15 GB.
Change the Boot disk, select CenOS7 (x86_64) and set the size of the boot disk to 20GB. The supported operating systems for OmniSci are CentOS/RHEL 7.0 or later and Ubuntu 16.04 or later.
Enable default access, allow HTTP/HTTPS traffic and create the VM.
Go to the Firewall rules page in the Google Cloud Platform Console. Click Create a firewall rule to allow access to the OmniSci Immerse (browser) and API ports. The caption below shows the firewall settings to access OmniSci, for further details read GCP Firewall settings.
Installing OmniSci Enterprise
After creating the virtual machine, it takes a couple of minutes for the VM to become available indicated by the green icon. You can access the VM using the external IP address associated with the network interface (nic0).
You can SSH in a browser window using the SSH drop down menu.
The document CentOS/RHEL & EE GPU installation with Yum has detailed instruction on installing OmniSci Enterprise using yum. Here is a summary of all the commands for the installation.
sudo yum update
sudo yum install java-1.8.0-openjdk-headless
sudo yum install epel-release
sudo useradd -U -m omnisci
sudo yum install kernel-devel-$(uname -r) kernel-headers$(uname -r)
Install Nvidia CUDA drivers.
sudo yum install wget
sudo rpm --install cuda-repo-rhel7-10-1-local-10.1.105-418.39-1.0-1.x86_64.rpm
sudo yum clean expire-cache
sudo yum install cuda-drivers
Run nvidia-smi to verify the drivers are installed correctly and the GPU is recognized.
Firewall settings on Centos.
sudo firewall-cmd --zone=public --add-port=6273/tcp --permanent
sudo firewall-cmd --reload
Modify the yum repository file to include OmniSci specification.
sudo vi /etc/yum.repos.d/CentOS-Sources.repo
name='omnisci ee - cuda'
sudo yum install omnisci
# User specific aliases and functions
Run the script to create the database data directory in $OMNISCI_STORAGE, the subdirectories for catalogs, data, export and log will be created.
Start the OmniSci daemons and also enable it at system startup.
sudo systemctl start omnisci_server
sudo systemctl start omnisci_web_server
sudo systemctl enable omnisci_server
sudo systemctl enable omnisci_web_server
With a web browser connect to Immerse (OmniSci visual platform) using the external IP address of the VM and port 6273 (http://<VM External IP>:6273). Copy your license key from the registration email message into the text box and press Apply to validate your OmniSci instance. If you don’t have a license key then register for a 30-day trial.
Load and Query Sample Dataset
Load the sample flights dataset with 7 million records (option #1) into the database.
Connect to OmniSci Core with the SQL command line utility (default password is HyperInteractive) and run a query against the newly created flights_2008_7M table.
omnisql> SELECT origin_city AS "Origin", dest_city AS "Destination", AVG(airtime) AS "Average Airtime" FROM flights_2008_7M WHERE distance < 175 GROUP BY origin_city, dest_city;
Go back to the web browser Immerse session, under DATA MANAGER you will see the flights_2008_7M table we just created.
Using DASHBOARDS create a new choropleth chart that renders a polygon corresponding to each destination state and colors the states based on the average flight arrival delay time into an airport in that state. The dest_state column in flights table is joined with the abbr column of omnisci_states table (preloaded by default) thus providing the omnisci_geo (POLYGONS) column from omnisci_states.
Make sure to APPLY and SAVE the chart, and you can create other charts types in the dashboard and explore the dataset using the Immerse Crossfilter feature.
You can visit the OmniSci community forum to learn more and share your experience.
OmniSci is also available on Google Cloud Platform Marketplace, and offers three instance types based on Nvidia GPUs K80, P100 & V100.