# nomctl ingest

```text
Upload files and ingest them as datasets

Usage: nomctl ingest <COMMAND>

Commands:
  csv                  Upload a CSV file and ingest it into a dataset
  parquet              Upload a Parquet file and ingest it into a dataset
  mcap                 Upload an MCAP file and ingest its protobuf timeseries messages into a dataset
  journal-json         Upload a journald JSON (.jsonl / .jsonl.gz) file and ingest it
  avro-stream          Upload a Nominal Avro-stream (.avro) file and ingest it
  ardupilot-dataflash  Upload an ArduPilot DataFlash (.bin) file and ingest it
  video                Upload a video file (.mp4 / .mkv / .avi / .ts) and ingest it
  mcap-video           Upload an MCAP file and ingest a single video stream from it by topic
  help                 Print this message or the help of the given subcommand(s)

Options:
  -h, --help
          Print help
```

## nomctl ingest csv

```text
Upload a CSV file and ingest it into a dataset

Usage: nomctl ingest csv [OPTIONS] --timestamp-column <COLUMN> --timestamp-type <SPEC> <--dataset <RID>|--name <NAME>> <PATH>

Arguments:
  <PATH>
          Path to the file to upload

Options:
      --dataset <RID>
          Existing dataset RID to ingest into

      --name <NAME>
          Name for a new dataset created atomically with the ingest

      --description <DESCRIPTION>
          Description for the new dataset. Requires --name

      --label <LABEL>
          Add a label to the new dataset. Repeatable. Requires --name

      --property <KEY> <VALUE>
          Add a property to the new dataset as KEY VALUE. Repeatable. Requires --name

      --no-wait
          Skip waiting for the ingest job to finish; print the ingest job RID and return immediately. Otherwise the command blocks until the job reaches a terminal state and prints the resulting dataset RID

      --timestamp-column <COLUMN>
          Name of the column that contains timestamps

      --timestamp-type <SPEC>
          Timestamp encoding. One of:
            iso8601
            <unit>             epoch timestamps (e.g. milliseconds, ns)
          Combine a unit with --relative-to to treat values as offsets from a start time.

      --relative-to <RFC3339>
          Interpret timestamps as offsets from this RFC3339 start time (relative mode)

      --channel-prefix <PREFIX>
          Prepend this prefix to every channel name in the file

      --tag-column <TAG> <COLUMN>
          Derive a tag's value from a column: --tag-column TAG COLUMN. Repeatable

      --file-tag <KEY> <VALUE>
          Apply a fixed tag to every point: --file-tag KEY VALUE. Repeatable

      --exclude-column <COLUMN>
          Exclude a column from ingestion. Repeatable

  -h, --help
          Print help (see a summary with '-h')
```

## nomctl ingest parquet

```text
Upload a Parquet file and ingest it into a dataset

Usage: nomctl ingest parquet [OPTIONS] --timestamp-column <COLUMN> --timestamp-type <SPEC> <--dataset <RID>|--name <NAME>> <PATH>

Arguments:
  <PATH>
          Path to the file to upload

Options:
      --dataset <RID>
          Existing dataset RID to ingest into

      --name <NAME>
          Name for a new dataset created atomically with the ingest

      --description <DESCRIPTION>
          Description for the new dataset. Requires --name

      --label <LABEL>
          Add a label to the new dataset. Repeatable. Requires --name

      --property <KEY> <VALUE>
          Add a property to the new dataset as KEY VALUE. Repeatable. Requires --name

      --no-wait
          Skip waiting for the ingest job to finish; print the ingest job RID and return immediately. Otherwise the command blocks until the job reaches a terminal state and prints the resulting dataset RID

      --timestamp-column <COLUMN>
          Name of the column that contains timestamps

      --timestamp-type <SPEC>
          Timestamp encoding. One of:
            iso8601
            <unit>             epoch timestamps (e.g. milliseconds, ns)
          Combine a unit with --relative-to to treat values as offsets from a start time.

      --relative-to <RFC3339>
          Interpret timestamps as offsets from this RFC3339 start time (relative mode)

      --channel-prefix <PREFIX>
          Prepend this prefix to every channel name in the file

      --tag-column <TAG> <COLUMN>
          Derive a tag's value from a column: --tag-column TAG COLUMN. Repeatable

      --file-tag <KEY> <VALUE>
          Apply a fixed tag to every point: --file-tag KEY VALUE. Repeatable

      --exclude-column <COLUMN>
          Exclude a column from ingestion. Repeatable

      --archive
          Treat the file as an archive (.tar, .tar.gz, .zip) of parquet files

  -h, --help
          Print help (see a summary with '-h')
```

## nomctl ingest mcap

```text
Upload an MCAP file and ingest its protobuf timeseries messages into a dataset

Usage: nomctl ingest mcap [OPTIONS] <--dataset <RID>|--name <NAME>> <PATH>

Arguments:
  <PATH>
          Path to the file to upload

Options:
      --dataset <RID>
          Existing dataset RID to ingest into

      --name <NAME>
          Name for a new dataset created atomically with the ingest

      --description <DESCRIPTION>
          Description for the new dataset. Requires --name

      --label <LABEL>
          Add a label to the new dataset. Repeatable. Requires --name

      --property <KEY> <VALUE>
          Add a property to the new dataset as KEY VALUE. Repeatable. Requires --name

      --no-wait
          Skip waiting for the ingest job to finish; print the ingest job RID and return immediately. Otherwise the command blocks until the job reaches a terminal state and prints the resulting dataset RID

      --include-topic <TOPIC>
          Only ingest the given topic. Repeatable. Mutually exclusive with --exclude-topic

      --exclude-topic <TOPIC>
          Skip the given topic during ingest. Repeatable. Mutually exclusive with --include-topic

      --file-tag <KEY> <VALUE>
          Apply a fixed tag to every point: --file-tag KEY VALUE. Repeatable

      --ignore-invalid-topics
          Skip invalid topics instead of failing the ingest

  -h, --help
          Print help
```

## nomctl ingest journal-json

```text
Upload a journald JSON (.jsonl / .jsonl.gz) file and ingest it

Usage: nomctl ingest journal-json [OPTIONS] <--dataset <RID>|--name <NAME>> <PATH>

Arguments:
  <PATH>
          Path to the file to upload

Options:
      --dataset <RID>
          Existing dataset RID to ingest into

      --name <NAME>
          Name for a new dataset created atomically with the ingest

      --description <DESCRIPTION>
          Description for the new dataset. Requires --name

      --label <LABEL>
          Add a label to the new dataset. Repeatable. Requires --name

      --property <KEY> <VALUE>
          Add a property to the new dataset as KEY VALUE. Repeatable. Requires --name

      --no-wait
          Skip waiting for the ingest job to finish; print the ingest job RID and return immediately. Otherwise the command blocks until the job reaches a terminal state and prints the resulting dataset RID

      --channel <NAME>
          Channel name to land log lines in. Defaults to 'logs' server-side

  -h, --help
          Print help
```

## nomctl ingest avro-stream

```text
Upload a Nominal Avro-stream (.avro) file and ingest it

Usage: nomctl ingest avro-stream [OPTIONS] <--dataset <RID>|--name <NAME>> <PATH>

Arguments:
  <PATH>
          Path to the file to upload

Options:
      --dataset <RID>
          Existing dataset RID to ingest into

      --name <NAME>
          Name for a new dataset created atomically with the ingest

      --description <DESCRIPTION>
          Description for the new dataset. Requires --name

      --label <LABEL>
          Add a label to the new dataset. Repeatable. Requires --name

      --property <KEY> <VALUE>
          Add a property to the new dataset as KEY VALUE. Repeatable. Requires --name

      --no-wait
          Skip waiting for the ingest job to finish; print the ingest job RID and return immediately. Otherwise the command blocks until the job reaches a terminal state and prints the resulting dataset RID

  -h, --help
          Print help
```

## nomctl ingest ardupilot-dataflash

```text
Upload an ArduPilot DataFlash (.bin) file and ingest it

Usage: nomctl ingest ardupilot-dataflash [OPTIONS] <--dataset <RID>|--name <NAME>> <PATH>

Arguments:
  <PATH>
          Path to the file to upload

Options:
      --dataset <RID>
          Existing dataset RID to ingest into

      --name <NAME>
          Name for a new dataset created atomically with the ingest

      --description <DESCRIPTION>
          Description for the new dataset. Requires --name

      --label <LABEL>
          Add a label to the new dataset. Repeatable. Requires --name

      --property <KEY> <VALUE>
          Add a property to the new dataset as KEY VALUE. Repeatable. Requires --name

      --no-wait
          Skip waiting for the ingest job to finish; print the ingest job RID and return immediately. Otherwise the command blocks until the job reaches a terminal state and prints the resulting dataset RID

      --file-tag <KEY> <VALUE>
          Apply a fixed tag to every point: --file-tag KEY VALUE. Repeatable

  -h, --help
          Print help
```

## nomctl ingest video

```text
Upload a video file (.mp4 / .mkv / .avi / .ts) and ingest it

Usage: nomctl ingest video [OPTIONS] --start <RFC3339> <--video <RID>|--name <NAME>> <PATH>

Arguments:
  <PATH>
          Path to the file to upload

Options:
      --video <RID>
          Existing video RID to ingest into

      --name <NAME>
          Name for a new video resource created atomically with the ingest

      --description <DESCRIPTION>
          Description for the new video. Requires --name

      --label <LABEL>
          Add a label to the new video. Repeatable. Requires --name

      --property <KEY> <VALUE>
          Add a property to the new video as KEY VALUE. Repeatable. Requires --name

      --no-wait
          Skip waiting for the ingest job to finish; print the ingest job RID and return immediately. Otherwise the command blocks until the job reaches a terminal state and prints the resulting video RID

      --start <RFC3339>
          RFC3339 timestamp of the first frame

  -h, --help
          Print help
```

## nomctl ingest mcap-video

```text
Upload an MCAP file and ingest a single video stream from it by topic

Usage: nomctl ingest mcap-video [OPTIONS] --topic <TOPIC> <--video <RID>|--name <NAME>> <PATH>

Arguments:
  <PATH>
          Path to the file to upload

Options:
      --video <RID>
          Existing video RID to ingest into

      --name <NAME>
          Name for a new video resource created atomically with the ingest

      --description <DESCRIPTION>
          Description for the new video. Requires --name

      --label <LABEL>
          Add a label to the new video. Repeatable. Requires --name

      --property <KEY> <VALUE>
          Add a property to the new video as KEY VALUE. Repeatable. Requires --name

      --no-wait
          Skip waiting for the ingest job to finish; print the ingest job RID and return immediately. Otherwise the command blocks until the job reaches a terminal state and prints the resulting video RID

      --topic <TOPIC>
          MCAP topic carrying the single video stream to ingest

  -h, --help
          Print help
```
