Google BigQuery SQL найти все записи с идентификатором в массиве - PullRequest
0 голосов
/ 02 августа 2020

Стоимость запросов по запросу Google Big Query составляет 5 долларов США за ТБ данных, поиск которых выполняется при выполнении запроса. У меня есть база данных размером 2 ТБ, и я хочу сократить расходы.

Моя цель - вернуть определенные c поля из записей, идентификатор которых находится в списке. Выполнение этой записи по записи значительно увеличивает расходы. Однако, если я использую запрос SQL, который использует массив идентификаторов и просто возвращает все записи, в которых идентификатор находится в списке, я могу сжать сотни запросов в один запрос и просто отсортировать результаты.

Вот пример запроса, который я использовал для одной записи.

SELECT field1, field2 
FROM `database.table`
WHERE field1 = 'US14236932' LIMIT 1

Мне нужен запрос, похожий на этот:

SELECT field1, field2 
FROM `database.table`
WHERE field1 
IN ('US14236932', 'US14236933', 'US14236934', 'US14236935')

Я прочитал BigQuery документация по массивам , но не видел примера, похожего на мои нужды.

1 Ответ

1 голос
/ 02 августа 2020

Может так:

SELECT * FROM `patents-public-data.patents.publications`
WHERE application_number_formatted 
IN UNNEST(['US14236932', 'US14236933', 'US14236934', 'US14236935'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...