|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829 |
- // Copyright 2016 Google LLC
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
-
- package bigquery_test
-
- import (
- "fmt"
- "os"
- "time"
-
- "cloud.google.com/go/bigquery"
- "golang.org/x/net/context"
- "google.golang.org/api/iterator"
- )
-
- func ExampleNewClient() {
- ctx := context.Background()
- client, err := bigquery.NewClient(ctx, "project-id")
- if err != nil {
- // TODO: Handle error.
- }
- _ = client // TODO: Use client.
- }
-
- func ExampleClient_Dataset() {
- ctx := context.Background()
- client, err := bigquery.NewClient(ctx, "project-id")
- if err != nil {
- // TODO: Handle error.
- }
- ds := client.Dataset("my_dataset")
- fmt.Println(ds)
- }
-
- 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)
- }
-
- func ExampleClient_Datasets() {
- ctx := context.Background()
- client, err := bigquery.NewClient(ctx, "project-id")
- if err != nil {
- // TODO: Handle error.
- }
- it := client.Datasets(ctx)
- _ = it // TODO: iterate using Next or iterator.Pager.
- }
-
- 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.
- }
-
- func getJobID() string { return "" }
-
- func ExampleClient_JobFromID() {
- ctx := context.Background()
- client, err := bigquery.NewClient(ctx, "project-id")
- if err != nil {
- // TODO: Handle error.
- }
- jobID := getJobID() // Get a job ID using Job.ID, the console or elsewhere.
- job, err := client.JobFromID(ctx, jobID)
- if err != nil {
- // TODO: Handle error.
- }
- fmt.Println(job.LastStatus()) // Display the job's status.
- }
-
- func ExampleClient_Jobs() {
- ctx := context.Background()
- client, err := bigquery.NewClient(ctx, "project-id")
- if err != nil {
- // TODO: Handle error.
- }
- it := client.Jobs(ctx)
- it.State = bigquery.Running // list only running jobs.
- _ = it // TODO: iterate using Next or iterator.Pager.
- }
-
- func ExampleNewGCSReference() {
- gcsRef := bigquery.NewGCSReference("gs://my-bucket/my-object")
- fmt.Println(gcsRef)
- }
-
- 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.
- }
-
- func ExampleClient_Query_parameters() {
- ctx := context.Background()
- client, err := bigquery.NewClient(ctx, "project-id")
- if err != nil {
- // TODO: Handle error.
- }
- q := client.Query("select num from t1 where name = @user")
- q.Parameters = []bigquery.QueryParameter{
- {Name: "user", Value: "Elizabeth"},
- }
- // TODO: set other options on the Query.
- // TODO: Call Query.Run or Query.Read.
- }
-
- // This example demonstrates how to run a query job on a table
- // with a customer-managed encryption key. The same
- // applies to load and copy jobs as well.
- func ExampleClient_Query_encryptionKey() {
- ctx := context.Background()
- client, err := bigquery.NewClient(ctx, "project-id")
- if err != nil {
- // TODO: Handle error.
- }
- q := client.Query("select name, num from t1")
- // TODO: Replace this key with a key you have created in Cloud KMS.
- keyName := "projects/P/locations/L/keyRings/R/cryptoKeys/K"
- q.DestinationEncryptionConfig = &bigquery.EncryptionConfig{KMSKeyName: keyName}
- // TODO: set other options on the Query.
- // TODO: Call Query.Run or Query.Read.
- }
-
- 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.
- }
-
- func ExampleRowIterator_Next() {
- 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.
- }
- for {
- var row []bigquery.Value
- err := it.Next(&row)
- if err == iterator.Done {
- break
- }
- if err != nil {
- // TODO: Handle error.
- }
- fmt.Println(row)
- }
- }
-
- 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)
- }
- }
-
- func ExampleJob_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")
- // Call Query.Run to get a Job, then call Read on the job.
- // Note: Query.Read is a shorthand for this.
- job, err := q.Run(ctx)
- if err != nil {
- // TODO: Handle error.
- }
- it, err := job.Read(ctx)
- if err != nil {
- // TODO: Handle error.
- }
- _ = it // TODO: iterate using Next or iterator.Pager.
- }
-
- func ExampleJob_Wait() {
- ctx := context.Background()
- client, err := bigquery.NewClient(ctx, "project-id")
- if err != nil {
- // TODO: Handle error.
- }
- ds := client.Dataset("my_dataset")
- job, err := ds.Table("t1").CopierFrom(ds.Table("t2")).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.
- }
- }
-
- func ExampleJob_Config() {
- ctx := context.Background()
- client, err := bigquery.NewClient(ctx, "project-id")
- if err != nil {
- // TODO: Handle error.
- }
- ds := client.Dataset("my_dataset")
- job, err := ds.Table("t1").CopierFrom(ds.Table("t2")).Run(ctx)
- if err != nil {
- // TODO: Handle error.
- }
- jc, err := job.Config()
- if err != nil {
- // TODO: Handle error.
- }
- copyConfig := jc.(*bigquery.CopyConfig)
- fmt.Println(copyConfig.Dst, copyConfig.CreateDisposition)
- }
-
- func ExampleDataset_Create() {
- ctx := context.Background()
- client, err := bigquery.NewClient(ctx, "project-id")
- if err != nil {
- // TODO: Handle error.
- }
- ds := client.Dataset("my_dataset")
- if err := ds.Create(ctx, &bigquery.DatasetMetadata{Location: "EU"}); err != nil {
- // TODO: Handle error.
- }
- }
-
- func ExampleDataset_Delete() {
- ctx := context.Background()
- client, err := bigquery.NewClient(ctx, "project-id")
- if err != nil {
- // TODO: Handle error.
- }
- if err := client.Dataset("my_dataset").Delete(ctx); err != nil {
- // TODO: Handle error.
- }
- }
-
- func ExampleDataset_Metadata() {
- ctx := context.Background()
- client, err := bigquery.NewClient(ctx, "project-id")
- if err != nil {
- // TODO: Handle error.
- }
- md, err := client.Dataset("my_dataset").Metadata(ctx)
- if err != nil {
- // TODO: Handle error.
- }
- fmt.Println(md)
- }
-
- // This example illustrates how to perform a read-modify-write sequence on dataset
- // metadata. Passing the metadata's ETag to the Update call ensures that the call
- // will fail if the metadata was changed since the read.
- func ExampleDataset_Update_readModifyWrite() {
- ctx := context.Background()
- client, err := bigquery.NewClient(ctx, "project-id")
- if err != nil {
- // TODO: Handle error.
- }
- ds := client.Dataset("my_dataset")
- md, err := ds.Metadata(ctx)
- if err != nil {
- // TODO: Handle error.
- }
- md2, err := ds.Update(ctx,
- bigquery.DatasetMetadataToUpdate{Name: "new " + md.Name},
- md.ETag)
- if err != nil {
- // TODO: Handle error.
- }
- fmt.Println(md2)
- }
-
- // To perform a blind write, ignoring the existing state (and possibly overwriting
- // other updates), pass the empty string as the etag.
- func ExampleDataset_Update_blindWrite() {
- ctx := context.Background()
- client, err := bigquery.NewClient(ctx, "project-id")
- if err != nil {
- // TODO: Handle error.
- }
- md, err := client.Dataset("my_dataset").Update(ctx, bigquery.DatasetMetadataToUpdate{Name: "blind"}, "")
- if err != nil {
- // TODO: Handle error.
- }
- fmt.Println(md)
- }
-
- 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)
- }
-
- func ExampleDataset_Tables() {
- ctx := context.Background()
- client, err := bigquery.NewClient(ctx, "project-id")
- if err != nil {
- // TODO: Handle error.
- }
- it := client.Dataset("my_dataset").Tables(ctx)
- _ = it // TODO: iterate using Next or iterator.Pager.
- }
-
- func ExampleDatasetIterator_Next() {
- ctx := context.Background()
- client, err := bigquery.NewClient(ctx, "project-id")
- if err != nil {
- // TODO: Handle error.
- }
- it := client.Datasets(ctx)
- for {
- ds, err := it.Next()
- if err == iterator.Done {
- break
- }
- if err != nil {
- // TODO: Handle error.
- }
- fmt.Println(ds)
- }
- }
-
- func ExampleInferSchema() {
- type Item struct {
- Name string
- Size float64
- Count int
- }
- schema, err := bigquery.InferSchema(Item{})
- if err != nil {
- fmt.Println(err)
- // TODO: Handle error.
- }
- for _, fs := range schema {
- fmt.Println(fs.Name, fs.Type)
- }
- // Output:
- // Name STRING
- // Size FLOAT
- // Count INTEGER
- }
-
- func ExampleInferSchema_tags() {
- type Item struct {
- Name string
- Size float64
- Count int `bigquery:"number"`
- Secret []byte `bigquery:"-"`
- Optional bigquery.NullBool
- OptBytes []byte `bigquery:",nullable"`
- }
- schema, err := bigquery.InferSchema(Item{})
- if err != nil {
- fmt.Println(err)
- // TODO: Handle error.
- }
- for _, fs := range schema {
- fmt.Println(fs.Name, fs.Type, fs.Required)
- }
- // Output:
- // Name STRING true
- // Size FLOAT true
- // number INTEGER true
- // Optional BOOLEAN false
- // OptBytes BYTES false
- }
-
- func ExampleTable_Create() {
- ctx := context.Background()
- client, err := bigquery.NewClient(ctx, "project-id")
- if err != nil {
- // TODO: Handle error.
- }
- t := client.Dataset("my_dataset").Table("new-table")
- if err := t.Create(ctx, nil); err != nil {
- // TODO: Handle error.
- }
- }
-
- // Initialize a new table by passing TableMetadata to Table.Create.
- func ExampleTable_Create_initialize() {
- ctx := context.Background()
- // Infer table schema from a Go type.
- schema, err := bigquery.InferSchema(Item{})
- if err != nil {
- // TODO: Handle error.
- }
- client, err := bigquery.NewClient(ctx, "project-id")
- if err != nil {
- // TODO: Handle error.
- }
- t := client.Dataset("my_dataset").Table("new-table")
- if err := t.Create(ctx,
- &bigquery.TableMetadata{
- Name: "My New Table",
- Schema: schema,
- ExpirationTime: time.Now().Add(24 * time.Hour),
- }); err != nil {
- // TODO: Handle error.
- }
- }
-
- // This example demonstrates how to create a table with
- // a customer-managed encryption key.
- func ExampleTable_Create_encryptionKey() {
- ctx := context.Background()
- // Infer table schema from a Go type.
- schema, err := bigquery.InferSchema(Item{})
- if err != nil {
- // TODO: Handle error.
- }
- client, err := bigquery.NewClient(ctx, "project-id")
- if err != nil {
- // TODO: Handle error.
- }
- t := client.Dataset("my_dataset").Table("new-table")
-
- // TODO: Replace this key with a key you have created in Cloud KMS.
- keyName := "projects/P/locations/L/keyRings/R/cryptoKeys/K"
- if err := t.Create(ctx,
- &bigquery.TableMetadata{
- Name: "My New Table",
- Schema: schema,
- EncryptionConfig: &bigquery.EncryptionConfig{KMSKeyName: keyName},
- }); err != nil {
- // TODO: Handle error.
- }
- }
-
- 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.
- }
- }
-
- 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)
- }
-
- 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.
- }
-
- 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.
- }
-
- func ExampleTable_CopierFrom() {
- ctx := context.Background()
- client, err := bigquery.NewClient(ctx, "project-id")
- if err != nil {
- // TODO: Handle error.
- }
- ds := client.Dataset("my_dataset")
- c := ds.Table("combined").CopierFrom(ds.Table("t1"), ds.Table("t2"))
- c.WriteDisposition = bigquery.WriteTruncate
- // TODO: set other options on the Copier.
- job, err := c.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.
- }
- }
-
- 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.
- }
- }
-
- 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
- gcsRef.MaxBadRecords = 5
- gcsRef.Schema = schema
- // 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.
- }
- }
-
- 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
- rs.MaxBadRecords = 5
- rs.Schema = schema
- // 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.
- }
- }
-
- 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.
- }
-
- // This example illustrates how to perform a read-modify-write sequence on table
- // metadata. Passing the metadata's ETag to the Update call ensures that the call
- // will fail if the metadata was changed since the read.
- func ExampleTable_Update_readModifyWrite() {
- ctx := context.Background()
- client, err := bigquery.NewClient(ctx, "project-id")
- if err != nil {
- // TODO: Handle error.
- }
- t := client.Dataset("my_dataset").Table("my_table")
- md, err := t.Metadata(ctx)
- if err != nil {
- // TODO: Handle error.
- }
- md2, err := t.Update(ctx,
- bigquery.TableMetadataToUpdate{Name: "new " + md.Name},
- md.ETag)
- if err != nil {
- // TODO: Handle error.
- }
- fmt.Println(md2)
- }
-
- // To perform a blind write, ignoring the existing state (and possibly overwriting
- // other updates), pass the empty string as the etag.
- func ExampleTable_Update_blindWrite() {
- ctx := context.Background()
- client, err := bigquery.NewClient(ctx, "project-id")
- if err != nil {
- // TODO: Handle error.
- }
- t := client.Dataset("my_dataset").Table("my_table")
- tm, err := t.Update(ctx, bigquery.TableMetadataToUpdate{
- Description: "my favorite table",
- }, "")
- if err != nil {
- // TODO: Handle error.
- }
- fmt.Println(tm)
- }
-
- func ExampleTableIterator_Next() {
- ctx := context.Background()
- client, err := bigquery.NewClient(ctx, "project-id")
- if err != nil {
- // TODO: Handle error.
- }
- it := client.Dataset("my_dataset").Tables(ctx)
- for {
- t, err := it.Next()
- if err == iterator.Done {
- break
- }
- if err != nil {
- // TODO: Handle error.
- }
- fmt.Println(t)
- }
- }
-
- type Item struct {
- Name string
- Size float64
- Count int
- }
-
- // Save implements the ValueSaver interface.
- func (i *Item) Save() (map[string]bigquery.Value, string, error) {
- return map[string]bigquery.Value{
- "Name": i.Name,
- "Size": i.Size,
- "Count": i.Count,
- }, "", nil
- }
-
- func ExampleUploader_Put() {
- 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()
- // Item implements the ValueSaver interface.
- items := []*Item{
- {Name: "n1", Size: 32.6, Count: 7},
- {Name: "n2", Size: 4, Count: 2},
- {Name: "n3", Size: 101.5, Count: 1},
- }
- if err := u.Put(ctx, items); err != nil {
- // TODO: Handle error.
- }
- }
-
- var schema bigquery.Schema
-
- func ExampleUploader_Put_structSaver() {
- 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()
-
- type score struct {
- Name string
- Num int
- }
-
- // Assume schema holds the table's schema.
- savers := []*bigquery.StructSaver{
- {Struct: score{Name: "n1", Num: 12}, Schema: schema, InsertID: "id1"},
- {Struct: score{Name: "n2", Num: 31}, Schema: schema, InsertID: "id2"},
- {Struct: score{Name: "n3", Num: 7}, Schema: schema, InsertID: "id3"},
- }
- if err := u.Put(ctx, savers); err != nil {
- // TODO: Handle error.
- }
- }
-
- func ExampleUploader_Put_struct() {
- 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()
-
- type score struct {
- Name string
- Num int
- }
- scores := []score{
- {Name: "n1", Num: 12},
- {Name: "n2", Num: 31},
- {Name: "n3", Num: 7},
- }
- // Schema is inferred from the score type.
- if err := u.Put(ctx, scores); err != nil {
- // TODO: Handle error.
- }
- }
-
- func ExampleUploader_Put_valuesSaver() {
- 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()
-
- var vss []*bigquery.ValuesSaver
- for i, name := range []string{"n1", "n2", "n3"} {
- // Assume schema holds the table's schema.
- vss = append(vss, &bigquery.ValuesSaver{
- Schema: schema,
- InsertID: name,
- Row: []bigquery.Value{name, int64(i)},
- })
- }
-
- if err := u.Put(ctx, vss); err != nil {
- // TODO: Handle error.
- }
- }
|