接続に関するヒント
ClickHouse Supported
初期 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)を使用しても、エラーは発生しなくなりました。