初期 SQL タブ
Advanced タブで Set Session ID チェックボックスが有効になっている場合 (デフォルトで有効) 、次の方法でセッションレベルの設定を指定できます
SET my_setting=value;Advanced タブ
99% のケースでは Advanced タブは不要です。残りの 1% では、次の設定を使用できます。
-
カスタム接続パラメータ。デフォルトでは
socket_timeoutがすでに指定されています。一部の抽出の更新に非常に時間がかかる場合は、このパラメータを変更する必要があることがあります。このパラメータの値はミリ秒単位で指定します。その他のパラメータはこちらで確認できます。このフィールドにカンマ区切りで追加してください -
JDBC Driver custom_http_params。このフィールドでは、ドライバーの
custom_http_paramsパラメータに値を渡すことで、ClickHouse の接続文字列に任意のパラメータを追加できます。たとえば、Set Session ID チェックボックスを有効にすると、session_idはこの方法で指定されます -
JDBC Driver
typeMappings。このフィールドでは、JDBC ドライバーで使用する Java データ型への ClickHouse データ型の型マッピング一覧を渡せます。コネクタはこのパラメータにより大きな整数を自動的に文字列として表示しますが、次のように独自のマッピングセットを渡すことで変更できます (理由はわかりません)UInt256=java.lang.Double,Int256=java.lang.Doubleマッピングの詳細については、該当セクションを参照してください
-
JDBC Driver URL Parameters。このフィールドでは、たとえば
jdbcComplianceなどのその他のドライバーパラメータを渡せます。なお、パラメータ値は URL エンコード形式で渡す必要があります。また、custom_http_paramsまたはtypeMappingsをこのフィールドと Advanced タブ内の前のフィールドの両方で指定した場合は、Advanced タブ内の先行する 2 つのフィールドの値が優先されます -
Set Session ID チェックボックス。初期 SQL タブでセッションレベルの設定を行うために必要です。
\"tableau-jdbc-connector-*{timestamp}*-*{number}*\"形式で、タイムスタンプと疑似乱数を使ったsession_idを生成します
UInt64、Int128、(U)Int256 データ型のサポートは限定的です
デフォルトでは、ドライバーは UInt64、Int128、(U)Int256 型のフィールドを文字列として表示しますが、変換しているのではなく、表示しているだけです。つまり、次の計算フィールドを作成しようとすると、エラーが発生します
LEFT([myUInt256], 2) // エラー!文字列と同様に大きな Integer フィールドを扱うには、そのフィールドを明示的に STR() 関数で囲む必要があります
LEFT(STR([myUInt256]), 2) // 正常に動作します!ただし、このようなフィールドは、多くの場合、一意な値の数を調べるため ((Yandex.Metrica の Watch ID や Visit ID といった ID)) や、可視化の粒度を指定する Dimension として使用されるため、問題なく機能します。
COUNTD([myUInt256]) // こちらも正常に動作します!UInt64 フィールドを含むテーブルのデータプレビュー (View data) を使用しても、エラーは表示されなくなりました。