Сравнить в запросе питоновский список и базу ClickHouse

Есть список на Питоне, допустим:

NAMES = [Alex, Dima, Vika]

Как написать такой запрос к базе ClickHouse, который сверяет все значения с этим списком, только с учетом, что имен не 3, а в разы больше, то есть, руками не напишешь.

Например,

select
    name
from
    students
where
    name IN |NAMES|

Буду признателен за пример для базы ClickHouse.


Ответы (2 шт):

Автор решения: vladimir

Попробуйте сделать так:

from clickhouse_driver import Client

client = Client(host='localhost')

vals_to_check = [2, 4, 8]

rows = client.execute_iter(f'''
    SELECT number
    FROM system.numbers
    WHERE number IN ({','.join(map(str, vals_to_check))})
    LIMIT 10''')

for row in rows:
    print(row[0])

# result:
# 2
# 4
# 8

requirements.txt

clickhouse_driver
→ Ссылка
Автор решения: Drewleks

Увидел удобный ответ в документации, сработал на сравнении таблиц с количеством элементов больше 100к: https://clickhouse-driver.readthedocs.io/en/latest/features.html#external-data-for-query-processing

введите сюда описание изображения

→ Ссылка