データ・タイプ
サーバー上でRユーザー定義関数を実行するには、Netezzaのさまざまなデータ型がどのように表現され、NetezzaRライブラリで処理されるかをよく理解する必要があります。
| Netezza | 対応 | R | コメント |
|---|---|---|---|
| 修正済み | はい | 文字 | |
| 変数 | はい | 文字 | |
| ナショナル_固定 | はい | 文字 | UTF-8 |
| ナショナル変数 | はい | 文字 | UTF-8 |
| BOOL | はい | 論理 | |
| INT8 | はい | 整数 | |
| INT16 | はい | 整数 | |
| INT32 | はい | 整数 | |
| INT64 | はい | 二重 | 精度の低下 |
| NUMERIC32 | いいえ | ||
| NUMERIC64 | いいえ | ||
| NUMERIC128 | いいえ | ||
| FLOAT | はい | 二重 | |
| DOUBLE | はい | 二重 | |
| 日付 | はい | 整数 | |
| 時刻 | はい | POSIXct | |
| TIMETZ | はい | リスト | 要素:時間とゾーン |
| TIMESTAMP | はい | 二重 | 精度の低下 |
| 間隔 | はい | リスト | 要素:時間と月 |
文字ストリング
VARIABLEと'FIXEDという型のN個の列は、Rでは文字ベクトルとして表現される。 Netezzaの'NATIONAL_FIXEDと 'NATIONAL_
VARIABLEデータ型はUTF-8-encoded文字列となり、'Encoding(x) == "UTF-8" を使用して処理されます。
整数
1バイト、2バイト、4バイトに格納されている整数、つまり「INT8、「INT16、「INT32」は、整数ベクトルに変換される。 データを出力する際、4バイト長の整数値は適切な長さに切り取られる。
Netezzaの'INT64カラムはRで数値ベクトルとして表現される。 したがって、2 53-1より大きな入力値は正しく表現されない可能性がある。 R AEから「INT64値を出力する場合、出力値は数値にキャストされ、さらに8バイト長の整数にキャストされる。
出力形式が整数型の場合、Netezzaシステムにデータを出力するときにNA値は使用できません。 Rは整数の場合、NA値を許容するが、内部的にはこれらの値は任意に選択されたビット列として表現される。 現在最大の負の32ビット整数で、Netezzaの整数には変換できない。 代わりにNULLを出力したい場合は、「setOutputNull関数を使うことができる。
ブール
BOOLデータ型は論理型として表現される。
出力形式がブール値の場合、Netezzaシステムにデータを出力するときにNA値は使用できません。 代わりに'NULLを出力すべき場合は、'setOutputNull関数を使用することができる。
浮動小数点
Netezzaは、'FLOATと'DOUBLEという2つの浮動小数点数値フォーマットに対応しており、どちらも標準化されており、"IEEE 754 Standard for Floating-Point Arithmetic "に記述されている 同様に、これらのデータ型のいずれかを出力することは、doubleからのキャストを意味する。
数値
Netezzaの数値データ型は 'NUMERIC32、'NUMERIC64、'NUMERIC128 です。 現在のところ、Rではどの'NUMERIC型もサポートされていない。 エラーを避けるために、R関数をデータに使用する前にデータ型を'REALに変換してください。
日付と時刻
DATE、「TIME、「TIMETZ、「TIMESTAMP、「INTERVAL。- 日付
DATEデータ型は4バイトの整数として格納され、1/1/2000(2000年1月1日)の前(-)または後(+)の日数を表す。 Rでは整数値として格納される。minimal value -730,119 (1/1/0001) maximal value 2,921,939 (12/31/9999)- 時刻
TIMEデータ型は8バイトの整数として格納され、午前0時から午前0時の1マイクロ秒前までのマイクロ秒数を表す。 Rではdouble値として格納されるが、整数部分のみが考慮され、小数部分は無視される。minimal value 0 (00:00:00.000000) maximal value 86,399,999,999 (23:59:59.999999)- 時間帯付き時刻
TIMETZデータ型は、標準の「TIMEフィールドと、符号を逆にした秒単位のオフセットを表す4バイトの整数であるタイムゾーンフィールドの2つのフィールドで構成される。 例えば、「+1時間」のオフセットは-3600として保存される。 オフセットは分単位の整数でなければならない。offset minimal value -46800 (+ 13:00:00) offset maximal value 46740 (-12:59:00)- タイムスタンプ
TIMESTAMPデータ型は、1/1/2000の00:00:00.0の前(-)または後(+)のマイクロ秒数を表す8バイトの整数である。 Rではdoubleデータ型として格納されるため、2 53-1より大きな値では丸め誤差がNetezzaに返される値に影響する可能性がある。minimal value -63,082,281,600,000,000 (00:00:00, 1/1/0001) maximal value 252,455,615,999,999,999 (23:59:59.999999, 12/31/9999)- 間隔
INTERVALデータ型は、4バイト整数(符号付き月数)と8バイト整数(符号付きマイクロ秒数)で構成される。 正(+)または負(-)の月数値、および正(+)または負(-)のマイクロ秒値の両方の構成が可能であり、Netezzaでサポートされています。 Rでは、これらの値は整数(月)とダブル(マイクロ秒)で表される。 マイクロ秒を使用するということは、'TIMESTAMPと同様、丸め誤差を考慮しなければならないことを意味する。注:- マイクロ秒の値は、'
INT64データ型が許す限り大きくすることができ、エラーなしでマイナスにオーバーフローする。 Rでは、マイクロ秒の値は数値型として保存され、Netezzaに送信されるときに'INT64にキャストされる。 数値型は、許容される最大値'INT64よりも大きな値を許容するので、値が最大値'INT64よりも大きくないことが重要である。 このルールはマイクロ秒の最小値にも適用される。 - 月には常に 30 日が含まれると見なされます。
- 月とマイクロ秒の値は別々に保存され、情報を交換することはない。
months minimal value 3,000,000 (-250,000 years) months maximal value 3,000,000 (250,000 years) microseconds minimal value none (minimal signed INT64) microseconds maximal value none (maximal signed INT64)
- マイクロ秒の値は、'