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

Talend Studioユーザーガイド

Version
Cloud
8.0
Language
日本語
Product
Talend Big Data
Talend Big Data Platform
Talend Cloud
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Real-Time Big Data Platform
Module
Talend Studio
Content
ジョブデザインと開発
対象製品...

Big Data Platform

Cloud API Services Platform

Cloud Big Data Platform

Cloud Data Fabric

Cloud Data Management Platform

Data Fabric

Data Management Platform

Data Services Platform

MDM Platform

Real-Time Big Data Platform

週頻度と週低頻度インジケーターを使うカラム分析のプロファイリング結果は、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から結果を取得します。つまり、Talend Studioのロケールを使い、DBMSのロケールは使いません。

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