Как теперь вы можете запрашивать массив напрямую по индексу

Google только что объявил, что теперь вы можете использовать оператор индекса массива, который будет возвращать значение в массиве непосредственно по индексу [1].

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



Работа с массивами и структурами в BigQuery
Как эффективно хранить данныеmedium.com



В целом можно сказать, что в будущем ваши запросы можно будет писать немного проще. Вот пример того, как можно все это сформулировать:

WITH Items AS (SELECT [“apple”, “orange”, “melone”] AS item_array)
 SELECT 
 item_array,
 item_array[0] AS item_index,  --the new feature
 item_array[OFFSET(0)] AS item_offset,
 item_array[ORDINAL(1)] AS item_ordinal,
 item_array[SAFE_OFFSET(6)] AS item_safe_offset
FROM Items

В этом примере запроса оператор индекса массива используется для возврата значений в определенной позиции в item_array. Этот запрос также показывает, что происходит, когда вы ссылаетесь на индекс (6) в массиве, выходящий за пределы диапазона. Если включен префикс SAFE, возвращается NULL, в противном случае выдается ошибка[2].

Итак, на этот раз не большое обновление, а скорее небольшое, которое делает написание запросов при работе с данными, хранящимися в массивах, немного проще. Если вы являетесь пользователем Google BigQuery, статья по ссылке ниже также может быть вам интересна:







Источники и дополнительная литература

[1] Google, Примечания к выпуску BigQuery (2023 г.)

[2] Google, Оператор индекса массива (2023)