Documentation
¶
Index ¶
- Constants
- func CreateResponse(req simpleJSONRequestInterface, ch chan frames.Frame) (interface{}, error)
- type Client
- func (c *Client) Create(request *pb.CreateRequest) error
- func (c *Client) Delete(request *pb.DeleteRequest) error
- func (c *Client) Exec(request *pb.ExecRequest) (frames.Frame, error)
- func (c *Client) Read(request *pb.ReadRequest) (frames.FrameIterator, error)
- func (c *Client) Write(request *frames.WriteRequest) (frames.FrameAppender, error)
- type Server
Examples ¶
Constants ¶
View Source
const AccessKeyUser = "__ACCESS_KEY"
Variables ¶
This section is empty.
Functions ¶
func CreateResponse ¶
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is v3io HTTP streaming client
Example ¶
package main
import (
"fmt"
"time"
"github.com/v3io/frames"
"github.com/v3io/frames/pb"
)
func main() {
tableName := "example_table"
url := "http://localhost:8080"
fmt.Println(">>> connecting")
// nil, nil are session and logger
client, err := NewClient(url, nil, nil)
if err != nil {
fmt.Printf("can't connect to %q - %s", url, err)
return
}
frame, err := makeFrame()
if err != nil {
fmt.Printf("can't create frame - %s", err)
return
}
fmt.Println(">>> writing")
writeReq := &frames.WriteRequest{
Backend: "weather",
Table: tableName,
}
appender, err := client.Write(writeReq)
if err != nil {
if err != nil {
fmt.Printf("can't write - %s", err)
return
}
}
if err := appender.Add(frame); err != nil {
fmt.Printf("can't write frame - %s", err)
return
}
if err := appender.WaitForComplete(10 * time.Second); err != nil {
fmt.Printf("can't wait - %s", err)
return
}
fmt.Println(">>> reading")
readReq := &pb.ReadRequest{
Backend: "weather",
Table: tableName,
MessageLimit: 100,
}
it, err := client.Read(readReq)
if err != nil {
fmt.Printf("can't query - %s", err)
return
}
for it.Next() {
frame := it.At()
fmt.Println(frame.Names())
fmt.Printf("%d rows\n", frame.Len())
fmt.Println("-----------")
}
if err := it.Err(); err != nil {
fmt.Printf("error in iterator - %s", err)
return
}
}
func makeFrame() (frames.Frame, error) {
size := 1027
now := time.Now()
idata := make([]int64, size)
fdata := make([]float64, size)
sdata := make([]string, size)
tdata := make([]time.Time, size)
for i := 0; i < size; i++ {
idata[i] = int64(i)
fdata[i] = float64(i)
sdata[i] = fmt.Sprintf("val%d", i)
tdata[i] = now.Add(time.Duration(i) * time.Second)
}
columns := map[string]interface{}{
"ints": idata,
"floats": fdata,
"strings": sdata,
"times": tdata,
}
return frames.NewFrameFromMap(columns, nil)
}
func (*Client) Create ¶
func (c *Client) Create(request *pb.CreateRequest) error
Create creates a table
func (*Client) Delete ¶
func (c *Client) Delete(request *pb.DeleteRequest) error
Delete deletes data
func (*Client) Read ¶
func (c *Client) Read(request *pb.ReadRequest) (frames.FrameIterator, error)
Read runs a query on the client
func (*Client) Write ¶
func (c *Client) Write(request *frames.WriteRequest) (frames.FrameAppender, error)
Write writes data
type Server ¶
type Server struct {
*frames.ServerBase
// contains filtered or unexported fields
}
Server is HTTP server
Example ¶
package main
import (
"fmt"
"time"
"github.com/ghodss/yaml"
"github.com/v3io/frames"
)
var configData = []byte(`
log:
level: "info"
backends:
- type: "kv"
`)
func main() {
cfg := &frames.Config{}
if err := yaml.Unmarshal(configData, cfg); err != nil {
fmt.Printf("error: can't read config - %s", err)
return
}
srv, err := NewServer(cfg, ":8080", nil, nil, "")
if err != nil {
fmt.Printf("error: can't create server - %s", err)
return
}
if err = srv.Start(); err != nil {
fmt.Printf("error: can't start server - %s", err)
return
}
fmt.Println("server running")
for {
time.Sleep(60 * time.Second)
}
}
Click to show internal directories.
Click to hide internal directories.