Как вставить данные int128 в Cickhouse с помощью ClickHouseHook?Python

Программы на Python
Anonymous
Как вставить данные int128 в Cickhouse с помощью ClickHouseHook?

Сообщение Anonymous »

Я использую ClickHouse Hook для вставки данных в базу данных.

Код: Выделить всё

from airflow_clickhouse_plugin.hooks.clickhouse import ClickHouseHook

ch_hook = ClickHouseHook(clickhouse_conn_id=connections_name)

def update_replacingmergetree(ch_hook, table_name: str, df: pd.DataFrame):
values = tuple(df.to_records(index=False))
ch_hook.execute(f'INSERT INTO do_you.{table_name} VALUES', (v for v in values))
Моя функция работает нормально, тогда DataFrame не содержит дат.
Но тогда я передаю такие данные (часть кортежа со значениями):

Код: Выделить всё

 #   Column      Non-Null Count  Dtype
---  ------      --------------  -----
0   id     18 non-null     string
1   s_id    18 non-null     int32
2   month_date  18 non-null     datetime64[ns]
3   sum    18 non-null     int32



id
s_id
month_date
sum< /th>




0
265609333301876169530781520669667823585
842024-01-01 00:00:00
100



Я получаю сообщение об ошибке:

Код: Выделить всё

TypeError: unsupported operand type(s) for &: 'str' and 'int'
Чтобы избежать этой ошибки, мне нужно преобразовать id в int128, но я не могу этого сделать, потому что pandas или numpy не имеют типа int128.
Как указать значение int128 в Clickhouse?

Подробнее здесь: https://stackoverflow.com/questions/786 ... khousehook

Вернуться в «Python»