接続のヒント
Initial SQL タブ
Advanced タブで Set Session ID チェックボックスが有効になっている場合(デフォルトの設定)、セッションレベルの settings を次のように設定できます
詳細タブ
99% のケースでは「詳細」タブは不要ですが、残りの 1% のケースでは次の設定を利用できます。
-
Custom Connection Parameters。デフォルトでは
socket_timeoutがすでに指定されていますが、一部の抽出の更新に非常に長い時間がかかる場合、このパラメータを変更する必要があるかもしれません。このパラメータの値はミリ秒単位で指定します。その他のパラメータはこちらで確認でき、カンマ区切りでこのフィールドに追加します -
JDBC Driver custom_http_params。このフィールドでは、ドライバの
custom_http_paramsパラメータに値を渡すことで、ClickHouse 接続文字列にパラメータを追加できます。たとえば、Set Session ID チェックボックスを有効にしたときには、この方法でsession_idが指定されます -
JDBC Driver
typeMappings。このフィールドでは、JDBC ドライバが使用する Java データ型への ClickHouse データ型のマッピング一覧を渡すことができます。コネクタは、このパラメータのおかげで大きな整数値を自動的に文字列として扱いますが、次のようにマッピングの Set(理由はよく分かりません)を渡すことで変更できますマッピングの詳細については、対応するセクションを参照してください
-
JDBC Driver URL Parameters。このフィールドでは、例えば
jdbcComplianceなどの残りのドライバパラメータを渡すことができます。注意点として、パラメータ値は URL エンコード形式で渡す必要があります。また、このフィールドと詳細タブ内の前のフィールドでcustom_http_paramsやtypeMappingsを渡した場合、詳細タブの先頭 2 つのフィールドの値の方が優先されます -
Set Session ID チェックボックス。Initial SQL タブでセッションレベルの設定を行うために必要で、
"tableau-jdbc-connector-*{timestamp}*-*{number}*"という形式で、タイムスタンプと疑似乱数からなるsession_idを生成します
UInt64、Int128、(U)Int256 データ型のサポートの制限
デフォルトでは、ドライバーは UInt64, Int128, (U)Int256 型のフィールドを文字列として表示しますが、変換は行わず表示するだけです。これは、次のような計算フィールドを書き込もうとするとエラーが発生することを意味します
大きな整数型フィールドを文字列と同様に扱うには、そのフィールドを明示的に STR() 関数でラップする必要があります。
しかし、このようなフィールドは、主にユニークな値の数を取得するため(Yandex.Metrica における Watch ID や Visit ID といった ID)や、可視化の詳細度を指定するための Dimension として使用され、その用途であれば問題なく利用できます。
UInt64 フィールドを含むテーブルのデータプレビュー(View data)を使用しても、エラーは発生しなくなりました。