# SQL Processors

The CLI can create, modify, pause, restart and remove Lenses SQL Processors.

## View processors <a href="#view-processors" id="view-processors"></a>

View all processors registered. Optionally filter by name, cluster and namespace.

```bash
lenses-cli processors
# filter by namespace
lenses-cli processors --namespace lenses-sql

# Please note the following columns in the table: 
# * 'ID' which should be used as the 'id' required for the commands below.
# * 'PROCESSORID' , which the user may have configured in creating the processor, and will be used as the consumer group of the processor.
```

## Create processors <a href="#create-processors" id="create-processors"></a>

For IN\_PROC you only need the name, for KUBERNETES all three. Creating an IN\_PROC processor will start it automatically. This is not the case for Kubernetes deployments, a start command (see below) is required once created.

* `--id` (the processor id, optional)
* `--name` (optional)
* `--cluster-name` (should be passed if `KUBERNETES`)
* `--namespace` (should be passed if `KUBERNETES`)
* `--runners` (number of times to deploy while in `KUBERNETES`)

```bash
lenses-cli processor create \
    --name="processorName" \
    --runners=1 \
    --cluster-name="clusterName" \
    --namespace="ns" \
    --pipeline="prod" \
    --sql="SET defaults.topic.autocreate=true;INSERT INTO topicB SELECT STREAM * FROM topic1"

```

From a file:

```bash
lenses-cli processor create ./processor.yaml
```

```yaml
name: processorName
runners: 1
sql: |-
    SET defaults.topic.autocreate=true;INSERT INTO topicB SELECT STREAM * FROM topic1
```

## Stop a processor <a href="#stop-a-processor" id="stop-a-processor"></a>

For `IN_PROC` you only need the name, for `KUBERNETES` all three:

```bash
lenses-cli processor stop \
    --cluster-name="clusterName?" \
    --namespace="namespace?" \
    --name="processorName"
```

## Start a processor <a href="#start-a-processor" id="start-a-processor"></a>

For `IN_PROC` you only need the name, for `KUBERNETES` all three:

```bash
lenses-cli processor start \
    --cluster-name="clusterName?" \
    --namespace="namespace?" \
    --name="processorName"
```

## Update the number of runners <a href="#update-a-processor-runners" id="update-a-processor-runners"></a>

Update a processor from the command line flags or files. **Only for `KUBERNETES`:**

```bash
lenses-cli processor update \
    --cluster-name="clusterName?" \
    --namespace="namespace" \
    --name="processorName" \
    --runners=2

```

From a file.

```bash
lenses-cli processor update ./processor.yaml
```

```yaml
name: processorName
runners: 1
sql: |-
    SET defaults.topic.autocreate=true;INSERT INTO topicB SELECT STREAM * FROM topic1
```

## Delete a processor <a href="#delete-a-processor" id="delete-a-processor"></a>

Delete a processor by name, cluster and namespace. For `IN_PROC` you only need the name, and for `KUBERNETES` all 3 (name, cluster, namespace).

```bash
lenses-cli processor delete \
    --namespace="namespace" \
    --cluster-name="clusterName" \
    --name="processorName
```

## View processors logs <a href="#view-processors-logs" id="view-processors-logs"></a>

**Available only for `KUBERNETES`**.

```bash
lenses-cli processors logs \
    --cluster-name=clusterName \
    --namespace=nameSpace \
    --podName=runnerStateID [--follow --lines]
```
