이전 SQL 데이터 유형

이 문서에서는 BigQuery의 이전 SQL 쿼리 구문이 지원하는 데이터 유형을 자세히 설명합니다. BigQuery의 기본 쿼리 구문은 표준 SQL입니다. 표준 SQL의 데이터 유형에 대한 자세한 내용은 표준 SQL 데이터 유형을 참조하세요.

이전 SQL 데이터 유형

데이터에는 다음 데이터 유형이 포함될 수 있습니다.

데이터 유형 가능한 값
STRING 가변 길이 문자(UTF-8) 데이터
BYTES 가변 길이 바이너리 데이터
  • 가져온 BYTES 데이터는 Base64로 인코딩해야 하지만 BigQuery가 읽고 변환할 수 있는 Avro BYTES 데이터는 예외입니다.
  • BigQuery 테이블에서 읽은 BYTES 데이터는 Base64로 인코딩되지만, Avro 바이트 데이터 유형이 적용되는 Avro 형식으로 내보내는 경우는 예외입니다.
INTEGER 부호 있는 64비트 정수입니다.
FLOAT 배정밀도 부동 소수점 형식입니다.
NUMERIC 이전 SQL은 NUMERIC을 제한적으로 지원합니다. 자세한 내용은 이전 SQL의 NUMERIC을 참조하세요.
BOOLEAN
  • CSV 형식: 1 또는 0, true 또는 false, t 또는 f, yes 또는 no, y 또는 n(모두 대소문자를 구분하지 않음)
  • JSON 형식: true 또는 false(대소문자를 구분하지 않음)
RECORD 하나 이상의 다른 필드 모음입니다.
TIMESTAMP

TIMESTAMP 데이터 유형은 UNIX 타임스탬프나 캘린더 날짜/시간으로 설명할 수 있습니다. BigQuery는 TIMESTAMP 데이터를 마이크로초 정밀도의 UNIX 타임스탬프로 내부에 저장합니다.

UNIX 타임스탬프

양수 또는 음수의 십진수입니다. 양수는 이폭(1970-01-01 00:00:00 UTC) 이후의 시간(초)을 지정하고, 음수는 이폭 이전의 시간(초)을 지정합니다. 소수점 이하 6자리(마이크로초 정밀도)까지 표기됩니다.

날짜 및 시간 문자열

날짜 및 시간 문자열은 YYYY-MM-DD HH:MM:SS 형식입니다. UTCZ 지정자가 지원됩니다.

날짜 및 시간 문자열에 시간대 오프셋을 제공할 수 있지만, BigQuery는 값을 내부 형식으로 변환한 후에 오프셋을 유지하지 않습니다. 원래 시간대의 데이터를 유지하고 싶다면 시간대 오프셋을 별도의 열에 저장하세요. 한 자릿수의 시간대 오프셋을 지정할 때는 앞에 0을 붙여야 합니다.

JSON 형식을 사용할 때는 날짜 및 시간 문자열을 따옴표로 묶어야 합니다.

예시

다음 예시는 특정 날짜를 UNIX 타임스탬프와 날짜 및 시간 문자열 형식으로 설명하는 동일한 방법을 보여줍니다.

이벤트 UNIX 타임스탬프 형식 날짜/시간 문자열 형식
오클라호마 시티 근처의 경미한(M4.2) 지진

1408452095.220
1408452095.220000

2014-08-19 07:41:35.220 -05:00
2014-08-19 12:41:35.220 UTC
2014-08-19 12:41:35.220
2014-08-19 12:41:35.220000
2014-08-19T12:41:35.220Z
달에 발을 내딛는 닐 암스트롱

-14182916

1969-07-20 20:18:04
1969-07-20 20:18:04 UTC
1969-07-20T20:18:04
Y10k 버그 수정 기한

253402300800
2.53402300800e11

10000-01-01 00:00
DATE 이전 SQL은 DATE를 제한적으로 지원합니다. 자세한 내용은 이전 SQL의 상용시를 참조하세요.
TIME 이전 SQL은 TIME을 제한적으로 지원합니다. 자세한 내용은 이전 SQL의 상용시를 참조하세요.
DATETIME 이전 SQL은 DATETIME을 제한적으로 지원합니다. 자세한 내용은 이전 SQL의 상용시를 참조하세요.

이전 SQL의 NUMERIC

NUMERIC 값을 읽고 SELECT list (with aliases), GROUP BY keys 등의 비수정 연산자로 처리하며 분석 함수의 필드를 통과하게 하는 등의 작업을 할 수 있습니다. 하지만 비교를 포함한 NUMERIC 값에 대한 다른 계산은 모두 정의되지 않은 결과를 생성합니다.

이전 SQL에서 지원되는 전송 및 변환 함수는 다음과 같습니다.

  • CAST(<numeric> AS STRING)
  • CAST(<string> AS NUMERIC)

이전 SQL의 상용시

DATE, TIME, DATETIME과 같은 상용시 데이터 유형을 읽고 SELECT list (with aliases), GROUP BY keys 등의 비수정 연산자로 처리하며 분석 함수 필드를 통과하게 하는 등의 작업을 할 수 있습니다. 하지만 비교를 포함한 상용시 값에 대한 다른 계산은 모두 정의되지 않은 결과를 생성합니다.

이전 SQL에서 지원되는 전송 및 변환 함수는 다음과 같습니다.

  • CAST(<date> AS STRING)
  • CAST(<time> AS STRING)
  • CAST(<datetime> AS STRING)
  • CAST(<string> AS DATE)
  • CAST(<string> AS TIME)
  • CAST(<string> AS DATETIME)

실제로 이전 SQL은 상용시 값을 정수로 해석하며, 상용시 값이라고 간주되는 정수에 대한 연산은 예기치 않은 결과를 생성합니다.

상용시 데이터 유형을 이용해 값을 계산하려면 DATE, DATETIME, TIME 데이터 유형에 대한 모든 SQL 연산을 지원하는 표준 SQL을 사용하는 것이 좋습니다.

다음 과정

  • API를 이용해 필드의 데이터 유형을 설정하는 방법은 schema.fields.type을 참조하세요.
  • 표준 SQL 데이터 유형은 데이터 유형을 참조하세요.
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.