Databricks (Azure Blob Storage)
Synopsis
The Databricks Azure Blob target stages telemetry files to Azure Blob Storage, then executes COPY INTO commands on Databricks SQL warehouses to load data into Unity Catalog tables.
Schema
- name: <string>
description: <string>
type: azdatabricks
properties:
server_hostname: <string>
http_path: <string>
access_token: <string>
catalog: <string>
namespace: <string>
account: <string>
staging_container: <string>
staging_prefix: <string>
tenant_id: <string>
client_id: <string>
client_secret: <string>
table: <string>
schema: <string>
name: <string>
format: <string>
compression: <string>
extension: <string>
tables:
- table: <string>
schema: <string>
name: <string>
format: <string>
compression: <string>
extension: <string>
batch_size: <integer>
max_size: <integer>
timeout: <integer>
drop_unknown_stream_events: <boolean>
field_format: <string>
max_rows_per_rowgroup: <numeric>
buffer_size: <numeric>
data_page_version: <string>
metadata: <key-value>
debug:
status: <boolean>
dont_send_logs: <boolean>
Configuration
The following fields are used to define the target:
Base Target Fields
| Field | Required | Default | Description |
|---|---|---|---|
name | Y | - | Unique identifier for this target |
description | N | - | Human-readable description |
type | Y | - | Must be azdatabricks |
pipelines | N | - | Pipeline names to apply before sending |
status | N | true | Enable/disable the target |
Databricks Connection
| Field | Required | Default | Description |
|---|---|---|---|
server_hostname | Y | - | Databricks workspace URL (e.g., abc123.azuredatabricks.net) |
http_path | Y | - | SQL warehouse HTTP path (e.g., /sql/1.0/warehouses/abc123def456) |
access_token | Y | - | Databricks personal access token |
catalog | Y | - | Unity Catalog name |
namespace | N | default | Databricks schema name |
Azure Blob Staging Configuration
| Field | Required | Default | Description |
|---|---|---|---|
account | Y | - | Azure storage account name |
staging_container | Y | - | Azure Blob container name for staging files |
staging_prefix | N | databricks-staging/ | Blob prefix path |
tenant_id | Y | - | Azure AD tenant ID |
client_id | Y | - | Service principal client ID |
client_secret | Y | - | Service principal client secret |
Table Configuration
| Field | Required | Default | Description |
|---|---|---|---|
table | Y* | - | Catch-all table name for all events |
schema | Y* | - | Avro/Parquet schema: a Library name, built-in name, file path, or inline JSON definition |
name | N | vmetric.{{.Timestamp}}.{{.Extension}} | File naming template |
format | N | json | File format. Use json, avro, or parquet — see the warning below. |
compression | N | zstd | Compression algorithm |
extension | N | - | File extension override. Defaults to the resolved format. |
tables | N | - | Multiple table configurations (see below) |
tables.table | Y | - | Target table name |
tables.schema | Y* | - | Avro/Parquet schema for this table (Library name, built-in name, file path, or inline JSON) |
tables.name | Y | - | File naming template for this table |
tables.format | N | - | File format for this table. Falls back to the catch-all format. |
tables.compression | N | - | Compression algorithm for this table. Falls back to the catch-all compression. |
tables.extension | N | - | File extension override for this table. Falls back to the catch-all extension. |
* = At least one of table (catch-all) or tables (multiple) must be configured. For Avro/Parquet formats, schema is required.
Only json, avro, and parquet are written correctly. csv, orc, and text pass configuration validation, but the staged file is written as JSON while the COPY INTO command still declares the requested format, so the load fails.
Parquet Options
These apply only when format is parquet.
| Field | Required | Default | Description |
|---|---|---|---|
max_rows_per_rowgroup | N | 10000 | Maximum rows per Parquet row group |
buffer_size | N | 262144 | Parquet page buffer size in bytes (256KB) |
data_page_version | N | V2 | Parquet data page version (V1, V2) |
metadata | N | - | Key/value pairs written into the Parquet file metadata |
Batch Configuration
| Field | Required | Default | Description |
|---|---|---|---|
batch_size | N | 100000 | Maximum events per file before flush |
max_size | N | 33554432 | Maximum file size in bytes before flush (32MB) |
timeout | N | 300 | COPY INTO command timeout in seconds |
drop_unknown_stream_events | N | true | Drop events that do not match any configured table |
Normalization
| Field | Required | Default | Description |
|---|---|---|---|
field_format | N | - | Apply format normalization (ECS, ASIM, UDM) |
Debug Options
| Field | Required | Default | Description |
|---|---|---|---|
debug.status | N | false | Enable debug logging for this target |
debug.dont_send_logs | N | false | Log events without sending to Databricks |
Details
Architecture Overview
The Databricks Azure Blob target implements a two-stage loading pattern:
- Stage Files to Azure Blob: Events are written to files in Azure Blob Storage using the configured format
- Execute COPY INTO: SQL commands load data from Blob Storage into Databricks Unity Catalog tables using ABFSS paths
Unity Catalog Integration
Catalog Structure:
- Tables are organized within Unity Catalog using three-level namespace:
catalog.namespace.table - The
catalogfield specifies the Unity Catalog name - The
namespacefield specifies the schema (defaults todefault) - Table names are validated to ensure they are valid SQL identifiers
Warehouse ID Extraction:
- The target automatically extracts the warehouse ID from the
http_path - Example:
/sql/1.0/warehouses/abc123def456→abc123def456 - This warehouse ID is used for all COPY INTO operations
The Databricks access token requires permissions to:
- Execute SQL statements on the specified warehouse
- Write data to the target catalog and schema
- Access the Azure Blob staging location (configured separately in Databricks)
Azure Blob Staging Operations
File Upload:
- Files are staged to
https://{account}.blob.core.windows.net/{container}/{prefix}/{table}/{filename}structure - Uses Azure SDK for secure uploads with service principal authentication
- Supports Azure AD authentication through client credentials
ABFSS Path Construction:
- The target automatically constructs ABFSS paths for COPY INTO commands
- Format:
abfss://{container}@{account}.dfs.core.windows.net/{prefix}/{table}/{filename} - ABFSS protocol is used for direct Databricks access to Azure Data Lake Storage Gen2
Cleanup:
- Staged files are automatically deleted after successful COPY INTO execution
- Failed uploads remain in Blob Storage for troubleshooting