SnowConvert: Teradataデータ型¶
データ型¶
換算テーブル¶
Teradata |
Snowflake |
注意 |
---|---|---|
|
|
|
|
|
Snowflakeの |
|
|
8MB に制限されています。 |
|
|
|
|
|
|
|
|
|
|
|
16MB に制限されています。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Snowflakeの |
|
|
加算/減算で使用される場合を除き、Snowflakeでは間隔は |
|
|
加算/減算で使用される場合を除き、Snowflakeでは間隔は |
|
|
加算/減算で使用される場合を除き、Snowflakeでは間隔は |
|
|
加算/減算で使用される場合を除き、Snowflakeでは間隔は |
|
|
加算/減算で使用される場合を除き、Snowflakeでは間隔は |
|
|
<p> JSON の中の要素は、テーブルに挿入されたときにキー順に並びます。<br>[<a href="data-types.md#json-data-type">note</a>] をチェックしてください。</p> |
|
|
サポート対象外 |
|
|
|
|
|
期間はSnowflakeでは |
|
|
期間はSnowflakeでは |
|
|
期間はSnowflakeでは |
|
|
期間はSnowflakeでは |
|
|
期間はSnowflakeでは |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
注意¶
注釈
Teradata データタイプのドキュメントを参照
整数データタイプ¶
整数データ型 (INTEGER
, SMALLINT
, BIGINT
) の変換では、それぞれ同じ名前のSnowflakeのエイリアスに変換されます。これらのエイリアスはそれぞれ、 NUMBER(38,0)
に変換され、整数データ型よりもかなり大きなデータ型となります。以下は、各データ型に存在しうる値の範囲の比較です。
Teradata
INTEGER
: -2,147,483,648 から 2,147,483,647Teradata
SMALLINT
: -32768 から 32767Teradata
BIGINT
: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807Snowflake
NUMBER(38,0)
: -99999999999999999999999999999999999999~+99999999999999999999999999999999999999
警告 SSC-EWI-0036 が生成されました。
区間/期間データタイプ¶
Snowflakeでは、間隔と期間は文字列 (VARCHAR
) として保存されます。変換の際、 SnowConvert は同じ式を文字列として再作成する UDF を作成します。警告 SSC-EWI-TD0053 が生成されます。
現在、Snowflake SnowConvert によって作成されている UDF の公開リポジトリで、 UDF の多くを見ることができます。
これらの UDF は、期間が VARCHAR
で、データ/時間の部分が *
で区切られて保存されていると仮定しています。例えば、 PERIOD('2018-01-01','2018-01-20')
のようなTeradataの期間は、 '2018-01-01
*2018-01-20'
のような VARCHAR
としてSnowflakeに保存されるはずです。
区間に対する VARCHAR
変換の唯一の例外は、Datetime 式から値を加算/減算するために使用される区間リテラルです。Snowflake には INTERVAL
データ型はありませんが、 区間定数は 特定の目的のために存在します。例:
入力コード:
SELECT TIMESTAMP '2018-05-13 10:30:45' + INTERVAL '10 05:30' DAY TO MINUTE;
出力コード:
SELECT
TIMESTAMP '2018-05-13 10:30:45' + INTERVAL '10 DAY, 05 HOUR, 30 MINUTE';
区間が数値式で乗算/除算される大文字と小文字は、代わりに同等の DATEADD
関数呼び出しに変換されます。
入力コード:
SELECT TIME '03:45:15' - INTERVAL '15:32:01' HOUR TO SECOND * 10;
出力コード:
SELECT
DATEADD('SECOND', 10 * -1, DATEADD('MINUTE', 10 * -32, DATEADD('HOUR', 10 * -15, TIME '03:45:15')));
JSON データ型¶
JSON 内の要素は、テーブルに挿入されるとキー順に並びます。そのため、クエリ結果が異なる場合があります。しかし、これは JSON 内の配列の順番には影響しません。
例えば、オリジナルの JSON は:
{
"firstName":"Peter",
"lastName":"Andre",
"age":31,
"cities": ["Los Angeles", "Lima", "Buenos Aires"]
}
入力文字列を JSON ドキュメントとして解釈し、 VARIANT 値を生成する Snowflake PARSE_୧JSON() を使用します。入力される JSON は以下のようになります:
{
"age": 31,
"cities": ["Los Angeles", "Lima", "Buenos Aires"],
"firstName": "Peter",
"lastName": "Andre"
}
「age」が最初の要素になっていることに注目してください。しかし、「都市」の配列は元の順序を維持しています。
既知の問題¶
問題は見つかりませんでした。