У меня есть 1000000 записей внутри BigQuery.Каков наилучший способ извлечения данных из БД и обработки с помощью goLang?У меня проблема с тайм-аутом при получении всех данных без ограничений.Я уже увеличиваю лимит до 5 минут, но это занимает более 5 минут.Я хочу реализовать потоковый вызов или нумерацию страниц, но я не знаю, как это сделать.
var FetchCustomerRecords = func(req *http.Request) *bigquery.RowIterator {
ctx := appengine.NewContext(req)
ctxWithDeadline, _ := context.WithTimeout(ctx, 5*time.Minute)
log.Infof(ctx, "Fetch Customer records from BigQuery")
client, err := bigquery.NewClient(ctxWithDeadline, "ddddd-crm")
q := client.Query(
"SELECT * FROM Something")
q.Location = "US"
job, err := q.Run(ctx)
if err != nil {
log.Infof(ctx, "%v", err)
}
status, err := job.Wait(ctx)
if err != nil {
log.Infof(ctx, "%v", err)
}
if err := status.Err(); err != nil {
log.Infof(ctx, "%v", err)
}
it, err := job.Read(ctx)
if err != nil {
log.Infof(ctx, "%v", err)
}
return it
}