Open K0nkere opened 1 year ago
import os
import json
import pandas as pd
import clickhouse_connect
def create_connect(host: str, port:str, username:str, pw: str):
"""
"""
try:
connect = clickhouse_connect.create_client(
host=host,
port=port,
username=username,
password=pw,
)
print('Connection to database created')
return connect
except:
print('Failed to create connection to database')
return None
q = """ select *** from <database> """
connect_read = create_connect(host, port, username, pw)
connect_insert = create_connect(host, port, username, pw)
df_stream = connect_read.query_df_stream(
q,
# settings={"session_check": True, "session_timeout":300}
)
insert_context = connect_insert.create_insert_context(table='<table>', database='<database>')
with df_stream:
for df in df_stream:
<process df>
connect_insert.insert_df(df=df, context=insert_context)
ALTER TABLE <table_name>
UPDATE _row_exists = 0
WHERE <time_col> IN (
SELECT MIN(T2.<time_col>)
FROM <table_name> AS T2
WHERE pk_id = T2.pk_id
GROUP BY T2.pk_id
)
AND toDate(<time_col>)='2023-07-13'
Управление доступом, создание пользователей, назначение прав
Включение SQL-ориентированного управления доступом
ClickHouse хранит конфигурации объектов системы доступа в каталоге, установленном в конфигурационном параметре сервера access_control_path.
Включите SQL-ориентированное управление доступом как минимум для одного аккаунта.
По умолчанию управление доступом на основе SQL выключено для всех пользователей. Вам необходимо настроить хотя бы одного пользователя в файле конфигурации users.xml и присвоить значение 1 параметру access_management.
Назначение полных прав на default пользователя
Создание нового пользователя и назначение прав на выбранную БД