CData Snowflake Drivers で時刻データを取り扱う際の注意点

CData

  • この記事をはてなブックマークに追加
  • 本文印刷

 本記事はCDataが提供する「CData Software Blog」に掲載された「CData Snowflake Drivers で時刻データを取り扱う際の注意点」を再編集したものです。

本記事ではCData Snowflake Drivers で、時刻データを取り扱う際の注意点についてご説明します。

Snowflakeで時刻データを取り扱う際には、以下の2点について注意が必要です。以下の設定によっては、意図していないデータ(時刻がズレたデータ)が登録されてしまう可能性がありますので、本記事ではその原因と対策について解説します。

➀カラムのTIMESTAMPの種類
②パラメータのCLIENT_TIMESTAMP_TYPE_MAPPINGの設定値

SnowflakeのTIMESTAMPについて

SnowflakeのTIMESTAMPについては、こちらのドキュメントに記載があります。ポイントとしてはTIMESTAMPが3種類あるということです。対象のカラムがどのTIMESTAMPを利用しているか確認してください。

・TIMESTAMP_LTZ
・TIMESTAMP_NTZ
・TIMESTAMP_TZ

Snowflakeのセッションパラメータについて

Snowflakeには動作を制御できるパラメーターが用意されています。TIMESTAMPに関連するパラメータとして、CLIENT_TIMESTAMP_TYPE_MAPPINGがあります。これはどのTIMESTAMPの種類を利用するかを指定するパラメータで、デフォルト値はTIMESTAMP_LTZが設定されています。詳細はこちらの公式ドキュメントを参照ください。

注意点

基本的な考え方としては前述の二つを合わせる必要があります。つまり対象カラムのTIMESTAMPの種類とCLIENT_TIMESTAMP_TYPE_MAPPINGの設定値を合わせる必要があります

CData Snowflake DriversでCLIENT_TIMESTAMP_TYPE_MAPPINGを設定する方法

接続プロパティのSessionParametersで指定することが可能です。例えばCData JDBC Driver for Snowflakeであれば、こちらのヘルプの記載があります。

そして以下のように設定することが出来ます。

例:

jdbc:snowflake:Warehouse=xxxxx;User=xxxxx;Password=xxxxx;URL=xxxxx;Database=xxxxx;Schema=xxxxx;SessionParameters='CLIENT_TIMESTAMP_TYPE_MAPPING=TIMESTAMP_NTZ';

対象カラムのTIMESTAMPの種類と
CLIENT_TIMESTAMP_TYPE_MAPPINGの設定値が異なる場合

それでは対象カラムのTIMESTAMPの種類と
CLIENT_TIMESTAMP_TYPE_MAPPINGの設定値が異なるとどうなるか見てみましょう。下記の条件で状態で時刻データを登録すると、意図していないデータ(時刻がズレたデータ)が登録されてしまいます。

・TIMESTAMP:TIMESTAMP_NTZ
・CLIENT_TIMESTAMP_TYPE_MAPPING:TIMESTAMP_LTZ
・インプットデータ:2023-05-31 10:00:00

実際にデータを投入してSnowflakeで確認すると、TIMESTAMP_NTZに登録した時刻データが本来の2023-05-31 10:00:00から、2023-05-30 20:00:00に変更されてしまっていることが分かります。

対象カラムのTIMESTAMPの種類と
CLIENT_TIMESTAMP_TYPE_MAPPINGの設定値を合わせた場合

それでは次に対象カラムのTIMESTAMPの種類と
CLIENT_TIMESTAMP_TYPE_MAPPINGの設定値を合わせた場合はどうなるか見てみましょう。次は下記の条件で時刻データを登録してみます。

・TIMESTAMP:TIMESTAMP_NTZ
・CLIENT_TIMESTAMP_TYPE_MAPPING:TIMESTAMP_NTZ
・インプットデータ:2023-05-31 10:00:00

今度はきちんと本来の2023-05-31 10:00:00で登録されていることが分かります。

おわりに

今回はCData Snowflake Drivers で時刻データを取り扱う際の注意点を説明しました。時刻データを連携した際に値がズレてしまわないように、今回ご案内した内容を元に事前にご確認いただければと思います。CData Snowflake Drivers は30日間無料でお使いいただけます。Snowflake との連携をご検討の方はぜひお試しください。

■関連サイト

過去記事アーカイブ

2024年
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
2023年
04月
07月
08月
09月
10月
11月
12月