Azure Blob Storage
Write files to an Azure Blob Storage container in CSV or JSONL format. Use Zeotap to export model results, audience lists, or enriched data as blobs for downstream consumption.
Prerequisites
- An Azure Storage account with a Blob container
- A storage account name and account key (or connection string)
- The container must already exist
Authentication
Azure Blob Storage uses Account Key authentication.
- In the Azure Portal, go to your storage account
- Navigate to Access keys under Security + Networking
- Copy the Storage account name and one of the Account keys
- Enter both values in Zeotap
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Container Name | Text | Yes | The Azure Blob Storage container to write files to (e.g., my-data-container) |
| Path Prefix | Text | No | Optional prefix for all blob paths within the container. Default: zeotap/ |
Target Settings
| Field | Type | Required | Description |
|---|---|---|---|
| File Format | Select | Yes | Output file format: CSV or JSONL (Newline Delimited JSON). Default: CSV |
| Enable Gzip Compression | Toggle | No | Compress files with gzip before uploading. Default: On |
Supported Operations
Sync Modes: Insert, Mirror, Snapshot
Audience Sync Modes: Add, Mirror, Snapshot
Features
- Field Mapping: No — Azure Blob Storage writes all mapped fields as file columns
- Schema Introspection: No — Azure Blob Storage is a file-based destination without schema discovery
How It Works
Zeotap writes data as blobs to the configured Azure container:
- Data is serialized into the selected format (CSV or JSONL)
- If gzip compression is enabled, the file is compressed before upload
- Blobs are uploaded to
https://{account}.blob.core.windows.net/{container}/{path_prefix}/{YYYY-MM-DD}/{batch_id}.{ext}[.gz] - Each sync run produces a new set of date-partitioned blobs
Sync mode semantics
- Insert writes the full current dataset as new blobs on every run.
- Mirror writes the full dataset on the first run, then only the rows that changed on later runs. Every row in a mirror-mode blob carries an
_operationcolumn —added,changed, orremoved— so downstream consumers can apply updates and deletions. On the first run all rows are markedadded. In CSV files_operationis always the last column; treat the name as reserved in mirror mode. - Add (audience syncs) writes only new and updated audience members. Members who left the audience since the previous run are excluded from the blobs.
- Snapshot writes the complete current dataset as new blobs on every run and never diffs. There is no
_operationcolumn (the blobs are the whole dataset) and unchanged rows are included every time. Records that left are simply absent from the next drop rather than delivered taggedremoved, so treat each run’s output as authoritative and replace your prior copy rather than merging into it. Unlike Insert, snapshot is guaranteed to read the full model output on every warehouse: it never adopts native change tracking (Snowflake streams, Databricks CDF), which can only surface deltas.
Troubleshooting
Authentication failed
Verify the storage account name and account key are correct. Account keys can be regenerated in the Azure Portal — if regenerated, update the key in Zeotap.
Container not found
The container must exist before syncing. Create it in the Azure Portal under your storage account’s Containers section.
Access denied
If using Azure RBAC instead of account keys, ensure the identity has the Storage Blob Data Contributor role on the container.
Network restrictions
If the storage account has firewall rules enabled, ensure Zeotap’s IP addresses are allowlisted, or the account allows access from all networks.