変換、タイプ、形式に関する追加情報
Type converterプロセッサーでは、入力レコードに対して複数の変換操作を適用できます。
プリミティブデータ型でもセマンティックデータ型でも変換できます。
ソースとデスティネーションのタイプ
- 
                  プリミティブ型: null、boolean、int、long、float、double、bytes、string、および次のデータ型:
- 
                           
複合型: record、enum、array、map、union、fixed
 - 
                           
論理型: date:int、time-millis:int、time-micros:long、timestamp-millis:long、timestamp-micros:long、duration:fixed(12)、decimal:fixed|bytes
 
 - 
                           
 - セマンティックタイプ: データセットのフィールドを取得する際にTalend Cloudが提案する、定義済みのセマンティックタイプです。詳細は、セマンティックタイプを管理をご覧ください。
 
エラーと警告
- 
                  
不良なDateFormat/DecimalFormatパターンによる解析例外
 - 
                  
どんなソースも不良なparseまたはvalueOf変換からの例外の原因になります
 - 
                  
ソースのバイトが不足しているためデスティネーション値を作成できない
 
日付指向の形式(プリミティブ型のみ)
ソースまたはデスティネーションの値が日付/時刻指向の値で、その他が文字列の場合は、DateTimeFormatterのドキュメンテーションの説明に従い、形式が変換に使用されます。形式が存在しない場合は、Javaに提供されているデフォルトのISO 8601形式が使用されます。
DateTimeには暦日と時刻の両方の情報が含まれます。
| 
                         形式  | 
                     
                         文字列  | 
                  
|---|---|
| 
                         EEE, MMM d, ''yy 'at' h:mm a  | 
                     
                         Tue, Nov 28, '17 at 12:44 PM  | 
                  
| 
                         yyyyy.MMMM.dd GGG hh:mm a  | 
                     
                         02017.November.28 AD 12:44 PM  | 
                  
- 
                  
Date形式には日よりも小さなフィールドは使用できません。Dateタイプには"時"がありません: yyyy-MM-dd
 - 
                  
Time形式には時よりも大きなフィールドは使用できません。Time形式には"日"がありません: HH:mm:ss.SSS
 
数値形式(プリミティブ型のみ)
| 
                            形式  | 
                        
                            文字列  | 
                     
|---|---|
| '#'# | 
                            #1, #12345, #-123  | 
                     
| 
                            $#,##0.00;($#,##0.00)  | 
                        
                            $1,234.56, $0.50, ($1.00), ($1,234.56)  | 
                     
変換に適用される論理ルールがあります。
- IntegerとLongの形式にたとえば小数点が含まれていると、エラーの原因になります。
 
例
- 
               
: 情報が失われない拡張プリミティブ変換。 - 
               
: 情報が失われる可能性のあるプリミティブ変換(拡張または縮小)。 - 
               
: DateFormatパターンがある場合は、日付/時刻タイプのString変換に使用されます。- 
                        
ソースが論理型のdate、time-millis、timestamp-millis (time-microsおよびtimestamp-microsはlongとして扱われます)、またはデスティネーションがDate、Time、DateTimeのいずれかの場合。
 - 
                        パターンが存在しない場合は、Date/Time/DateTimeタイプは特定のISO-8601パターンを使用します。
- 日付: yyyy-MM-dd
 - 時刻: HH:mm:ss
 - 日時: yyyy-MM-dd'T'HH:mm:ss'Z'
 
 
 - 
                        
 - 
               
: DecimalFormatパターンが存在する場合は、数値タイプのString変換に使用されます。存在しない場合は、Integer.valueOf()またはInteger.toString()にフォールバックされます(適切なデスティネーション値を使用)。 - 
               サポートされている日付指向のタイプと数値の間で変換する場合、形式は使用されません。
- 
                        
Date: 入力/出力の数字は、1970-01-01から数えた日数です(int)。
 - 
                        
Time: 入力/出力の数字は、00:00:00から数えたミリ秒です(int)
 - 
                        
DateTime: 入力/出力の数字は、1970-01-01 00:00:00から数えたミリ秒です(long)
 
 - 
                        
 - 
               
ソースとデスティネーションがサポートされている日付指向のタイプと数値の場合、日付と時刻のコンポーネントは2つの間で一貫性が保たれます。不明なものはすべて1970-01-01 00:00:00を基準に設定されます。たとえば、Time (日付コンポーネントなし)をDateに変換すると、常に1970-01-01が返されます。
 
詳細は、Oracleのドキュメンテーションを参照してください。
| 
                         ソースタイプ(Avro)  | 
                     
                         ソースの値  | 
                     
                         形式  | 
                     
                         デスティネーションのタイプ  | 
                     
                         デスティネーションの値  | 
                  
|---|---|---|---|---|
| 
                         int  | 
                     
                         12345  | 
                     
                         -  | 
                     
                         Long  | 
                     
                         
  | 
                  
| 
                         long  | 
                     
                         12345L  | 
                     
                         -  | 
                     
                         Integer  | 
                     |
| 
                         long  | 
                     
                         1234567890123456789L  | 
                     
                         -  | 
                     
                         Integer  | 
                     
                         
  | 
                  
| 
                         long  | 
                     
                         1234567890123456789L  | 
                     
                         -  | 
                     
                         Double  | 
                     
                         
  | 
                  
| 
                         long  | 
                     
                         0x8000000000000000L(MIN_VALUE)  | 
                     
                         -  | 
                     
                         Integer  | 
                     
                         0 (縮小変換では最後の4バイトが使用されます)  | 
                  
| 
                         String  | 
                     
                         "1234.5"  | 
                     
                         -  | 
                     
                         Integer  | 
                     
                         エラー--形式なしの浮動小数点は解析できません。  | 
                  
| 
                         String  | 
                     
                         "1234.5"  | 
                     
                         #  | 
                     
                         Integer  | 
                     
                         
  | 
                  
| 
                         string  | 
                     
                         "1234.5"  | 
                     
                         #.#  | 
                     
                         Integer  | 
                     
                                                       | 
                  
| 
                         ブール値  | 
                     
                         false  | 
                     
                         -  | 
                     
                         Integer  | 
                     
                         0  | 
                  
| 
                         boolean  | 
                     
                         true  | 
                     
                         -  | 
                     
                         Integer  | 
                     
                         1  | 
                  
| 
                         boolean  | 
                     
                         false  | 
                     
                         -  | 
                     
                         Date  | 
                     
                         1970-01-01 (1970-01-01から数えた日数がゼロ)  | 
                  
| 
                         boolean  | 
                     
                         true  | 
                     
                         -  | 
                     
                         Date  | 
                     
                         1970-01-02 (1970-01-01から数えた日数が1)  | 
                  
| 
                         boolean  | 
                     
                         false  | 
                     
                         -  | 
                     
                         Time  | 
                     
                         00:00:00.000 (午前0時から数えたミリ秒がゼロ)  | 
                  
| 
                         boolean  | 
                     
                         true  | 
                     
                         -  | 
                     
                         Time  | 
                     
                         00:00:00.001 (深夜から数えたミリ秒数が1。ビューにミリ秒が表示されない場合は、ベースとなるデータが異なっていても、この表示はfalseとまったく同じになります)  | 
                  
| 
                         timestamp-millis  | 
                     
                         2017-11-28T12:44:22Z  | 
                     
                         yyyyMMdd  | 
                     
                         文字列  | 
                     
                         情報メモ注: timestamp-millis > Stringの変換は、テストデータセットには使用できません。 
                         | 
                  
| 
                         String  | 
                     
                         20171128  | 
                     
                         yyyyMMdd  | 
                     
                         timestamp-millis  | 
                     
                                                       | 
                  
| 
                         文字列  | 
                     
                         "20171128"  | 
                     
                         yyyyMMdd  | 
                     
                         Date  | 
                     
                                                       | 
                  
| 
                         int  | 
                     
                         20171128  | 
                     
                         -  | 
                     
                         Date  | 
                     
                         +57196-09-03 (1970-01-01から数えて20、171、128日)  | 
                  
| 
                         time-millis  | 
                     
                         12:44:22  | 
                     
                         -  | 
                     
                         DateTime  | 
                     
                         1970-01-01T12:44:22Z(ソース時刻に日付部分がないため、1970-01-01が使用されます)  | 
                  
| 
                         timestamp-millis  | 
                     
                         2017-11-28T12:44:22Z  | 
                     
                         -  | 
                     
                         Date  | 
                     
                         2017-11-28 (時刻コンポーネントが削除され、ベースとなる数字が1511873062123Lから17498に変更されています)  |