Supports:
- ✅ Models
- ✅ Model sync destination
- ✅ Bulk sync source
- ✅ Bulk sync destination
Connection
Configuration
| Name | Type | Description | Required |
|---|---|---|---|
cloud_provider | string | Cloud provider (destination support only) Accepted values: aws ↓, azure ↓, gcp ↓ | optional |
database | string | Database (optional) | optional |
hostname | string | Hostname | required |
password | string | Password | optional |
port | integer | Port | required |
skip_verify | boolean | Skip certificate verification | optional |
ssh | boolean | Connect over SSH tunnel ↓ | optional |
ssl | boolean | Use SSL | optional |
username | string | Username | required |
cloud_provider = aws
| Name | Type | Description | Required |
|---|---|---|---|
auth_mode | string | AWS authentication method How to authenticate with AWS for the staging bucket. Accepted values: access_key_and_secret ↓, iam_role ↓ | required |
s3_bucket_name | string | S3 bucket name (destinations only) Name of bucket used for staging data load files | required |
s3_bucket_region | string | S3 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:
| Name | Type | Description | Required |
|---|---|---|---|
aws_access_key_id | string | AWS access key ID (destinations only) | required |
aws_secret_access_key | string | AWS secret access key (destinations only) | required |
| Read-only property | Type | Description |
|---|---|---|
aws_user | string | User ARN (destinations only) |
When auth_mode is iam_role:
| Name | Type | Description | Required |
|---|---|---|---|
iam_role_arn | string | IAM role ARN | required |
| Read-only property | Type | Description |
|---|---|---|
external_id | string | External 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
| Name | Type | Description | Required |
|---|---|---|---|
azure_access_key | string | Storage account access key (destinations only) | required |
azure_account_name | string | Storage account name (destinations only) | required |
container_name | string | Storage 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
| Name | Type | Description | Required |
|---|---|---|---|
gcs_bucket_name | string | GCS bucket name (destinations only) Bucket used for staging data (may be “bucket” or “bucket/prefix”) | required |
gcs_hmac_access_id | string | HMAC access ID (destinations only) | required |
gcs_hmac_secret | string | HMAC 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:
| Name | Type | Description | Required |
|---|---|---|---|
ssh_host | string | SSH host | required |
ssh_port | integer | SSH port | required |
ssh_private_key | string | Private key | required |
ssh_user | string | SSH user | 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": true,"ssh_host": "bastion.example.com","ssh_port": 22,"ssh_private_key": "","ssh_user": "root","ssl": true,"username": "default"}}
Model Sync
Source
Configuration
| Name | Type | Description | Required |
|---|---|---|---|
query | string | optional | |
table | string | Table | optional |
view | string | View | optional |
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
| Name | Type | Description | Required |
|---|---|---|---|
column_codec | string | Column compression codec CODEC spec applied to every column in Polytomic-created tables. Examples: ZSTD; ZSTD(3); LZ4HC(9). | optional |
created_column | string | ’Created at’ timestamp column | optional |
optimize_after_sync | boolean | Run OPTIMIZE FINAL after each sync When enabled | optional |
preserve_table_on_resync | boolean | Preserve destination table when resyncing | optional |
updated_column | string | ’Updated at’ timestamp column | optional |
write_record_timestamps | boolean | Write row timestamp metadata | optional |
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:
| NAME | DESCRIPTION | ENUM |
|---|---|---|
| name | Table name | false |
Bulk Sync
Source
ClickHouse connections may be used as a bulk sync source. No additional configuration options are required.
Destination
Configuration
| Name | Type | Description | Required |
|---|---|---|---|
advanced | object | optional | |
mirror_schemas | boolean | Mirror schemas | optional |
schema | string | Output schema | optional |
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 TYPE | CLICKHOUSE TYPE |
|---|---|
array<> | Array(Nullable(String)) |
bigint | Nullable(Int64) |
boolean | Nullable(Bool) |
date | Nullable(DateTime64(9)) |
datetime | Nullable(DateTime64(9)) |
decimal(precision, scale) | Nullable(Decimal(0, 0)) |
double | Nullable(Float64) |
int | Nullable(Int32) |
json | Nullable(JSON) |
jsonarray | Array(Nullable(String)) |
number | Nullable(Float64) |
object{} | Nullable(JSON) |
single | Nullable(Float32) |
smallint | Nullable(Int16) |
string | Nullable(String) |
time | Nullable(DateTime64(9)) |
Source types
| CLICKHOUSE TYPE | POLYTOMIC TYPE |
|---|---|
AGGREGATEFUNCTION | string |
Array() | array<> |
BOOL | boolean |
BOOLEAN | boolean |
DATE | date |
DATE32 | date |
DATETIME | datetime |
DATETIME64 | datetime |
DECIMAL | number |
DECIMAL128 | number |
DECIMAL256 | number |
DECIMAL32 | number |
DECIMAL64 | number |
DYNAMIC | string |
ENUM16 | string |
ENUM8 | string |
FIXEDSTRING | string |
FLOAT32 | single |
FLOAT64 | double |
INT128 | bigint |
INT16 | smallint |
INT256 | bigint |
INT32 | int |
INT64 | bigint |
INT8 | smallint |
IPV4 | string |
IPV6 | string |
Map() | map<> |
Nested() | object{} |
SIMPLEAGGREGATEFUNCTION | string |
STRING | string |
TIME | time |
TIME64 | time |
Tuple() | object{} |
UINT128 | bigint |
UINT16 | int |
UINT256 | bigint |
UINT32 | int |
UINT64 | bigint |
UINT8 | smallint |
UUID | string |
VARIANT | string |
