Amazon Redshift의 반정형 데이터 - Amazon Redshift

Amazon Redshift는 2025년 11월 1일부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. Python UDF를 사용하려면 이 날짜 이전에 UDF를 생성하세요. 기존 Python UDF는 정상적으로 계속 작동합니다. 자세한 내용은 블로그 게시물을 참조하세요.

Amazon Redshift의 반정형 데이터

Amazon Redshift의 반정형 데이터 지원을 사용하여 Amazon Redshift 데이터 웨어하우스에서 반정형 데이터를 수집하고 저장할 수 있습니다. Amazon Redshift는 SUPER 데이터 형식과 PartiQL 언어로 데이터 웨어하우스 기능을 확장하여 SQL 및 NoSQL 데이터 원본과 통합합니다. 이러한 방식으로 Amazon Redshift는 JSON과 같은 관계형 및 반정형 저장 데이터에 대한 효율적인 분석을 지원합니다. PartiQL과 Amazon Redshift 통합에 대한 자세한 내용은 PartiQL - Amazon Redshift용 SQL 호환 쿼리 언어 섹션을 참조하세요.

Amazon Redshift는 SUPER 데이터 형식과 Amazon Redshift Spectrum이라는 두 가지 형태의 반정형 데이터 지원을 제공합니다.

반정형 데이터를 쿼리하려면 반정형 데이터를 Amazon Redshift에 수집하여 SUPER 데이터 형식으로 저장하거나 Amazon Redshift Spectrum을 사용하여 Amazon S3에 저장된 데이터를 쿼리합니다.

반정형 데이터 작업의 모범 사례

반정형 데이터 작업 시에는 다음 모범 사례를 고려하세요.

  • SUPER 데이터로 작업할 때는 enable_case_sensitive_super_attributeenable_case_sensitive_identifier 구성 옵션을 true로 설정하는 것이 좋습니다. 자세한 내용은 enable_case_sensitive_super_attributeenable_case_sensitive_identifier(을)를 참조하세요.

  • COPY 명령을 사용하여 Amazon S3 버킷의 데이터를 Amazon Redshift SUPER 열로 로드합니다.

  • 쿼리 전에 스키마를 적용할 필요 없이 PartiQL 동적 형식 지정과 lax 의미 체계를 사용하여 SUPER 데이터 값에 임시 쿼리를 실행할 수 있습니다. 동적 형식 지정에 대한 자세한 내용은 동적 형식 지정 섹션을 참조하세요. lax 의미 체계에 대한 자세한 내용은 Lax 의미 체계 섹션을 참조하세요.

  • 데이터를 자주 쿼리할 계획이라면 PartiQL을 사용하여 스키마 없는 데이터와 반정형 데이터를 구체화된 뷰로 분할합니다. 나뉜 데이터에 대한 분석을 수행할 때 Amazon Redshift 구체화된 뷰의 열 형식 구조가 더 나은 성능을 제공합니다. 또한 수집된 데이터에 대한 기존 스키마가 필요한 사용자 및 BI(비즈니스 인텔리전스) 도구는 데이터의 기존 스키마 표현으로 뷰(구체화된 뷰 또는 가상 뷰)를 사용할 수 있습니다.

    PartiQL 구체화된 뷰가 JSON 또는 SUPER에 있는 데이터를 기존의 열 형식의 구체화된 뷰로 추출한 후 구체화된 뷰를 쿼리할 수 있습니다. 구체화된 뷰에 대한 자세한 내용은 Amazon Redshift의 구체화된 뷰 섹션을 참조하세요. SUPER 데이터 형식이 구체화된 뷰에서 작동하는 방식에 대한 자세한 내용은 SUPER 데이터 형식과 구체화된 뷰 섹션을 참조하세요.

SUPER 데이터 형식 사용에 대한 개념

다음에서 몇 가지 Amazon Redshift SUPER 데이터 형식 개념을 찾아볼 수 있습니다.

Amazon Redshift에서 SUPER 데이터 형식이 무엇인지 이해SUPER 데이터 형식은 Amazon Redshift 스칼라와 중첩 배열 및 구조를 포함하는 스키마 없는 배열 및 구조를 저장할 수 있는 Amazon Redshift 데이터 형식입니다. SUPER 데이터 형식은 기본적으로 JSON 또는 문서 지향 소스에서 가져온 데이터를 비롯한 다양한 형식의 반정형 데이터를 저장할 수 있습니다. 새 SUPER 열을 추가하여 반정형 데이터를 저장하고 일반적인 스칼라 열과 함께 SUPER 열에 액세스하는 쿼리를 작성할 수 있습니다. SUPER 데이터 형식에 대한 자세한 내용은 SUPER 형식 섹션을 참조하세요.

스키마 없는 JSON을 SUPER로 수집 - Amazon Redshift는 유연한 반정형 SUPER 데이터 형식으로 스키마 없는 JSON을 수신하고 SUPER 데이터 형식의 열로 수집할 수 있습니다. 예를 들어 COPY 명령을 사용하여 JSON 값 [10.5, “first”]를 SUPER 데이터 형식 열로 수집할 수 있습니다. 이 열은 [10.5, ‘first’]라는 SUPER 값을 가집니다. 또한 JSON_PARSE 함수를 사용하여 JSON을 수집할 수도 있습니다. COPY와 json_parse는 기본적으로 strict 구문 분석 의미 체계를 사용하여 JSON을 수집합니다. 데이터베이스 데이터 자체를 사용하여 배열 및 구조를 포함한 SUPER 값을 구성할 수도 있습니다.

스키마 없는 JSON의 유연한 구조를 수집하는 동안 SUPER 열의 스키마 수정이 필요 없습니다. 예를 들어 클릭 스트림을 분석하는 동안 처음에는 "IP" 및 "time" 속성이 있는 "click" 구조를 SUPER 열에 저장합니다. 이러한 변경 사항을 수집하기 위해 스키마를 변경하지 않고 "customer ID" 속성을 추가할 수 있습니다.

SUPER 데이터 형식에 사용되는 기본 형식은 텍스트 형식의 JSON 값보다 작은 공간이 필요한 이진 형식입니다. 이를 통해 쿼리 시 SUPER 값의 빠른 수집 및 런타임 처리가 가능합니다.

PartiQL을 사용하여 SUPER 데이터 쿼리 – PartiQL은 현재 많은 AWS 서비스에서 사용하는 SQL-92의 이전 버전과 호환되는 확장입니다. PartiQL을 사용하면 친숙한 SQL 구문으로 SUPER의 기존 테이블 형식 SQL 데이터와 반정형 데이터 모두에 대한 액세스를 원활하게 결합할 수 있습니다. 객체 및 배열 탐색을 수행하고 배열을 중첩 해제할 수 있습니다. PartiQL은 표준 SQL 언어를 확장하여 중첩 및 다중값 데이터를 선언적으로 표현하고 처리합니다.

PartiQL은 SUPER 열의 중첩 및 스키마 없는 데이터가 일급 시민인 SQL의 확장입니다. PartiQL은 쿼리 컴파일 시간 동안 모든 쿼리 표현식의 형식 검사를 요구하지 않습니다. 이 접근 방식을 사용하면 SUPER 열 내부의 실제 데이터 형식에 액세스할 때 쿼리 실행 중에 SUPER 데이터 형식을 포함하는 쿼리 표현식을 동적으로 입력할 수 있습니다. 또한 PartiQL은 형식 불일치로 인해 오류가 발생하지 않고 null을 반환하는 lax 모드에서 작동합니다. 스키마 없는 쿼리 처리와 lax 쿼리 처리가 결합된 PartiQL은 SQL 쿼리가 SUPER 열에서 수집되는 JSON 데이터를 평가하는 추출, 로드, 변환(ELT) 애플리케이션에 이상적입니다.

Amazon Redshift용 PartiQL에 대한 자세한 내용은 PartiQL - Amazon Redshift용 SQL 호환 쿼리 언어 섹션을 참조하세요. 동적 형식 지정에 대한 자세한 내용은 동적 형식 지정 섹션을 참조하세요. lax 쿼리 처리에 대한 자세한 내용은 Lax 의미 체계 섹션을 참조하세요.

Redshift Spectrum과 통합 - Amazon Redshift는 JSON, Parquet 및 중첩 데이터가 있는 기타 형식을 통해 Redshift Spectrum 쿼리를 실행할 때 PartiQL의 여러 측면을 지원합니다. Redshift Spectrum은 스키마가 있는 중첩 데이터만 지원합니다. 예를 들어 Redshift Spectrum을 사용하면 JSON 데이터에 ARRAY<STRUCT<a:INTEGER, b:DECIMAL(5,2)>> 스키마의 nested_schemaful_example 속성이 있다고 선언할 수 있습니다. 이 속성의 스키마는 데이터가 항상 정수 a와 소수 b가 있는 구조를 포함하는 배열을 포함한다고 결정합니다. 더 많은 속성을 포함하도록 데이터가 변경되면 형식도 변경됩니다. 반대로 SUPER 데이터 형식에는 스키마가 필요하지 않습니다. 속성이나 형식이 다른 구조 요소가 있는 배열을 저장할 수 있습니다. 또한 값을 배열 외부에 저장할 수도 있습니다.

SUPER 형식 데이터를 사용할 때 고려할 사항

SUPER 데이터 작업 시 다음 사항을 고려합니다.

SUPER 구성에 대한 자세한 내용은 SUPER 구성 섹션을 참조하세요.