﻿---
title: stack es rollup put-job cli command
description: Create a rollup job. Behaviour flags: --dry-run — validate all inputs and exit without performing any action 
url: https://www.elastic.co/elastic/docs-builder/docs/4097/reference/elastic-cli/cli/stack/es/rollup/put-job
applies_to:
  - Elastic Cloud Serverless: Preview
  - Elastic Stack: Preview
---

# stack es rollup put-job cli command
<cli-modifiers>
</cli-modifiers>

```bash
elastic stack es rollup put-job \
  --cron <cron> \
  --groups <groups> \
  --index-pattern <index-pattern> \
  --page-size <page-size> \
  --rollup-index <rollup-index> \
  --id <id> \
  [options]
```

Create a rollup job.
**Behaviour flags:**
`--dry-run` — validate all inputs and exit without performing any action

## Options

<definitions>
  <definition term="--cron string required">
    A cron string which defines the intervals when the rollup job should be executed. When the interval
    triggers, the indexer attempts to rollup the data in the index pattern. The cron pattern is unrelated
    to the time interval of the data being rolled up. For example, you may wish to create hourly rollups
    of your document but to only run the indexer on a daily basis at midnight, as defined by the cron. The
    cron pattern is defined just like a Watcher cron schedule.
  </definition>
  <definition term="--groups string required">
    Defines the grouping fields and aggregations that are defined for this rollup job. These fields will then be
    available later for aggregating into buckets. These aggs and fields can be used in any combination. Think of
    the groups configuration as defining a set of tools that can later be used in aggregations to partition the
    data. Unlike raw data, we have to think ahead to which fields and aggregations might be used. Rollups provide
    enough flexibility that you simply need to determine which fields are needed, not in what order they are needed.
  </definition>
  <definition term="--index-pattern string required">
    The index or index pattern to roll up. Supports wildcard-style patterns (`logstash-*`). The job attempts to
    rollup the entire index or index-pattern.
  </definition>
  <definition term="--page-size number required">
    The number of bucket results that are processed on each iteration of the rollup indexer. A larger value tends
    to execute faster, but requires more memory during processing. This value has no effect on how the data is
    rolled up; it is merely used for tweaking the speed or memory cost of the indexer.
  </definition>
  <definition term="--rollup-index string required">
    The index that contains the rollup results. The index can be shared with other rollup jobs. The data is stored so that it doesn’t interfere with unrelated jobs.
  </definition>
  <definition term="--id string required">
    Identifier for the rollup job. This can be any alphanumeric string and uniquely identifies the
    data that is associated with the rollup job. The ID is persistent; it is stored with the rolled
    up data. If you create a job, let it run for a while, then delete the job, the data that the job
    rolled up is still be associated with this job ID. You cannot create a new job with the same ID
    since that could lead to problems with mismatched job configurations.
  </definition>
  <definition term="--metrics string[]">
    Defines the metrics to collect for each grouping tuple. By default, only the doc_counts are collected for each
    group. To make rollup useful, you will often add metrics like averages, mins, maxes, etc. Metrics are defined
    on a per-field basis and for each field you configure which metric should be collected.
    **Repeatable:** pass `--metrics` multiple times to supply more than one value
  </definition>
  <definition term="--timeout string">
    Time to wait for the request to complete.
  </definition>
  <definition term="--headers string">
  </definition>
  <definition term="--error-trace">
    When set to `true` Elasticsearch will include the full stack trace of errors
    when they occur.
  </definition>
  <definition term="--filter-path string">
    Comma-separated list of filters in dot notation which reduce the response
    returned by Elasticsearch.
    **Repeatable:** pass `--filter-path` multiple times to supply more than one value
  </definition>
  <definition term="--human">
    When set to `true` will return statistics in a format suitable for humans.
    For example `"exists_time": "1h"` for humans and
    `"exists_time_in_millis": 3600000` for computers. When disabled the human
    readable values will be omitted. This makes sense for responses being consumed
    only by machines.
  </definition>
  <definition term="--pretty">
    If set to `true` the returned JSON will be "pretty-formatted". Only use
    this option for debugging only.
  </definition>
  <definition term="--input-file string">
    path to a JSON file to use as command input
  </definition>
  <definition term="--dry-run">
    validate all inputs and exit without performing any action (preview changes without applying them)
  </definition>
</definitions>


## Global Options

<definitions>
  <definition term="--json">
    output as JSON
  </definition>
</definitions>