Я боролся с вопросом, который кажется простым, но ускользает от меня. Я имею дело с общедоступной таблицей BigQuery для биткойнов и хочу извлечь первую транзакцию каждого добытого блока. Другими словами, чтобы заменить вложенное поле его первой строкой, как оно отображается в предварительном просмотре таблицы. Нет поля, которое может его идентифицировать, только порядок, в котором оно было сохранено в таблице.
Я выполнил следующий запрос:
#StandardSQL
SELECT timestamp,
block_id,
FIRST_VALUE(transactions) OVER (ORDER BY (SELECT 1))
FROM `bigquery-public-data.bitcoin_blockchain.blocks`
Но при запуске он обрабатывает 492 ГБ и выдает следующую ошибку:
Error: Resources exceeded during query execution: The query could not be executed in the allotted memory. Sort operator used for OVER(ORDER BY) used too much memory..
Это кажется таким простым, я должен что-то упустить. У вас есть идея, как справиться с такой задачей?