Прочитать результат запроса BQ без структуры - PullRequest
0 голосов
/ 11 февраля 2019

Кто-нибудь пытался сохранить результат запроса на карту?Я хочу иметь возможность читать данные из таблиц BQ без необходимости определять структуру, которая соответствует схеме таблицы BQ.

Я пытался следовать https://kylewbanks.com/blog/query-result-to-map-in-golang,, но я хочу использовать RowIterator вместоподход в этой ссылке.

Вот код, с которым я борюсь:

//Removed error handling for brewity 
ctx := context.Background()
client, _ := bigquery.NewClient(ctx, ProjectID)
query := fmt.Sprintf("SELECT * FROM `%s.%s.%s` LIMIT 5;", ProjectID, DatasetId, ResourceName)
queryResult := client.Query(query)
it, _ := queryResult.Read(ctx)

for {
    row := make(map[string]bigquery.Value)
    err := it.Next(&row)
    if err == iterator.Done {
        break
    }
    if err != nil {
        fmt.Printf("Error happened")
    }}

Я не уверен, как действовать после этого, в идеале я хотел бы преобразовать данные в JSONформат.

1 Ответ

0 голосов
/ 11 февраля 2019
for {
     var values []bigquery.Value
     err := it.Next(&values)
     if err == iterator.Done {
        break
     }
     if err != nil {
    // TODO: Handle error.
}
fmt.Println(values)
}

Поместите строки в срез, так как вы можете сохранить строку, используя все, что реализует ValueLoader interface, или с срезом или картой bigquery.Value

ref: godocs bq

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...