Посмотрите на приведенный ниже пример использования общедоступных данных (вы также можете выполнить запрос)
#standardSQL
SELECT *
FROM `bigquery-public-data.baseball.schedules`
WHERE (year, duration_minutes) IN UNNEST([(2016, 187), (2016, 165), (2016, 189)])
Ключом здесь является предоставление массива значений, по которому вы хотите отфильтровать таблицу,и используйте IN UNNEST (array_of_values) для выполнения работы, в идеале, как показано ниже:
query = """
SELECT pet_id, age, name
FROM `myproject.mydataset.mytable`
WHERE (name, species) IN UNNEST(@filter_array);
"""
Немного прискорбно, что BigQuery Python API не позволяет указывать array< struct<string, int64> >
какпараметр запроса.Так что вам, возможно, придется сделать:
query = """
SELECT pet_id, age, name
FROM `myproject.mydataset.mytable`
WHERE concat(name, "_", species) IN UNNEST(@filter_array);
"""
array_of_pre_concatenated_name_and_species = ['Max_Dog', 'Alfred_Cat']
query_params = [
bigquery.ArrayQueryParameter('filter_array', 'STRING', array_of_pre_concatenated_name_and_species),
]