importpandasaspdimportrequestsimporttimefrompandas.io.jsonimportjson_normalizeimportjsonimportmy_creds# datarobot parametersAPI_KEY=my_creds.API_KEYUSERNAME=my_creds.USERNAMEDEPLOYMENT_ID=my_creds.DEPLOYMENT_IDDATAROBOT_KEY=my_creds.DATAROBOT_KEY# replace with the load balancer for your prediction instance(s)DR_PREDICTION_HOST=my_creds.DR_PREDICTION_HOSTDR_APP_HOST='https://app.datarobot.com'DR_MODELING_HEADERS={'Content-Type':'application/json','Authorization':'token %s'%API_KEY}headers={'Content-Type':'text/plain; charset=UTF-8','datarobot-key':DATAROBOT_KEY}url='{dr_prediction_host}/predApi/v1.0/deployments/{deployment_id}/'\
'predictions'.format(dr_prediction_host=DR_PREDICTION_HOST,deployment_id=DEPLOYMENT_ID)# snowflake parametersSNOW_USER=my_creds.SNOW_USERSNOW_PASS=my_creds.SNOW_PASS
""" get a data connection by name, return None if not found"""defdr_get_data_connection(name):data_connection_id=Noneresponse=requests.get(DR_APP_HOST+'/api/v2/externalDataStores/',headers=DR_MODELING_HEADERS,)ifresponse.status_code==200:df=pd.io.json.json_normalize(response.json()['data'])[['id','canonicalName']]ifdf[df['canonicalName']==name]['id'].size>0:data_connection_id=df[df['canonicalName']==name]['id'].iloc[0]else:print('Request failed; http error {code}: {content}'.format(code=response.status_code,content=response.content))returndata_connection_iddata_connection_id=dr_get_data_connection('snow_3_12_0_titanic')
# get a saved credential set, return None if not founddefdr_get_catalog_credentials(name,cred_type):ifcred_typenotin['basic','s3']:print('credentials type must be: basic, s3 - value passed was {ct}'.format(ct=cred_type))returnNonecredentials_id=Noneresponse=requests.get(DR_APP_HOST+'/api/v2/credentials/',headers=DR_MODELING_HEADERS,)ifresponse.status_code==200:df=pd.io.json.json_normalize(response.json()['data'])[['credentialId','name','credentialType']]ifdf[(df['name']==name)&(df['credentialType']==cred_type)]['credentialId'].size>0:credentials_id=df[(df['name']==name)&(df['credentialType']==cred_type)]['credentialId'].iloc[0]else:print('Request failed; http error {code}: {content}'.format(code=response.status_code,content=response.content))returncredentials_id# create credentials setdefdr_create_catalog_credentials(name,cred_type,user,password,token=None):ifcred_typenotin['basic','s3']:print('credentials type must be: basic, s3 - value passed was {ct}'.format(ct=cred_type))returnNoneifcred_type=='basic':json={"credentialType":cred_type,"user":user,"password":password,"name":name}elifcred_type=='s3'andtoken!=None:json={"credentialType":cred_type,"awsAccessKeyId":user,"awsSecretAccessKey":password,"awsSessionToken":token,"name":name}elifcred_type=='s3'andtoken==None:json={"credentialType":cred_type,"awsAccessKeyId":user,"awsSecretAccessKey":password,"name":name}response=requests.post(url=DR_APP_HOST+'/api/v2/credentials/',headers=DR_MODELING_HEADERS,json=json)ifresponse.status_code==201:returnresponse.json()['credentialId']else:print('Request failed; http error {code}: {content}'.format(code=response.status_code,content=response.content))# get or create a credential setdefdr_get_or_create_catalog_credentials(name,cred_type,user,password,token=None):cred_id=dr_get_catalog_credentials(name,cred_type)ifcred_id==None:returndr_create_catalog_credentials(name,cred_type,user,password,token=None)else:returncred_idcredentials_id=dr_get_or_create_catalog_credentials('snow_community_credentials','basic',my_creds.SNOW_USER,my_creds.SNOW_PASS)
importpandasaspdimportrequestsimporttimefrompandas.io.jsonimportjson_normalizeimportsnowflake.connectorimportmy_creds# datarobot parametersAPI_KEY=my_creds.API_KEYUSERNAME=my_creds.USERNAMEDEPLOYMENT_ID=my_creds.DEPLOYMENT_IDDATAROBOT_KEY=my_creds.DATAROBOT_KEY# replace with the load balancer for your prediction instance(s)DR_PREDICTION_HOST=my_creds.DR_PREDICTION_HOSTDR_APP_HOST='https://app.datarobot.com'DR_MODELING_HEADERS={'Content-Type':'application/json','Authorization':'token %s'%API_KEY}# snowflake parametersSNOW_ACCOUNT=my_creds.SNOW_ACCOUNTSNOW_USER=my_creds.SNOW_USERSNOW_PASS=my_creds.SNOW_PASSSNOW_DB='TITANIC'SNOW_SCHEMA='PUBLIC'# ETL parametersJOB_NAME='pass_scoring'
# get a saved credential set, return None if not founddefdr_get_catalog_credentials(name,cred_type):ifcred_typenotin['basic','s3']:print('credentials type must be: basic, s3 - value passed was {ct}'.format(ct=cred_type))returnNonecredentials_id=Noneresponse=requests.get(DR_APP_HOST+'/api/v2/credentials/',headers=DR_MODELING_HEADERS,)ifresponse.status_code==200:df=pd.io.json.json_normalize(response.json()['data'])[['credentialId','name','credentialType']]ifdf[(df['name']==name)&(df['credentialType']==cred_type)]['credentialId'].size>0:credentials_id=df[(df['name']==name)&(df['credentialType']==cred_type)]['credentialId'].iloc[0]else:print('Request failed; http error {code}: {content}'.format(code=response.status_code,content=response.content))returncredentials_id# create credentials setdefdr_create_catalog_credentials(name,cred_type,user,password,token=None):ifcred_typenotin['basic','s3']:print('credentials type must be: basic, s3 - value passed was {ct}'.format(ct=cred_type))returnNoneifcred_type=='basic':json={"credentialType":cred_type,"user":user,"password":password,"name":name}elifcred_type=='s3'andtoken!=None:json={"credentialType":cred_type,"awsAccessKeyId":user,"awsSecretAccessKey":password,"awsSessionToken":token,"name":name}elifcred_type=='s3'andtoken==None:json={"credentialType":cred_type,"awsAccessKeyId":user,"awsSecretAccessKey":password,"name":name}response=requests.post(url=DR_APP_HOST+'/api/v2/credentials/',headers=DR_MODELING_HEADERS,json=json)ifresponse.status_code==201:returnresponse.json()['credentialId']else:print('Request failed; http error {code}: {content}'.format(code=response.status_code,content=response.content))# get or create a credential setdefdr_get_or_create_catalog_credentials(name,cred_type,user,password,token=None):cred_id=dr_get_catalog_credentials(name,cred_type)ifcred_id==None:returndr_create_catalog_credentials(name,cred_type,user,password,token=None)else:returncred_idcredentials_id=dr_get_or_create_catalog_credentials('s3_community','s3',my_creds.SNOW_USER,my_creds.SNOW_PASS)