Skip to navigation

Supports:

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

Connection

Configuration

NameTypeDescriptionRequired
cloud_providerstringCloud provider (destination support only)

Accepted values: aws ↓, azure ↓, gcp ↓
optional
databasestringDatabase (optional)optional
hostnamestringHostnamerequired
passwordstringPasswordoptional
portintegerPortrequired
skip_verifybooleanSkip certificate verificationoptional
sshbooleanConnect over SSH tunnel ↓optional
sslbooleanUse SSLoptional
usernamestringUsernamerequired

cloud_provider = aws

NameTypeDescriptionRequired
auth_modestringAWS authentication method

How to authenticate with AWS for the staging bucket. Accepted values: access_key_and_secret ↓, iam_role ↓
required
s3_bucket_namestringS3 bucket name (destinations only)

Name of bucket used for staging data load files
required
s3_bucket_regionstringS3 bucket region (destinations only)required
{
"name": "ClickHouse connection",
"type": "clickhouse",
"configuration": {
"auth_mode": "access_key_and_secret",
"aws_access_key_id": "AKIAIOSFODNN7EXAMPLE",
"aws_secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"cloud_provider": "aws",
"database": "default",
"hostname": "clickhouse.example.com",
"password": "",
"port": 9440,
"s3_bucket_name": "my-bucket",
"s3_bucket_region": "us-east-1",
"skip_verify": true,
"ssh": false,
"ssl": true,
"username": "default"
}
}
auth_mode

When auth_mode is access_key_and_secret:

NameTypeDescriptionRequired
aws_access_key_idstringAWS access key ID (destinations only)required
aws_secret_access_keystringAWS secret access key (destinations only)required
Read-only propertyTypeDescription
aws_userstringUser ARN (destinations only)

When auth_mode is iam_role:

NameTypeDescriptionRequired
iam_role_arnstringIAM role ARNrequired
Read-only propertyTypeDescription
external_idstringExternal ID for the IAM role
{
"name": "ClickHouse connection",
"type": "clickhouse",
"configuration": {
"auth_mode": "iam_role",
"cloud_provider": "aws",
"database": "default",
"hostname": "clickhouse.example.com",
"iam_role_arn": "",
"password": "",
"port": 9440,
"s3_bucket_name": "my-bucket",
"s3_bucket_region": "us-east-1",
"skip_verify": true,
"ssh": false,
"ssl": true,
"username": "default"
}
}

cloud_provider = azure

NameTypeDescriptionRequired
azure_access_keystringStorage account access key (destinations only)required
azure_account_namestringStorage account name (destinations only)required
container_namestringStorage container name (destinations only)

Container used for staging data load files (may be “container” or “container/prefix”)
required
{
"name": "ClickHouse connection",
"type": "clickhouse",
"configuration": {
"azure_access_key": "abcdefghijklmnopqrstuvwxyz0123456789/+ABCDEabcdefghijklmnopqrstuvwxyz0123456789/+ABCDE==",
"azure_account_name": "account",
"cloud_provider": "azure",
"container_name": "container",
"database": "default",
"hostname": "clickhouse.example.com",
"password": "",
"port": 9440,
"skip_verify": true,
"ssh": false,
"ssl": true,
"username": "default"
}
}

cloud_provider = gcp

NameTypeDescriptionRequired
gcs_bucket_namestringGCS bucket name (destinations only)

Bucket used for staging data (may be “bucket” or “bucket/prefix”)
required
gcs_hmac_access_idstringHMAC access ID (destinations only)required
gcs_hmac_secretstringHMAC secret (destinations only)required
{
"name": "ClickHouse connection",
"type": "clickhouse",
"configuration": {
"cloud_provider": "gcp",
"database": "default",
"gcs_bucket_name": "my-bucket",
"gcs_hmac_access_id": "GOOG1EXAMPLEACCESSID",
"gcs_hmac_secret": "bGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9EXAMPLE",
"hostname": "clickhouse.example.com",
"password": "",
"port": 9440,
"skip_verify": true,
"ssh": false,
"ssl": true,
"username": "default"
}
}

ssh

When ssh is true:

NameTypeDescriptionRequired
ssh_hoststringSSH hostrequired
ssh_portintegerSSH portrequired
ssh_private_keystringPrivate keyrequired
ssh_userstringSSH userrequired
{
"name": "ClickHouse connection",
"type": "clickhouse",
"configuration": {
"auth_mode": "access_key_and_secret",
"aws_access_key_id": "AKIAIOSFODNN7EXAMPLE",
"aws_secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"cloud_provider": "aws",
"database": "default",
"hostname": "clickhouse.example.com",
"password": "",
"port": 9440,
"s3_bucket_name": "my-bucket",
"s3_bucket_region": "us-east-1",
"skip_verify": true,
"ssh": true,
"ssh_host": "bastion.example.com",
"ssh_port": 22,
"ssh_private_key": "",
"ssh_user": "root",
"ssl": true,
"username": "default"
}
}

Model Sync

Source

Configuration

NameTypeDescriptionRequired
querystringoptional
tablestringTableoptional
viewstringViewoptional

Example

{
...
"configuration": {
"query": "SELECT * from users",
"table": "users",
"view": "active_users"
}
}

Target

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

All targets

Configuration
NameTypeDescriptionRequired
column_codecstringColumn compression codec

CODEC spec applied to every column in Polytomic-created tables. Examples: ZSTD; ZSTD(3); LZ4HC(9).
optional
created_columnstring’Created at’ timestamp columnoptional
optimize_after_syncbooleanRun OPTIMIZE FINAL after each sync

When enabled
optional
preserve_table_on_resyncbooleanPreserve destination table when resyncingoptional
updated_columnstring’Updated at’ timestamp columnoptional
write_record_timestampsbooleanWrite row timestamp metadataoptional
Example
{
...
"target": {
"configuration": {
"column_codec": "ZSTD",
"created_column": "",
"optimize_after_sync": false,
"preserve_table_on_resync": false,
"updated_column": "",
"write_record_timestamps": false
}
}
}

Target creation

ClickHouse 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

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

Destination

Configuration

NameTypeDescriptionRequired
advancedobjectoptional
mirror_schemasbooleanMirror schemasoptional
schemastringOutput schemaoptional

Example

{
...
"destination_configuration": {
"advanced": {
"column_codec": "ZSTD",
"empty_strings_null": true,
"hard_deletes": false,
"initial_execution": "rebuild",
"optimize_after_sync": false,
"table_prefix": "",
"truncate_existing": false
},
"mirror_schemas": false,
"schema": "schema"
}
}

Type handling

Destination types

POLYTOMIC TYPECLICKHOUSE TYPE
array<>Array(Nullable(String))
bigintNullable(Int64)
booleanNullable(Bool)
dateNullable(DateTime64(9))
datetimeNullable(DateTime64(9))
decimal(precision, scale)Nullable(Decimal(0, 0))
doubleNullable(Float64)
intNullable(Int32)
jsonNullable(JSON)
jsonarrayArray(Nullable(String))
numberNullable(Float64)
object{}Nullable(JSON)
singleNullable(Float32)
smallintNullable(Int16)
stringNullable(String)
timeNullable(DateTime64(9))

Source types

CLICKHOUSE TYPEPOLYTOMIC TYPE
AGGREGATEFUNCTIONstring
Array()array<>
BOOLboolean
BOOLEANboolean
DATEdate
DATE32date
DATETIMEdatetime
DATETIME64datetime
DECIMALnumber
DECIMAL128number
DECIMAL256number
DECIMAL32number
DECIMAL64number
DYNAMICstring
ENUM16string
ENUM8string
FIXEDSTRINGstring
FLOAT32single
FLOAT64double
INT128bigint
INT16smallint
INT256bigint
INT32int
INT64bigint
INT8smallint
IPV4string
IPV6string
Map()map<>
Nested()object{}
SIMPLEAGGREGATEFUNCTIONstring
STRINGstring
TIMEtime
TIME64time
Tuple()object{}
UINT128bigint
UINT16int
UINT256bigint
UINT32int
UINT64bigint
UINT8smallint
UUIDstring
VARIANTstring