Skip to content

Commit

Permalink
Fix readme
Browse files Browse the repository at this point in the history
  • Loading branch information
rmoff committed Jul 29, 2020
1 parent a86fdd2 commit 8572dd7
Showing 1 changed file with 69 additions and 2 deletions.
71 changes: 69 additions & 2 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,78 @@ go get -u github.com/rmoff/ksqldb-go

== Examples

See link:test/environment.adoc[test environment here] that accompanies this code
See the link:test/environment.adoc[test environment here], and link:test/main.go[this sample code] which you can run with

[source,bash]
----
go run ./test/
----

=== Pull query

[source,go]
----
k := "SELECT TIMESTAMPTOSTRING(WINDOWSTART,'yyyy-MM-dd HH:mm:ss','Europe/London') AS WINDOW_START, TIMESTAMPTOSTRING(WINDOWEND,'HH:mm:ss','Europe/London') AS WINDOW_END, DOG_SIZE, DOGS_CT FROM DOGS_BY_SIZE WHERE DOG_SIZE='" + s + "';"
m, e := ksqldb.Pull(ksqlDBServer, k)
if e != nil {
// handle the error better here, e.g. check for no rows returned
return fmt.Errorf("Error running Pull request against ksqlDB:\n%v", e)
}
var WINDOW_START string
var WINDOW_END string
var DOG_SIZE string
var DOGS_CT float64
for _, msg := range m {
if r := msg.Row.Columns; r != nil {
WINDOW_START = r[0].(string)
WINDOW_END = r[1].(string)
DOG_SIZE = r[2].(string)
DOGS_CT = r[3].(float64)
fmt.Printf("🐶 There are %v dogs size %v between %v and %v\n", DOGS_CT, DOG_SIZE, WINDOW_START, WINDOW_END)
}
}
----

=== Push query

[source,go]
----
include::test/main.go[]
rc := make(chan ksqldb.KsqlDBMessageRow)
k := "SELECT ROWTIME, ID, NAME, DOGSIZE, AGE FROM DOGS EMIT CHANGES;"
var DATA_TS float64
var ID string
var NAME string
var DOG_SIZE string
var AGE string
go func() {
for row := range rc {
if r := row.Row.Columns; r != nil {
DATA_TS = r[0].(float64)
ID = r[1].(string)
NAME = r[2].(string)
DOG_SIZE = r[3].(string)
AGE = r[4].(string)
// Handle the timestamp
t := int64(DATA_TS)
ts := time.Unix(t/1000, 0).Format(time.RFC822)
log.Printf("🐾New dog logged at %v: %v is %v and %v (id %v)", ts, NAME, DOG_SIZE, AGE, ID)
}
}
}()
e := ksqldb.Push(ksqlDBServer, k, rc)
if e != nil {
// handle the error better here, e.g. check for no rows returned
return fmt.Errorf("Error running Push request against ksqlDB:\n%v", e)
}
----


Expand Down

0 comments on commit 8572dd7

Please sign in to comment.