SnowConvert: Teradata 데이터 타입

데이터 타입

변환 테이블

Teradata

Snowflake

참고

ARRAY

ARRAY

BIGINT

BIGINT

Snowflake의 BIGINTNUMBER(38,0) 의 별칭입니다.[참고]

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) 의 별칭입니다. [참고 확인]

INTERVAL DAY [TO HOUR | MINUTE | SECOND]

VARCHAR(20)

​간격은 덧셈/뺄셈에 사용되는 경우를 제외하고 Snowflake에서 VARCHAR 로 저장됩니다. [참고 확인]

INTERVAL HOUR [TO MINUTE | SECOND]

VARCHAR(20)

​간격은 덧셈/뺄셈에 사용되는 경우를 제외하고 Snowflake에서 VARCHAR 로 저장됩니다. [참고 확인]

INTERVAL MINUTE [TO SECOND]

VARCHAR(20)

​간격은 덧셈/뺄셈에 사용되는 경우를 제외하고 Snowflake에서 VARCHAR 로 저장됩니다. [참고 확인]

INTERVAL SECOND

VARCHAR(20)

​간격은 덧셈/뺄셈에 사용되는 경우를 제외하고 Snowflake에서 VARCHAR 로 저장됩니다. [참고 확인]

INTERVAL YEAR [TO SECOND]

VARCHAR(20)

​간격은 덧셈/뺄셈에 사용되는 경우를 제외하고 Snowflake에서 VARCHAR 로 저장됩니다. [참고 확인]

JSON

VARIANT

<p> JSON 안에 있는 요소는 테이블에 삽입할 때 키에 따라 정렬됩니다.<br>[<a href=”data-types.md#json-data-type”>참고</a> 확인].</p>

MBR

---

지원되지 않음

NUMBER

NUMBER(38, 18)

PERIOD(DATE)

VARCHAR(24)

기간은 Snowflake에서 VARCHAR 로 저장됩니다. [참고 확인].

PERIOD(TIME)

VARCHAR(34)

기간은 Snowflake에서 VARCHAR 로 저장됩니다. [참고 확인].

PERIOD(TIME WITH TIME ZONE)

VARCHAR(46)

기간은 Snowflake에서 VARCHAR 로 저장됩니다. [참고 확인].

PERIOD(TIMESTAMP)

VARCHAR(58)

기간은 Snowflake에서 VARCHAR 로 저장됩니다. [참고 확인].

PERIOD(TIMESTAMP WITH TIME ZONE)

VARCHAR(58)

기간은 Snowflake에서 VARCHAR 로 저장됩니다. [참고 확인].

REAL

REAL

SMALLINT

​SMALLINT

Snowflake의 SMALLINTNUMBER(38,0) 의 별칭입니다.[참고 확인]

ST_GEOMETRY

GEOGRAPHY

TIME

TIME

TIME WITH TIME ZONE

TIME

TIMESTAMP

TIMESTAMP

TIMESTAMP WITH TIME ZONE

TIMESTAMP_TZ

VARBYTE

BINARY

VARCHAR

VARCHAR

XML

VARIANT

참고

참고

Teradata data types에 대한 설명서를 참조하십시오.

정수 데이터 타입

정수 데이터 타입(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 는 동일한 식을 문자열로 다시 생성하는 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;
Copy

출력 코드:

 SELECT
TIMESTAMP '2018-05-13 10:30:45' + INTERVAL '10 DAY, 05 HOUR, 30 MINUTE';
Copy

간격을 숫자 식에 곱하거나 나누는 경우 대신 동등한 DATEADD 함수 호출로 변환됩니다.

입력 코드:

 SELECT TIME '03:45:15' - INTERVAL '15:32:01' HOUR TO SECOND * 10;
Copy

출력 코드:

 SELECT
DATEADD('SECOND', 10 * -1, DATEADD('MINUTE', 10 * -32, DATEADD('HOUR', 10 * -15, TIME '03:45:15')));
Copy

JSON 데이터 타입

JSON 내부의 요소는 테이블에 삽입될 때 키에 따라 정렬됩니다. 따라서 쿼리 결과가 다를 수 있습니다. 그러나 이는 JSON 내부의 배열 순서에는 영향을 미치지 않습니다.

예를 들어, 원본이 JSON 인 경우:

 { 
   "firstName":"Peter",
   "lastName":"Andre",
   "age":31,
   "cities": ["Los Angeles", "Lima", "Buenos Aires"]
}
Copy

입력 문자열을 JSON 문서로 해석하여 VARIANT 값을 생성하는 Snowflake PARSE_JSON()를 사용합니다. 삽입된 JSON 은:

 { 
   "age": 31,
   "cities": ["Los Angeles", "Lima", "Buenos Aires"],
   "firstName": "Peter",
   "lastName": "Andre" 
}
Copy

이제 “age”가 첫 번째 요소가 된 것을 주목하십시오. 그러나 “cities”의 배열은 원래의 순서를 유지합니다.

알려진 문제

문제가 발견되지 않았습니다.