SnowConvert AI - Teradata - データ型

このセクションでは、TeradataとSnowflakeにおけるデータ型の同等性を示します。

換算テーブル

Teradata

Snowflake

メモ

ARRAY

ARRAY

BIGINT

BIGINT

Snowflakeの BIGINTNUMBER(38,0)のためのエイリアスです。[Check out note]

BLOB

BINARY

8MB に制限されています。 BLOB はサポートされておらず、警告 SSC-FDM-TD0001 が生成されます

BYTE

BINARY

BYTEINT

BYTEINT

CHAR

CHAR

CLOB

VARCHAR

​16MB に制限されています。 CLOB はサポートされておらず、警告 SSC-FDM-TD0002 が生成されます

DATE

DATE

DECIMAL

DECIMAL

DOUBLE PRECISION

DOUBLE PRECISION

FLOAT

FLOAT

INTEGER

INTEGER

Snowflakeの INTEGERNUMBER(38,0) のエイリアスです。\ [note]をチェックしてください。

INTERVAL DAY [TO HOUR | MINUTE | SECOND]

VARCHAR(20)

​加算/減算で使用される場合を除き、Snowflakeでは間隔は VARCHARです。[以下をチェックしてください note]。

INTERVAL HOUR [TO MINUTE | SECOND]

VARCHAR(20)

​加算/減算で使用される場合を除き、Snowflakeでは間隔は VARCHARです。[以下をチェックしてください note]。

INTERVAL MINUTE [TO SECOND]

VARCHAR(20)

​加算/減算で使用される場合を除き、Snowflakeでは間隔は VARCHARです。[以下をチェックしてください note]。

INTERVAL SECOND

VARCHAR(20)

​加算/減算で使用される場合を除き、Snowflakeでは間隔は VARCHARです。[以下をチェックしてください note]。

INTERVAL YEAR [TO SECOND]

VARCHAR(20)

​加算/減算で使用される場合を除き、Snowflakeでは間隔は VARCHARです。[以下をチェックしてください note]。

JSON

VARIANT

<p> JSON の中の要素は、テーブルに挿入されたときにキー順に並びます。<br>[<a href="data-types.md#json-data-type">note</a>] をチェックしてください。</p>

MBR

---

サポート対象外

NUMBER

NUMBER(38, 18)

PERIOD(DATE)

VARCHAR(24)

期間はSnowflakeではVARCHARです。[Check out note]

PERIOD(TIME)

VARCHAR(34)

期間はSnowflakeではVARCHARです。[Check out note]

PERIOD(TIME WITH TIME ZONE)

VARCHAR(46)

期間はSnowflakeではVARCHARです。[Check out note]

PERIOD(TIMESTAMP)

VARCHAR(58)

期間はSnowflakeではVARCHARです。[Check out note]

PERIOD(TIMESTAMP WITH TIME ZONE)

VARCHAR(58)

期間はSnowflakeではVARCHARです。[Check out note]

REAL

REAL

SMALLINT

​SMALLINT

SMALLINT のSnowflakeは NUMBER(38,0)のエイリアスです。 [ note]をチェックしてください

ST_GEOMETRY

GEOGRAPHY

TIME

TIME

TIME WITH TIME ZONE

TIME

警告 SSC-FDM-0005 が生成されます。

TIMESTAMP

TIMESTAMP

TIMESTAMP WITH TIME ZONE

TIMESTAMP_TZ

VARBYTE

BINARY

VARCHAR

VARCHAR

XML

VARIANT

メモ

整数データタイプ

整数データ型 (INTEGER, SMALLINT, BIGINT) の変換では、それぞれ同じ名前のSnowflakeのエイリアスに変換されます。これらのエイリアスはそれぞれ、 NUMBER(38,0) に変換され、整数データ型よりもかなり大きなデータ型となります。以下は、各データ型に存在しうる値の範囲の比較です。

  • Teradata INTEGER: -2,147,483,648 から 2,147,483,647

  • Teradata SMALLINT: -32768 から 32767

  • Teradata BIGINT: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

  • Snowflake NUMBER(38,0): -99999999999999999999999999999999999999~+99999999999999999999999999999999999999

警告 SSC-EWI-0036 が生成されます。

区間/期間データタイプ

区間と期間は、Snowflakeでは文字列( VARCHAR )として保存されます。変換の際、 SnowConvert AI は、同じ式を文字列として再作成する UDF を作成します。警告 SSC-EWI-TD0053 が生成されます。

You can see more of the UDFs in the public repository of UDFs currently created by Snowflake SnowConvert.

These UDFs assume that periods are stored in a VARCHAR where the data/time parts are separated by an *. For example for a Teradata period like PERIOD('2018-01-01','2018-01-20') it should be stored in Snowflake as a VARCHAR like '2018-01-01*2018-01-20'.

注釈

Preview Feature: When the --UseIntervalDatatype preview flag is enabled, Teradata INTERVAL columns are preserved as native Snowflake INTERVAL types (for example, INTERVAL DAY TO SECOND, INTERVAL YEAR TO MONTH) instead of being converted to VARCHAR. Interval literals are also normalized and preserved. See the Interval Data Types translation reference for complete transformation details.

区間に対する 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」が最初の要素になっていることに注目してください。しかし、「都市」の配列は元の順序を維持しています。

既知の問題

問題は見つかりませんでした。