Сравнить в запросе питоновский список и базу 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
