JavaとSQLのエンジンを使ってカラム分析を実行した場合の異なるプロファイリング結果 - 7.3

Talend Big Data Platform Studio ユーザーガイド

Version
7.3
Language
日本語 (日本)
Product
Talend Big Data Platform
Module
Talend Studio
Content
ジョブデザインと開発
週頻度と週低頻度インジケーターを使うカラム分析のプロファイリング結果は、JavaエンジンとSQLエンジンの間で異なる場合があります。
環境

Talend Open Studio for Data QualityおよびすべてのプラットフォームのStudioとデータクオリティ。

説明

JavaまたはSQLのエンジンを使って週頻度と週低頻度インジケーターによるカラム分析を実行すると、異なる結果が得られる場合があります。

これは、異なるデータベースシステム(DBMS)の間で、または同じDBMSシステムの異なるインストールの間ですら、日付関数が異なる場合があるためです。

MySQLのWEEK(date [,mode]) 関数を例に挙げてみましょう。詳細は、日付と時刻の関数を参照してください。この関数はdateの週番号を返します。以下を指定できる2引数形式が必要です。

  • 週が日曜と月曜のどちらで始まるか
  • 戻り値の範囲を0から53または1から53のどちらにするか

SQLエンジンの場合、Talend Studioは関数WEEK(date) を使います。mode引数が省略されます。したがって、StudioはDBMS設定で指定されているデフォルトのmode値(一般にはmode=0)を使います。ただし、これはMySQLのインストールによって異なります。

しかし、このデフォルト動作を変更する必要がある場合は、UDI (ユーザー定義インジケーター)を作成し、使用するモードをSQLクエリーテンプレートで指定できます。

Javaエンジンの場合、Talend StudioはパラメーターLocale.getDefault() を使って上記の2つの引数を確認し、Java APIから結果を取得します。つまり、Studioのロケールを使い、DBMSのロケールは使いません。

(低)週頻度インジケーターおよびその他の日付関数を使って、JavaとSQLのエンジンの間でプロファイリング結果が異なる場合があるのは、このためです。

関連するJira問題

DOCT-4674