コンテンツにスキップ

スクリプト開発 / コネクターオブジェクト 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 を参照してください。