Databricks

Supports:

  • ✅ Models
  • ✅ Model sync destination
  • ✅ Bulk sync source
  • ✅ Bulk sync destination

Connection

Configuration

NameTypeDescriptionRequired
cloud_providerstringCloud provider (destination support only)

Accepted values: aws , azure
false
databricks_auth_modestringAuthentication method

Accepted values: access_token , oauth_service_principal
true
enable_delta_uniformbooleanEnable Delta UniForm tablesfalse
enforce_query_limitbooleanLimit concurrent queries false
http_pathstringHTTP pathtrue
portintegerPorttrue
server_hostnamestringServer hostnametrue
sshbooleanConnect over SSH tunnel false
unity_catalog_enabledbooleanUnity Catalog enabledfalse
use_bulk_sync_staging_schemabooleanUse custom bulk sync staging schema false

databricks_auth_mode

When databricks_auth_mode is access_token
NameTypeDescriptionRequired
access_tokenstringAccess tokentrue
When databricks_auth_mode is oauth_service_principal
NameTypeDescriptionRequired
service_principal_idstringService principal IDtrue
service_principal_secretstringService principal secrettrue

cloud_provider

When cloud_provider is aws
NameTypeDescriptionRequired
auth_modestringAWS authentication method

How to authenticate with AWS. Defaults to Access Key and Secret. Accepted values: access_key_and_secret, iam_role
true
s3_bucket_namestringS3 bucket name (destinations only)

Name of bucket used for staging data load files
false
s3_bucket_regionstringS3 bucket region (destinations only)

Region of bucket
false
set_retention_propertiesbooleanConfigure data retention for tablesfalse
When cloud_provider is azure
NameTypeDescriptionRequired
azure_access_keystringStorage account access key (destination support only)

The access key associated with this storage account
false
azure_account_namestringStorage account name (destination support only)

The account name of the storage account
false
container_namestringStorage container name (destination support only)

The container which we will stage files in
false

use_bulk_sync_staging_schema

When use_bulk_sync_staging_schema is true
NameTypeDescriptionRequired
bulk_sync_staging_schemastringStaging schema nametrue

enforce_query_limit

When enforce_query_limit is true
NameTypeDescriptionRequired
concurrent_queriesintegerConcurrent query limitfalse

ssh

When ssh is true
NameTypeDescriptionRequired
ssh_blob_storagebooleanUse SSH for cloud storage bucketfalse
ssh_hoststringSSH hosttrue
ssh_portintegerSSH porttrue
ssh_private_keystringPrivate keytrue
ssh_userstringSSH usertrue

set_retention_properties

When set_retention_properties is true
NameTypeDescriptionRequired
deleted_file_retention_daysintegerDeleted file retentionfalse
log_file_retention_daysintegerLog retentionfalse

auth_mode

When auth_mode is access_key_and_secret
NameTypeDescriptionRequired
aws_access_key_idstringAWS access key ID (destinations only)

See https://docs.polytomic.com/docs/databricks-connections#writing-to-databricks
true
aws_secret_access_keystringAWS secret access key (destinations only)true
When auth_mode is iam_role
NameTypeDescriptionRequired
iam_role_arnstringIAM role ARNtrue
storage_credential_namestringStorage credential namefalse

Example

{
"name": "Databricks connection",
"type": "databricks",
"configuration": {
"access_token": "isoz8af6zvp8067gu68gvrp0oftevn",
"auth_mode": "access_key_and_secret",
"aws_access_key_id": "AKIAIOSFODNN7EXAMPLE",
"aws_secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"cloud_provider": "aws",
"databricks_auth_mode": "access_token",
"enable_delta_uniform": false,
"enforce_query_limit": false,
"http_path": "/sql",
"port": 443,
"s3_bucket_name": "s3://polytomic-databricks-results/customer-dataset",
"s3_bucket_region": "us-east-1",
"server_hostname": "dbc-1234dsafas-d0001.cloud.databricks.com",
"set_retention_properties": false,
"ssh": false,
"unity_catalog_enabled": false,
"use_bulk_sync_staging_schema": false
}
}

Read-only properties

NameTypeDescriptionRequired

auth_mode

When auth_mode is access_key_and_secret
NameTypeDescriptionRequired
aws_userstringUser ARN (destinations only)false
When auth_mode is iam_role
NameTypeDescriptionRequired
external_idstringExternal ID for the IAM rolefalse

Model Sync

Source

Configuration

NameTypeDescriptionRequired
catalogstringCatalogfalse
querystringQueryfalse
schemastringSchemafalse
tablestringTablefalse

Example

{
...
"configuration": {
"catalog": "samples",
"query": "SELECT * FROM samples.nyctaxi.trips",
"schema": "nyctaxi",
"table": "trips"
}
}

Target

Databricks connections may be used as the destination in a model sync.

All targets

Configuration
NameTypeDescriptionRequired
created_columnstring’Created at’ timestamp columnfalse
preserve_table_on_resyncbooleanPreserve destination table when resyncingfalse
updated_columnstring’Updated at’ timestamp columnfalse
write_record_timestampsbooleanWrite row timestamp metadatafalse
Example
{
...
"target": {
"configuration": {
"created_column": "",
"preserve_table_on_resync": false,
"updated_column": "",
"write_record_timestamps": false
}
}
}

Target creation

Databricks connections may be used to create a new target for a model sync. The following parameters are required to create a new target:

NAMEDESCRIPTIONENUM
nameTable namefalse

Bulk Sync

Source

Databricks connections may be used as a bulk sync source. No additional configuration options are required.

Destination

Configuration

NameTypeDescriptionRequired
advancedobjectfalse
catalogstringCatalogfalse
external_location_namestringExternal locationfalse
mirror_schemasbooleanMirror schemasfalse
schemastringOutput schemafalse

Example

{
...
"destination_configuration": {
"advanced": {
"deleted_file_retention_days": 0,
"empty_strings_null": false,
"enable_change_data_feed": false,
"hard_deletes": false,
"initial_execution": "",
"log_file_retention_days": 0,
"set_retention_properties": false,
"table_prefix": "",
"truncate_existing": false
},
"catalog": "samples",
"external_location_name": "",
"mirror_schemas": false,
"schema": "nyctaxi"
}
}

Type handling

Destination types

POLYTOMIC TYPEDATABRICKS TYPE
array<>ARRAY<>
bigintBIGINT
booleanBOOLEAN
dateDATE
datetimeTIMESTAMP
decimal(precision, scale)DECIMAL(precision,scale)
doubleDOUBLE
intINT
jsonSTRING
jsonarraySTRING
numberDECIMAL(38,18)
object{}STRING
singleFLOAT
smallintSMALLINT
stringSTRING
timeTIMESTAMP

Source types

DATABRICKS TYPEPOLYTOMIC TYPE
ARRAY<>array<>
BIGINTbigint
DATEdate
DECIMAL(precision, scale)decimal(precision, scale)
DOUBLEdouble
FLOATsingle
INTint
INTERVALstring
MAP<>object{}
SMALLINTsmallint
STRUCT<>object{}
TIMESTAMPdatetime_tz
TIMESTAMP_NTZdatetime
TINYINTsmallint
VARCHARstring