跳转至

脚本开发 / 连接器对象 DFF.CONN / ClickHouse

ClickHouse 连接器操作对象提供查询和写入 ClickHouse 的方法。

DFF.CONN(...) 参数如下:

参数 类型 必须 / 默认值 说明
connector_id str 必须 连接器 ID
database str None 指定数据库

.query(...)

执行 SQL 语句并返回查询结果。每一行结果均转换为以列名为键的 dict,全部结果以 list 返回。

参数 类型 必须 / 默认值 说明
sql str 必须 SQL 语句,可包含参数占位符。
? 表示需要转义的参数;
?? 表示不需要转义的参数
sql_params list None SQL 参数
示例
1
2
3
sql = 'SELECT * FROM ?? WHERE age > ?'
sql_params = ['demo_table', 50]
result = helper.query(sql, sql_params=sql_params)

.non_query(...)

执行写入、更新或删除等 SQL 语句,并返回驱动报告的影响行数。参数与 .query(...) 相同。

示例
1
2
3
sql = 'INSERT INTO ?? (name, age) VALUES (?, ?)'
sql_params = ['demo_table', 'Tom', 20]
affected_rows = helper.non_query(sql, sql_params=sql_params)

.query(...).non_query(...) 执行成功后都会自动提交事务;执行失败时会抛出异常。

动态 SQL 语句

query(...)non_query(...) 内部使用 DFF.SQL(...) 构造 SQL 语句并支持构造复杂动态的 SQL 语句。

WHERE IN (...) 不确定数量的值,或者 INSERT INTO ... VALUES ... 进行批量写入数据等。

详情请参考 脚本开发 / SQL 构造 DFF.SQL