Skip to main content

Azure Data Explorer

Microsoft Azure Pull Replay Only

Synopsis

Reads tables from an Azure Data Explorer database over a bounded time window, through the cluster's Kusto REST query API. Each selected table is queried once per chunk of the window and the rows are paged into the pipeline.

This device is replay only: there is no streaming Azure Data Explorer collector, so the device type azdxreplay is the type itself rather than a replay of a sibling. Everything in Replay Devices — the time window, chunking, the run schedule, and the run controls — applies here.

Schema

- id: <numeric>
name: <string>
description: <string>
type: azdxreplay
tags: <string[]>
pipelines: <pipeline[]>
status: <boolean>
properties:
endpoint: <string>
database: <string>
tenant_id: <string>
client_id: <string>
client_secret: <string>
scope: <string>
stream: <string[]>
time_column: <string>
start_date: <string>
end_date: <string>
timezone: <string>
window_chunk: <numeric>
batch_size: <numeric>
interval: <numeric>
cron: <string>

Configuration

The following fields are used to define the device.

Device

FieldRequiredDefaultDescription
idY-Unique numeric identifier
nameY-Device name
descriptionN-Optional description of the device's purpose
typeY-Device type identifier (must be azdxreplay)
tagsN-Array of labels for categorization
pipelinesN-Array of preprocessing pipeline references
statusNtrueBoolean flag to enable/disable the device

Connection

FieldRequiredDefaultDescription
endpointY-Cluster URI. Must begin with https://
databaseY-Database within the cluster
scopeN<endpoint>/.defaultToken scope requested for the cluster

Authentication

FieldRequiredDefaultDescription
tenant_idN-Directory tenant of the service principal
client_idN-Application ID of the service principal
client_secretN-Client secret of the service principal

Leave all three empty to authenticate with the managed or workload identity available to the Director. Credential fields support ${ENV_VAR} and $secret{...} token resolution.

Collection

FieldRequiredDefaultDescription
streamY-Tables to replay. At least one is required
time_columnNTimeGeneratedDatetime column the window is applied to
batch_sizeN10000Rows per page within a chunk

Window and Schedule

FieldRequiredDefaultDescription
start_dateY-Lower bound of the replay window
end_dateN-Upper bound, exclusive. Unset means an open window that follows the present
timezoneNUTCZone used to read an offset-less bound
window_chunkN3600Seconds of the window covered by one query. Minimum 60
intervalN60Seconds between runs while the window still has work
cronN-Cron expression for the run, taking precedence over interval

These behave exactly as described in Replay Devices, including the relative expressions accepted by start_date and end_date.

Details

Query Shape

Each table is queried once per chunk, bounded on time_column:

<table> | where <time_column> >= datetime(<earliest>) and <time_column> < datetime(<latest>)

The upper bound is exclusive, so adjacent chunks never overlap and no row is read twice. A table whose rows carry their timestamp in a column other than TimeGenerated needs time_column set accordingly; the whole device uses one column, so tables with different timestamp columns need separate devices.

Paging

Rows are read in pages of batch_size within each chunk. A single response is capped at 256 MB; a chunk whose result exceeds it needs a smaller window_chunk, a smaller batch_size, or both.

Credentials and Configuration Changes

Changing the endpoint, database, scope, credentials, time column, or table list is a breaking configuration change and restarts collection for the device. The window and the schedule are re-read live, so adjusting start_date, end_date, window_chunk, interval or cron does not restart it.

Examples

Basic

Replaying one month of a table with a service principal...

- id: 1
name: adx-replay-january
type: azdxreplay
properties:
endpoint: "https://mycluster.westeurope.kusto.windows.net"
database: "Samples"
tenant_id: "00000000-0000-0000-0000-000000000000"
client_id: "11111111-1111-1111-1111-111111111111"
client_secret: "your-client-secret"
stream:
- "StormEvents"
time_column: "StartTime"
start_date: "2026-01-01T00:00:00Z"
end_date: "2026-02-01T00:00:00Z"

Managed Identity

Omitting the credentials uses the Director's managed identity...

- id: 2
name: adx-replay-audit
type: azdxreplay
properties:
endpoint: "https://mycluster.westeurope.kusto.windows.net"
database: "Security"
stream:
- "SigninLogs"
- "AuditLogs"
start_date: "-1mon@mon"
end_date: "@mon"
timezone: "Europe/Istanbul"

Large Tables

Narrowing the chunk and the page size for a dense table, and running it nightly instead of continuously...

- id: 3
name: adx-replay-dense
type: azdxreplay
properties:
endpoint: "https://mycluster.westeurope.kusto.windows.net"
database: "Telemetry"
stream:
- "RawEvents"
time_column: "EventTime"
start_date: "2026-01-01T00:00:00Z"
end_date: "2026-04-01T00:00:00Z"
window_chunk: 300
batch_size: 2000
cron: "0 2 * * *"