Skip to navigation

Supports:

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

Connection

Configuration

NameTypeDescriptionRequired
auth_modestringAuthentication method

How to authenticate with AWS. Defaults to Access Key and Secret. Accepted values: access_key_and_secret ↓, iam_role ↓
required
csv_has_headersbooleanCSV files have headers

Whether CSV files have a header row with field names.
optional
enable_event_notificationsbooleanEnable event notifications

Enable S3 event notifications for incremental sync ↓
optional
is_single_tablebooleanFiles are time-based snapshots

Treat the files as a single table. ↓
optional
s3_bucket_namestringS3 bucket name

Bucket name (folder optional); ex: s3://polytomic/dataset
required
s3_bucket_regionstringS3 bucket regionrequired

auth_mode

When auth_mode is access_key_and_secret:

NameTypeDescriptionRequired
aws_access_key_idstringAWS access key ID

Access Key ID with read/write access to a bucket.
required
aws_secret_access_keystringAWS secret access keyrequired
Read-only propertyTypeDescription
aws_userstringUser ARN
{
"name": "S3 connection",
"type": "s3",
"configuration": {
"auth_mode": "access_key_and_secret",
"aws_access_key_id": "AKIAIOSFODNN7EXAMPLE",
"aws_secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"csv_has_headers": true,
"enable_event_notifications": false,
"is_single_table": false,
"s3_bucket_name": "s3://polytomic/dataset",
"s3_bucket_region": "us-east-1"
}
}

When auth_mode is iam_role:

NameTypeDescriptionRequired
iam_role_arnstringIAM role ARNrequired
Read-only propertyTypeDescription
external_idstringExternal ID for the IAM role
{
"name": "S3 connection",
"type": "s3",
"configuration": {
"auth_mode": "iam_role",
"csv_has_headers": true,
"enable_event_notifications": false,
"iam_role_arn": "",
"is_single_table": false,
"s3_bucket_name": "s3://polytomic/dataset",
"s3_bucket_region": "us-east-1"
}
}

enable_event_notifications

When enable_event_notifications is true:

NameTypeDescriptionRequired
event_queue_arnstringEvent queue ARN

ARN of the SQS queue receiving S3 event notifications
required
propagate_file_deletionsbooleanPropagate file deletion events

When a file is deleted from the bucket, soft-delete the corresponding records in supported destinations on the next sync. Requires the record key to be captured from the file path.
optional
{
"name": "S3 connection",
"type": "s3",
"configuration": {
"auth_mode": "access_key_and_secret",
"aws_access_key_id": "AKIAIOSFODNN7EXAMPLE",
"aws_secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"csv_has_headers": true,
"enable_event_notifications": true,
"event_queue_arn": "arn:aws:sqs:us-east-1:123456789012:my-queue",
"is_single_table": false,
"propagate_file_deletions": false,
"s3_bucket_name": "s3://polytomic/dataset",
"s3_bucket_region": "us-east-1"
}
}

is_single_table = true

NameTypeDescriptionRequired
is_directory_snapshotbooleanMulti-directory multi-table ↓optional
{
"name": "S3 connection",
"type": "s3",
"configuration": {
"auth_mode": "access_key_and_secret",
"aws_access_key_id": "AKIAIOSFODNN7EXAMPLE",
"aws_secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"csv_has_headers": true,
"enable_event_notifications": false,
"is_directory_snapshot": false,
"is_single_table": true,
"s3_bucket_name": "s3://polytomic/dataset",
"s3_bucket_region": "us-east-1",
"single_table_file_format": "csv",
"single_table_name": "collection",
"skip_lines": 0
}
}
is_directory_snapshot

When is_directory_snapshot is true:

NameTypeDescriptionRequired
directory_glob_patternstringTables glob pathrequired
{
"name": "S3 connection",
"type": "s3",
"configuration": {
"auth_mode": "access_key_and_secret",
"aws_access_key_id": "AKIAIOSFODNN7EXAMPLE",
"aws_secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"csv_has_headers": true,
"directory_glob_pattern": "",
"enable_event_notifications": false,
"is_directory_snapshot": true,
"is_single_table": true,
"s3_bucket_name": "s3://polytomic/dataset",
"s3_bucket_region": "us-east-1",
"single_table_file_formats": []
}
}

is_single_table = true and is_directory_snapshot = false

NameTypeDescriptionRequired
single_table_file_formatstringFile format

Accepted values: csv ↓, json, parquet
optional
single_table_namestringCollection nameoptional
single_table_file_format

When single_table_file_format is csv or single_table_file_formats contains csv:

NameTypeDescriptionRequired
skip_linesintegerSkip first lines

Skip first N lines of each CSV file.
optional

is_single_table = true and is_directory_snapshot = true

NameTypeDescriptionRequired
single_table_file_formatsarrayFile formats that may be present across different tablesoptional

Model Sync

Source

Configuration

NameTypeDescriptionRequired
file_formatstringFile format

Accepted values: csv, json, parquet
optional
keystringObject key

The key of the object in the bucket to read from.
optional
model_fromstringFiles

The model is generated from a single file or a multi-file archive. Accepted values: single_file, multi_file_archive
required
skip_linesintegerSkip first lines

Skip first N lines of each CSV file.
optional
subfolderstringSubfolder to read files from from (optional)optional

Example

{
...
"configuration": {
"file_format": "csv",
"key": "",
"model_from": "single_file",
"skip_lines": 0,
"subfolder": ""
}
}

Target

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

All targets

Configuration
NameTypeDescriptionRequired
formatstringOutput format

Output file encoding. Accepted values: csv, json-doc, json, parquet
optional
Example
{
...
"target": {
"configuration": {
"format": "csv"
}
}
}

Bulk Sync

Source

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

Destination

Configuration

NameTypeDescriptionRequired
advancedobjectoptional
formatstringOutput file encodingoptional
subfolderstringSubfolder to write to (optional)optional

Example

{
...
"destination_configuration": {
"advanced": {
"write_incremental": false
},
"format": "csv",
"subfolder": "reports"
}
}