接続に関するヒント
初期 SQL タブ
[詳細設定] タブで Set Session ID チェックボックスが有効になっている場合(デフォルト)、次を使用してセッションレベルの 設定 を行うことができます。
詳細タブ
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 データ型のマッピング一覧を渡すことができます。このパラメータのおかげで、コネクタは大きな整数値を自動的に文字列として扱いますが、独自のマッピングセットを渡すことで(なぜそうしたいのかはわかりませんが)、これを変更できます。たとえば次のように指定します:マッピングについての詳細は、該当するセクションを参照してください。
-
JDBC Driver URL Parameters。このフィールドでは、残りのドライバーパラメータ、たとえば
jdbcComplianceを渡すことができます。注意点として、パラメータ値は URL エンコードされた形式で渡す必要があります。また、このフィールドと Advanced タブ内の前のフィールドの両方でcustom_http_paramsまたはtypeMappingsを指定した場合は、Advanced タブ上の前 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)を使用しても、エラーは発生しなくなりました。