作者:GoogleCloudPlatfor
项目:golang-sample
// Query returns a slice of the results of a query.
func Query(proj, q string) ([][]bigquery.Value, error) {
ctx := context.Background()
client, err := bigquery.NewClient(ctx, proj)
if err != nil {
return nil, err
}
query := client.Query(q)
iter, err := query.Read(ctx)
if err != nil {
return nil, err
}
var rows [][]bigquery.Value
for {
var row []bigquery.Value
err := iter.Next(&row)
if err == iterator.Done {
return rows, nil
}
if err != nil {
return nil, err
}
rows = append(rows, row)
}
}
作者:GoogleCloudPlatfor
项目:gcloud-golan
func ExampleTable_LoaderFrom_reader() {
ctx := context.Background()
client, err := bigquery.NewClient(ctx, "project-id")
if err != nil {
// TODO: Handle error.
}
f, err := os.Open("data.csv")
if err != nil {
// TODO: Handle error.
}
rs := bigquery.NewReaderSource(f)
rs.AllowJaggedRows = true
// TODO: set other options on the GCSReference.
ds := client.Dataset("my_dataset")
loader := ds.Table("my_table").LoaderFrom(rs)
loader.CreateDisposition = bigquery.CreateNever
// TODO: set other options on the Loader.
job, err := loader.Run(ctx)
if err != nil {
// TODO: Handle error.
}
status, err := job.Wait(ctx)
if err != nil {
// TODO: Handle error.
}
if status.Err() != nil {
// TODO: Handle error.
}
}
作者:GoogleCloudPlatfor
项目:gcloud-golan
func ExampleRowIterator_Next_struct() {
ctx := context.Background()
client, err := bigquery.NewClient(ctx, "project-id")
if err != nil {
// TODO: Handle error.
}
type score struct {
Name string
Num int
}
q := client.Query("select name, num from t1")
it, err := q.Read(ctx)
if err != nil {
// TODO: Handle error.
}
for {
var s score
err := it.Next(&s)
if err == iterator.Done {
break
}
if err != nil {
// TODO: Handle error.
}
fmt.Println(s)
}
}
作者:GoogleCloudPlatfor
项目:gcloud-golan
func ExampleTable_LoaderFrom() {
ctx := context.Background()
client, err := bigquery.NewClient(ctx, "project-id")
if err != nil {
// TODO: Handle error.
}
gcsRef := bigquery.NewGCSReference("gs://my-bucket/my-object")
gcsRef.AllowJaggedRows = true
// TODO: set other options on the GCSReference.
ds := client.Dataset("my_dataset")
loader := ds.Table("my_table").LoaderFrom(gcsRef)
loader.CreateDisposition = bigquery.CreateNever
// TODO: set other options on the Loader.
job, err := loader.Run(ctx)
if err != nil {
// TODO: Handle error.
}
status, err := job.Wait(ctx)
if err != nil {
// TODO: Handle error.
}
if status.Err() != nil {
// TODO: Handle error.
}
}
作者:GoogleCloudPlatfor
项目:gcloud-golan
func ExampleTable_ExtractorTo() {
ctx := context.Background()
client, err := bigquery.NewClient(ctx, "project-id")
if err != nil {
// TODO: Handle error.
}
gcsRef := bigquery.NewGCSReference("gs://my-bucket/my-object")
gcsRef.FieldDelimiter = ":"
// TODO: set other options on the GCSReference.
ds := client.Dataset("my_dataset")
extractor := ds.Table("my_table").ExtractorTo(gcsRef)
extractor.DisableHeader = true
// TODO: set other options on the Extractor.
job, err := extractor.Run(ctx)
if err != nil {
// TODO: Handle error.
}
status, err := job.Wait(ctx)
if err != nil {
// TODO: Handle error.
}
if status.Err() != nil {
// TODO: Handle error.
}
}
作者:trything
项目:trything
func main() {
flag.Parse()
flagsOk := true
for _, f := range []string{"project", "dataset", "q"} {
if flag.Lookup(f).Value.String() == "" {
fmt.Fprintf(os.Stderr, "Flag --%s is required\n", f)
flagsOk = false
}
}
if !flagsOk {
os.Exit(1)
}
ctx := context.Background()
client, err := bigquery.NewClient(ctx, *project)
if err != nil {
log.Fatalf("Creating bigquery client: %v", err)
}
query := client.Query(*q)
query.DefaultProjectID = *project
query.DefaultDatasetID = *dataset
query.WriteDisposition = bigquery.WriteTruncate
if *dest != "" {
query.Dst = client.Dataset(*dataset).Table(*dest)
}
// Query data.
job, err := query.Run(ctx)
if err != nil {
log.Fatalf("Querying: %v", err)
}
fmt.Printf("Submitted query. Job ID: %s\n", job.ID())
if !*wait {
return
}
fmt.Printf("Waiting for job to complete.\n")
for range time.Tick(*pollint) {
status, err := job.Status(ctx)
if err != nil {
fmt.Printf("Failure determining status: %v", err)
break
}
if !status.Done() {
continue
}
if err := status.Err(); err == nil {
fmt.Printf("Success\n")
} else {
fmt.Printf("Failure: %+v\n", err)
}
break
}
}
作者:GoogleCloudPlatfor
项目:gcloud-golan
func ExampleNewClient() {
ctx := context.Background()
client, err := bigquery.NewClient(ctx, "project-id")
if err != nil {
// TODO: Handle error.
}
_ = client // TODO: Use client.
}
作者:GoogleCloudPlatfor
项目:gcloud-golan
func ExampleClient_DatasetInProject() {
ctx := context.Background()
client, err := bigquery.NewClient(ctx, "project-id")
if err != nil {
// TODO: Handle error.
}
ds := client.DatasetInProject("their-project-id", "their-dataset")
fmt.Println(ds)
}
作者:GoogleCloudPlatfor
项目:gcloud-golan
func ExampleTable_Uploader() {
ctx := context.Background()
client, err := bigquery.NewClient(ctx, "project-id")
if err != nil {
// TODO: Handle error.
}
u := client.Dataset("my_dataset").Table("my_table").Uploader()
_ = u // TODO: Use u.
}
作者:GoogleCloudPlatfor
项目:gcloud-golan
func ExampleClient_DatasetsInProject() {
ctx := context.Background()
client, err := bigquery.NewClient(ctx, "project-id")
if err != nil {
// TODO: Handle error.
}
it := client.DatasetsInProject(ctx, "their-project-id")
_ = it // TODO: iterate using Next or iterator.Pager.
}
作者:GoogleCloudPlatfor
项目:gcloud-golan
func ExampleTable_Read() {
ctx := context.Background()
client, err := bigquery.NewClient(ctx, "project-id")
if err != nil {
// TODO: Handle error.
}
it := client.Dataset("my_dataset").Table("my_table").Read(ctx)
_ = it // TODO: iterate using Next or iterator.Pager.
}
作者:GoogleCloudPlatfor
项目:gcloud-golan
func ExampleTable_Delete() {
ctx := context.Background()
client, err := bigquery.NewClient(ctx, "project-id")
if err != nil {
// TODO: Handle error.
}
if err := client.Dataset("my_dataset").Table("my_table").Delete(ctx); err != nil {
// TODO: Handle error.
}
}
作者:GoogleCloudPlatfor
项目:gcloud-golan
func ExampleTable_Uploader_options() {
ctx := context.Background()
client, err := bigquery.NewClient(ctx, "project-id")
if err != nil {
// TODO: Handle error.
}
u := client.Dataset("my_dataset").Table("my_table").Uploader()
u.SkipInvalidRows = true
u.IgnoreUnknownValues = true
_ = u // TODO: Use u.
}
作者:GoogleCloudPlatfor
项目:gcloud-golan
func ExampleDataset_Table() {
ctx := context.Background()
client, err := bigquery.NewClient(ctx, "project-id")
if err != nil {
// TODO: Handle error.
}
// Table creates a reference to the table. It does not create the actual
// table in BigQuery; to do so, use Table.Create.
t := client.Dataset("my_dataset").Table("my_table")
fmt.Println(t)
}
作者:GoogleCloudPlatfor
项目:gcloud-golan
func ExampleClient_Query() {
ctx := context.Background()
client, err := bigquery.NewClient(ctx, "project-id")
if err != nil {
// TODO: Handle error.
}
q := client.Query("select name, num from t1")
q.DefaultProjectID = "project-id"
// TODO: set other options on the Query.
// TODO: Call Query.Run or Query.Read.
}
作者:rawlings
项目:gofabric
func main() {
flag.Parse()
flagsOk := true
for _, f := range []string{"project", "dataset", "src1", "src2", "dest"} {
if flag.Lookup(f).Value.String() == "" {
fmt.Fprintf(os.Stderr, "Flag --%s is required\n", f)
flagsOk = false
}
}
if !flagsOk {
os.Exit(1)
}
if *src1 == *src2 || *src1 == *dest || *src2 == *dest {
log.Fatalf("Different values must be supplied for each of --src1, --src2 and --dest")
}
ctx := context.Background()
client, err := bigquery.NewClient(ctx, *project)
if err != nil {
log.Fatalf("Creating bigquery client: %v", err)
}
s1 := client.Dataset(*dataset).Table(*src1)
s2 := client.Dataset(*dataset).Table(*src2)
d := client.Dataset(*dataset).Table(*dest)
// Concatenate data.
job, err := client.Copy(ctx, d, bigquery.Tables{s1, s2}, bigquery.WriteTruncate)
if err != nil {
log.Fatalf("Concatenating: %v", err)
}
fmt.Printf("Job for concatenation operation: %+v\n", job)
fmt.Printf("Waiting for job to complete.\n")
for range time.Tick(*pollint) {
status, err := job.Status(ctx)
if err != nil {
fmt.Printf("Failure determining status: %v", err)
break
}
if !status.Done() {
continue
}
if err := status.Err(); err == nil {
fmt.Printf("Success\n")
} else {
fmt.Printf("Failure: %+v\n", err)
}
break
}
}
作者:GoogleCloudPlatfor
项目:gcloud-golan
func ExampleTable_Metadata() {
ctx := context.Background()
client, err := bigquery.NewClient(ctx, "project-id")
if err != nil {
// TODO: Handle error.
}
md, err := client.Dataset("my_dataset").Table("my_table").Metadata(ctx)
if err != nil {
// TODO: Handle error.
}
fmt.Println(md)
}
作者:GoogleCloudPlatfor
项目:golang-sample
func TestAll(t *testing.T) {
tc := testutil.SystemTest(t)
ctx := context.Background()
client, err := bigquery.NewClient(ctx, tc.ProjectID)
if err != nil {
t.Fatal(err)
}
datasetID := fmt.Sprintf("golang_example_dataset_%d", time.Now().Unix())
if err := createDataset(client, datasetID); err != nil {
t.Errorf("failed to create dataset: %v", err)
}
if err := listDatasets(client); err != nil {
t.Errorf("failed to create dataset: %v", err)
}
tableID := fmt.Sprintf("golang_example_table_%d", time.Now().Unix())
if err := createTable(client, datasetID, tableID); err != nil {
t.Errorf("failed to create table: %v", err)
}
buf := &bytes.Buffer{}
if err := listTables(client, buf, datasetID); err != nil {
t.Errorf("failed to list tables: %v", err)
}
if got := buf.String(); !strings.Contains(got, tableID) {
t.Errorf("want table list %q to contain table %q", got, tableID)
}
if err := insertRows(client, datasetID, tableID); err != nil {
t.Errorf("failed to insert rows: %v", err)
}
if err := listRows(client, datasetID, tableID); err != nil {
t.Errorf("failed to list rows: %v", err)
}
if err := browseTable(client, datasetID, tableID); err != nil {
t.Errorf("failed to list rows: %v", err)
}
if err := asyncQuery(client, datasetID, tableID); err != nil {
t.Errorf("failed to async query: %v", err)
}
dstTableID := fmt.Sprintf("golang_example_tabledst_%d", time.Now().Unix())
if err := copyTable(client, datasetID, tableID, dstTableID); err != nil {
t.Errorf("failed to copy table: %v", err)
}
if err := deleteTable(client, datasetID, tableID); err != nil {
t.Errorf("failed to delete table: %v", err)
}
if err := deleteTable(client, datasetID, dstTableID); err != nil {
t.Errorf("failed to delete table: %v", err)
}
deleteDataset(t, ctx, datasetID)
}
作者:GoogleCloudPlatfor
项目:golang-sample
func TestImportExport(t *testing.T) {
tc := testutil.SystemTest(t)
ctx := context.Background()
client, err := bigquery.NewClient(ctx, tc.ProjectID)
if err != nil {
t.Fatal(err)
}
storageClient, err := storage.NewClient(ctx)
if err != nil {
t.Fatal(err)
}
datasetID := fmt.Sprintf("golang_example_dataset_importexport_%d", time.Now().Unix())
tableID := fmt.Sprintf("golang_example_dataset_importexport_%d", time.Now().Unix())
if err := createDataset(client, datasetID); err != nil {
t.Errorf("failed to create dataset: %v", err)
}
schema := bigquery.Schema{
&bigquery.FieldSchema{Name: "Year", Type: bigquery.IntegerFieldType},
&bigquery.FieldSchema{Name: "City", Type: bigquery.StringFieldType},
}
if err := client.Dataset(datasetID).Table(tableID).Create(ctx, schema); err != nil {
t.Errorf("failed to create dataset: %v", err)
}
defer deleteDataset(t, ctx, datasetID)
if err := importFromFile(client, datasetID, tableID, "testdata/olympics.csv"); err != nil {
t.Fatalf("failed to import from file: %v", err)
}
bucket := fmt.Sprintf("golang-example-bigquery-importexport-bucket-%d", time.Now().Unix())
const object = "values.csv"
if err := storageClient.Bucket(bucket).Create(ctx, tc.ProjectID, nil); err != nil {
t.Fatalf("cannot create bucket: %v", err)
}
gcsURI := fmt.Sprintf("gs://%s/%s", bucket, object)
if err := exportToGCS(client, datasetID, tableID, gcsURI); err != nil {
t.Errorf("failed to export to %v: %v", gcsURI, err)
}
// Cleanup the bucket and object.
if err := storageClient.Bucket(bucket).Object(object).Delete(ctx); err != nil {
t.Errorf("failed to cleanup the GCS object: %v", err)
}
time.Sleep(time.Second) // Give it a second, due to eventual consistency.
if err := storageClient.Bucket(bucket).Delete(ctx); err != nil {
t.Errorf("failed to cleanup the GCS bucket: %v", err)
}
}
作者:GoogleCloudPlatfor
项目:gcloud-golan
func ExampleQuery_Read() {
ctx := context.Background()
client, err := bigquery.NewClient(ctx, "project-id")
if err != nil {
// TODO: Handle error.
}
q := client.Query("select name, num from t1")
it, err := q.Read(ctx)
if err != nil {
// TODO: Handle error.
}
_ = it // TODO: iterate using Next or iterator.Pager.
}