SnowConvert AI - Teradata - データ型¶
このセクションでは、TeradataとSnowflakeにおけるデータ型の同等性を示します。
換算テーブル¶
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では |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
警告 SSC-FDM-0005 が生成されます。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
メモ¶
注釈
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 AI は、同じ式を文字列として再作成する 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」が最初の要素になっていることに注目してください。しかし、「都市」の配列は元の順序を維持しています。
既知の問題¶
問題は見つかりませんでした。