API Access and Teams Functionality for OmniSci Cloud Have Arrived


#1

We are pleased to announce that OmniSci Cloud has two new features:

API Access - users can build custom applications and automate data ingestion

Teams - admins can invite other users and assign them a role

Read about these features in more detail in this blog post by JP Harvey:

And of course, you can try out OmniSci Cloud for free.

Next week, @veda and myself will put out a post with more detailed examples of the API in action. Stay tuned!


#2

One of the cool features in this OmniSci cloud release is the ability to wake up an idle instance programmatically. If your instance is asleep, it will wake upon receiving an API call. However, it may take up to 20 seconds to do so, and in the meantime, you will see the following exception:
Error: OmniSciCloud: OmniSci Core not ready, try again in 20s

To deal with this delay, you can catch the exception with the following code sample that uses Pymapd library:

import time
from pymapd import connect

# Establish connection to MapD Cloud Instance
def connect_to_mapd(str_user, str_password, str_host, str_dbname):
 try:
   connection = connect(user=str_user, password=str_password, host=str_host, dbname=str_dbname, port=443, protocol='https')
 except Exception as ex:
   template = "An exception of type {0} occurred. Arguments:\n{1!r}"
   message = template.format(type(ex).__name__, ex.args)
   print(message)
   if 'OmniSci Core not ready, try again' in message:
     print("Set connection to RETRY!")
     connection = "RETRY"
   else:
     print("Set connection to ERROR!")
     connection = "ERROR"    

 return connection

# Application code for connecting to OmniSci cloud instance with a maximum of 3 tries
for i in range(3):
 connection = connect_to_mapd("API Key Name", "API Key Secret", "use2-api.mapd.cloud", "mapd")
 if connection == "RETRY":
   # recommended time to sleep is 20 seconds before instance wakes up
   time.sleep(20)
   continue
 
 print(connection)
 break

#3

Feels like we should add this to pymapd directly, since OmniSci Cloud isn’t going away :slight_smile: