anchor.diff:  
   [source,sql]
   ----
  -2018-06-20 15:19:00 | bronze | 27
  -2018-06-20 15:20:00 | bronze | 22
  -2018-06-20 15:21:00 | bronze | 23
  -2018-06-20 15:22:00 | bronze | 22
  -2018-06-20 15:23:00 | bronze | 28
  +bronze : Window{start=1535986740000 end=-} | bronze | 23
  +bronze : Window{start=1535986800000 end=-} | bronze | 22
  +bronze : Window{start=1535986860000 end=-} | bronze | 35
  +bronze : Window{start=1535986920000 end=-} | bronze | 25
  +bronze : Window{start=1535986980000 end=-} | bronze | 30
   ----
   
   If you let the `SELECT` output continue to run, you'll see all of the past time window aggregate values—but also the current one. Note that the _current_ time window's aggregate value will continue to update, because new events are being continually processed and reflected in the value. If you were to send an event to the source `ratings` topic with a timestamp in the past, the corresponding time window's aggregate would be re-emitted.
  
positive.code:     "connection.url": "http://elasticsearch:9200",
      "transforms": "ExtractTimestamp",
      "transforms.ExtractTimestamp.type": "org.apache.kafka.connect.transforms.InsertField$Value",
      "transforms.ExtractTimestamp.timestamp.field" : "EXTRACT_TS"
    }
  }'
  ----
  
  Use the Kibana interface to check that docs are arriving in Elasticsearch:
  
  image::images/kibana_01.png[]
  
  
negative.code: [source,bash]
  ----
  $ docker-compose down
  Stopping ksql-workshop_ksql-server_1     ... done
  Stopping ksql-workshop_datagen-ratings_1 ... done
  Stopping ksql-workshop_schema-registry_1 ... done
  Stopping ksql-workshop_kafka_1           ... done
  Stopping ksql-workshop_zookeeper_1       ... done
  Removing ksql-workshop_ksql-server_1     ... done
  Removing ksql-workshop_datagen-ratings_1 ... done
  Removing ksql-workshop_schema-registry_1 ... done
  