Skip to content

Using the datamodel command

KGI Avatar

Written by: Brett Woodruff | Last Updated:

May 3, 2024

Originally Published:

February 5, 2024

In the realm of data analytics and security, Splunk is the industry leader for managing and visualizing extensive data collectionsSplunk Processing Language (SPL) is a powerful, search-based language used to sift through, manipulate, and visualize the data collected in Splunk. Among the SPL commands, the datamodel command is particularly notable. This command allows users to leverage the structured data model approach, simplifying complex data structures and enhancing the efficiency of data retrieval and analysis.


What is a Data Model?

Before delving into the specifics of the datamodel command, it’s crucial to understand what a data model is. In Splunk, a data model is a structured format that organizes your data into a hierarchy of datasets, such as events, transactions, or searches. These models enable users to abstract the underlying data complexities into a more understandable and manageable format and allows analysts to focus on higher-level analytics.


The datamodel Command

The datamodel command in Splunk is used to interact with these structured data models. When coupled with the search parameter, it allows users to retrieve data from a data model, manipulate it, and present it in a structured format. The datamodel command is particularly useful for creating accelerated searches and generating efficient reports, dashboards, and alerts. While the datamodel command itself does not accelerate a search, it can be used to understand a data model’s structure for writing accurate, accelerated searches that utilize the tstats command against the data contained in the data model.

Syntax and Usage

The basic syntax of the datamodel command is:

					| datamodel <ModelName> <ObjectName> [search / flat]  {search}
  • <ModelName>: The name of the data model you want to interact with.
  • <ObjectName>: The specific dataset (or object) within the data model you are targeting.
  • [search / flat]: “Search” returns fields with hierarchical prefixes attached, whereas “flat” removes them.
  • {search}: An optional SPL (Search Processing Language) search that filters the results further.

Basic Data Retrieval:

To retrieve data from a data model, you can use the datamodel command followed by the model name and object name:


					| datamodel Network_Traffic All_Traffic

This command retrieves all data from the ‘All_Traffic’ object within the ‘Network_Traffic’ data model.

Filtering Data:

You can add search conditions to filter the results. For example, to find traffic from a specific IP address:


					| datamodel Network_Traffic All_Traffic search
| search All_Traffic.src_ip=""


Using Fields in the Data Model:

You can use fields defined in the data model to further manipulate your data. For instance, if you want to count the number of events by source IP:


					| datamodel Network_Traffic All_Traffic search
| stats count by All_Traffic.src_ip


In cases where you have specified a search using a dataset of a data model, you can use [flat] rather than [search] to work with data model fields without requiring a prefix of the searched dataset.


					| datamodel Network_Traffic All_Traffic flat
| stats count by src_ip

Benefits of Using the datamodel command
  • Performance Optimization: Data models accelerate data retrieval, as they allow Splunk to use indexed fields and pre-computed summaries.

  • Data Abstraction: Users can interact with a logical structure of the data without needing to understand the underlying complexities.

  • Enhanced Analysis: Data models facilitate more advanced analytics, allowing users to focus on the analysis rather than data formatting.


The datamodel command is a potent tool in the Splunk SPL arsenal, empowering users to efficiently interact with structured data. By understanding and utilizing this command, Splunk users can enhance their data analytics capabilities, streamline their workflows, and derive more meaningful insights from their data. Whether you’re dealing with network traffic, web logs, or any other dataset, the datamodel command is your gateway to a more structured and insightful world of data.

Helpful? Don't forget to share this post!