Расценки BigQuery: расчет размера (стоимости) данных запроса для столбцов записей - PullRequest
0 голосов
/ 12 ноября 2018

Как BigQuery рассчитывает размер данных для обработки вложенных столбцов?

У меня есть данные, которые я хочу загрузить в BigQuery, но я не уверен относительно схемы, которую мне следует использовать.

Данные, которые у меня есть (среди прочих) следующие столбцы:

  • timestamp
  • sessionId
  • event (обязательная запись)
  • event.id
  • event.details (обнуляемая запись)
  • event.details.type
  • event.details.name
  • event.attributes (повторная запись)
  • event.attributes.key
  • event.attributes.value

Мои вопросы:

  1. Если ятолько запрос event.id, будут ли также сканироваться данные в других столбцах event.*?

    SELECT event.id FROM table_name

Пользовательский интерфейс BigQuery показываетнет разницы в размере отсканированных данных этих запросов в существующей таблице (в этой таблице нет неповторяющихся вложенных столбцов).

SELECT attrs.name FROM `other_table_name`, UNNEST(attributes) AS attrs
SELECT attrs.name, attrs.value FROM `other_table_name`, UNNEST(attributes) AS attrs
Сканируются ли оба столбца attributes.* из-за операции UNNEST?

К сожалению, (подробная) информация от Google не отвечает на эти вопросы, поскольку она не упоминает вложенные столбцы с запрос цены , и это слишком расплывчато при описании размеры данных

1 Ответ

0 голосов
/ 12 ноября 2018

Я только что проверил публичную таблицу: bigquery-public-data.bitcoin_blockchain.transactions. Я выполнил следующие запросы:

Запрос 1:

SELECT
  inputs.input_script_bytes,
  inputs.input_script_string,
  inputs.input_script_string_error,
  inputs.input_sequence_number
FROM
  `bigquery-public-data.bitcoin_blockchain.transactions`,
  UNNEST(inputs) AS inputs
LIMIT
  100

И он возвращает 327 GB обработано.

Запрос 2:

SELECT
  inputs.input_script_bytes
FROM
  `bigquery-public-data.bitcoin_blockchain.transactions`,
  UNNEST(inputs) AS inputs
LIMIT
  100

И он возвращает 100 GB обработано.

Итак, отвечая на ваш первый вопрос, остальные столбцы event.* не должны быть отсканированы. Что касается второго вопроса, я вижу другой размер отсканированных данных при выполнении запросов. Если вы видите разницу в байтах в Validator , обратите внимание, что это просто оценка количества прочитанных байтов.

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