跳轉至

腳本開發 / 連接器對象 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