func main() { flag.Parse() c, err := client.NewClient() if err != nil { fmt.Printf("Failed to connect to bigquery\n") panic(err) } c.PrintDatasets() // Create a new dataset. err = c.CreateDataset("sampledataset") if err != nil { fmt.Printf("Failed to create dataset %v\n", err) panic(err) } // Create a new table containerData := container{ Name: "test_container", CpuUsage: 123456, MemoryUsage: 1024, NetworkUsage: 9046, Timestamp: time.Now(), } schema, err := bqschema.ToSchema(containerData) if err != nil { fmt.Printf("Failed to create schema") panic(err) } err = c.CreateTable("sampletable", schema) if err != nil { fmt.Printf("Failed to create table") panic(err) } // Add Data m := make(map[string]interface{}) t := time.Now() for i := 0; i < 10; i++ { m["Name"] = containerData.Name m["CpuUsage"] = containerData.CpuUsage + uint64(i*100) m["MemoryUsage"] = containerData.MemoryUsage - uint64(i*10) m["NetworkUsage"] = containerData.NetworkUsage + uint64(i*10) m["Timestamp"] = t.Add(time.Duration(i) * time.Second) err = c.InsertRow(m) if err != nil { fmt.Printf("Failed to insert row") panic(err) } } }
Name: "D", Type: "boolean", }, }, }, }, }, "should convert pointers to structs of points to structs of simple types", }, } for _, data := range table { object := data[0] schema := data[1] It(data[2].(string), func() { result, err := bqschema.ToSchema(object) Expect(err).To(BeNil()) Expect(reflect.DeepEqual(schema, *result)).To(BeTrue()) }) } }) Context("when converting invalid items to Big Query Table Schema", func() { table := [][]interface{}{ []interface{}{ 1, bqschema.NotStruct, "not convert ints to schema", }, []interface{}{ 1.0,
func main() { flag.Parse() c, err := client.NewClient() if err != nil { fmt.Printf("Failed to connect to bigquery\n") panic(err) } c.PrintDatasets() // Create a new dataset. err = c.CreateDataset("sampledataset") if err != nil { fmt.Printf("Failed to create dataset %v\n", err) panic(err) } // Create a new table containerData := container{ Name: "test_container", CpuUsage: 123456, MemoryUsage: 1024, NetworkUsage: 9046, Timestamp: time.Now(), } schema, err := bqschema.ToSchema(containerData) if err != nil { fmt.Printf("Failed to create schema") panic(err) } err = c.CreateTable("sampletable", schema) if err != nil { fmt.Printf("Failed to create table") panic(err) } // Add Data m := make(map[string]interface{}) t := time.Now() for i := 0; i < 10; i++ { m["Name"] = containerData.Name m["CpuUsage"] = containerData.CpuUsage + uint64(i*100) m["MemoryUsage"] = containerData.MemoryUsage - uint64(i*10) m["NetworkUsage"] = containerData.NetworkUsage + uint64(i*10) m["Timestamp"] = t.Add(time.Duration(i) * time.Second) err = c.InsertRow(m) if err != nil { fmt.Printf("Failed to insert row") panic(err) } } // Query tableName, err := c.GetTableName() if err != nil { fmt.Printf("table not set") panic(err) } query := "SELECT * FROM " + tableName + " ORDER BY Timestamp LIMIT 100" header, rows, err := c.Query(query) if err != nil { fmt.Printf("Failed query") panic(err) } fmt.Printf("Headers: %v", header) for _, row := range rows { for i, val := range row { fmt.Printf("%s:%v ", header[i], val) } fmt.Printf("\n") } }