Вы правы в том, что Big Query распределяет задания по сбору данных между работниками. Каждый работник читает свой осколок набора данных. По этой причине, если вы выполняете запрос более одного раза, вы можете каждый раз получать разные результаты.
В вашем случае вы получаете тот же набор данных, вероятно, потому что вы используете Результаты BigQuery Cached . Эта функция позволяет BigQuery кэшировать результаты пакетных и интерактивных запросов во временных таблицах в течение примерно 24 часов (хотя, согласно документации, существуют исключения для этого периода времени, ссылка ).
Кэшированные результаты BigQuery - это функция, включенная по умолчанию. Однако вы можете отключить его в пользовательском интерфейсе: Подробнее >> Настройки запросов >> Управление ресурсами >> Использовать кэшированные результаты , как вы также можете видеть ниже:
Кроме того, важно знать, что кэширование не может быть включено, если для таблицы назначения задано .
Вы можете проверять различный набор результатов при каждом запуске запроса, отключая результаты кэширования и используя приведенный ниже запрос, просто в качестве примера:
SELECT gender, tripduration
FROM `bigquery-public-data.new_york_citibike.citibike_trips` LIMIT 10
В качестве информации о бонусе, Я хотел бы отметить, что, согласно документации , предложение LIMIT задает неотрицательное целое число, которое определяет количество отображаемых строк. Однако применение LIMIT не влияет на количество прочитанных данных. Таким образом, вам выставлен счет за чтение всех байтов во всей таблице, а также за запрос по вашей бесплатной квоте уровня. Подробнее об этом можно прочитать здесь .
Надеюсь, это поможет.