dataset ↗
Use the dataset stage to explicitly define the data table your XQL query will retrieve records from. This is a fundamental component used to specify the data source and is crucial for query optimization.
Syntax
dataset [=] <dataset_name> dataset in (<dataset_name1>, <dataset_name2>, ...) cold_dataset = <dataset_name>
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
dataset_name |
string | Yes | The name of the dataset to query. If omitted, the query defaults to xdr_data. |
in |
operator | No | An operator used to specify a list of multiple datasets to query simultaneously. |
Returns
The dataset stage returns raw records and all available fields from the specified data source(s).
Usage notes
- The
datasetstage must always be the very first stage in your XQL query, unless it is preceded by aconfigstage. - If you do not explicitly define a dataset, Cortex XDR/XSIAM will default to querying the
xdr_datadataset. - Dataset names in queries are always treated as if they are lowercase, even if you type them with uppercase characters (Case Insensitivity).
- Specifying the dataset early is a best practice for streamlining queries, as it helps reduce the amount of data processed.
- The
cold_datasetsyntax is used specifically for querying data stored in cold storage.
Examples
Example 1: Basic Dataset Specification
Goal: Explicitly specify a single data source for the query.
XQL code:
config timeframe = 1d // Set a practical timeframe for the query | dataset = sample_xql_raw // Specifies the data source for the query | limit 5 // Limits the number of returned records to improve performance
Explanation: This query retrieves all available fields from the sample_xql_raw dataset within the specified timeframe.
Output:
| event_id | _time | event_description |
|---|---|---|
| 101 | 2023-10-26 10:00:00 UTC | "User login successful" |
| 102 | 2023-10-26 10:05:30 UTC | "File access attempt" |
| 103 | 2023-10-26 10:15:15 UTC | "Network connection established" |
| 104 | 2023-10-26 10:20:00 UTC | "System heartbeat" |
| 105 | 2023-10-26 10:30:45 UTC | "Data transformation" |
Example 2: Specifying Multiple Datasets
Goal: Query across several different datasets using the in operator.
XQL code:
config timeframe = 1d // Ensures the query operates within a defined time window | dataset in ("sample_xql_raw") // Specifies one or more datasets to query from | filter is_successful = true // Filters for successful events | fields event_id, event_description, is_successful // Selects only the necessary fields for output | limit 5 // Prevents excessive results and improves query performance
Explanation: This query demonstrates the dataset in syntax. While sample_xql_raw is a single dataset, this syntax allows listing multiple datasets (for example, dataset in ("dataset1", "dataset2")) to aggregate results from multiple sources.
Output:
| event_id | event_description | is_successful |
|---|---|---|
| 101 | "User login successful" | true |
| 103 | "Network connection established" | true |
| 104 | "System heartbeat" | true |
| 105 | "Data transformation" | true |
| 107 | "Cloud resource modification" | true |
Example 3: cold_dataset Note (conceptual example)
Goal: Query data that is stored in cold storage.
XQL code:
config timeframe = 7d | cold_dataset = sample_xql_raw_cold // Placeholder for a conceptual cold dataset | limit 10
Explanation: The cold_dataset = <dataset name> syntax is used specifically for querying data stored in cold storage. This example conceptually queries a cold dataset named sample_xql_raw_cold.
Output:
| event_id | _time | event_description |
|---|---|---|
| 101 | 2023-10-26 10:00:00 UTC | "User login successful" |
| 102 | 2023-10-26 10:05:30 UTC | "File access attempt" |
| 103 | 2023-10-26 10:15:15 UTC | "Network connection established" |
Example 4: Default dataset (xdr_data)
Goal: Implicitly query the default dataset (xdr_data) by omitting the dataset stage.
XQL code:
// This query implicitly uses the 'xdr_data' dataset filter event_id = 101 | fields event_id, event_description
Explanation: If no dataset stage is explicitly defined, XQL queries automatically run against the xdr_data dataset. This example directly filters and selects fields, implicitly targeting the default dataset (represented here by sample_xql_raw data for context).
Output:
| event_id | event_description |
|---|---|
| 101 | "User login successful" |