기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
S3 Select와 함께 Spark를 사용하여 쿼리 성능 향상
중요
신규 고객은 더 이상 Amazon S3 Select를 사용할 수 없습니다. Amazon S3 Select 기존 고객은 평소처럼 이 기능을 계속 사용할 수 있습니다. 자세히 알아보기
Amazon EMR 릴리스 5.17.0 이상에서는 Amazon EMR 기반 Spark에서 S3 Select
S3 Select는 s3selectCSV
및 s3selectJSON
값을 사용하여 데이터 형식을 지정하는 CSV 및 JSON 파일에서 지원됩니다. 자세한 정보와 지침은 코드에서 S3 Select 지정 섹션을 참조하세요.
S3 Select가 애플리케이션에 적합한가요?
S3 Select 사용 여부에 관계없이 애플리케이션을 벤치마킹하여 애플리케이션에 적합한지 여부를 확인하는 것이 좋습니다.
다음 지침을 사용하여 애플리케이션과 함께 S3 Select를 사용할 수 있는지 확인하십시오.
-
쿼리가 원본 데이터 세트 중 반 이상을 필터링합니다.
-
Amazon S3 및 Amazon EMR 클러스터 간 네트워크 연결의 전송 속도와 가용 대역폭이 양호합니다. Amazon S3는 HTTP 응답을 압축하지 않으므로 압축된 입력 파일의 경우 응답 크기가 증가할 수 있습니다.
고려 사항 및 제한 사항
-
고객 제공 암호화 키를 사용하는 Amazon S3 서버 측 암호화(SSE-C) 및 클라이언트 측 암호화는 지원되지 않습니다.
-
AllowQuotedRecordDelimiters
속성이 지원되지 않습니다. 이 속성이 지정되면 쿼리가 실패합니다. -
UTF-8 형식의 CSV 및 JSON 파일만 지원됩니다. 여러 줄의 CSV는 지원되지 않습니다.
-
비압축 또는 gzip 파일만 지원됩니다.
-
nanValue
,positiveInf
,negativeInf
및 손상된 레코드와 관련된 옵션(예: failfast 및 dropmalformed 모드)은 지원되지 않습니다. -
10진수 안에 쉼표(,)를 사용하는 것은 지원되지 않습니다. 예를 들어
10,000
은 지원되지 않고10000
은 지원됩니다. -
마지막 줄의 설명 문자는 지원되지 않습니다.
-
파일 끝의 빈 줄은 처리되지 않습니다.
-
다음과 같은 필터는 Amazon S3로 푸시다운되지 않습니다.
-
COUNT()
및SUM()
등의 집계 함수 -
속성에 대해
CAST()
를 사용하는 필터링 예를 들어CAST(stringColumn as INT) = 1
입니다. -
객체이거나 복잡한 속성을 가진 필터 예를 들어
intArray[1] = 1, objectColumn.objectNumber = 1
입니다. -
값이 리터럴 값이 아닌 필터 예:
intColumn1 = intColumn2
-
문서화된 제한 사항으로 S3 Select 지원 데이터 형식만 지원됩니다.
-
코드에서 S3 Select 지정
다음 예제는 Scala, SQL, R 및 PySpark를 사용하여 CSV에 대해 S3 Select를 지정하는 방법을 보여줍니다. JSON에 대해 S3 Select를 동일한 방식으로 사용할 수 있습니다. 옵션 목록, 기본값 및 제한 사항을 보려면 옵션 단원을 참조하십시오.
옵션
s3selectCSV
및 s3selectJSON
을 사용하는 경우 다음 옵션을 사용할 수 있습니다. 지정되지 않은 경우 기본값이 사용됩니다.
S3selectCSV와 옵션
옵션 | Default | 사용법 |
---|---|---|
|
|
압축 사용 여부를 나타냅니다. |
|
"," |
필드 구분 기호를 지정합니다. |
|
|
따옴표 문자를 지정합니다. 빈 문자열 지정은 지원되지 않으며 잘못된 XML 오류가 발생합니다. |
|
|
이스케이프 문자를 지정합니다. |
|
|
|
설명 |
|
설명 문자를 지정합니다. 설명 표시기는 비활성화할 수 없습니다. 즉, |
|
"" |
selectJSON과 옵션
옵션 | Default | 사용법 |
---|---|---|
|
|
압축 사용 여부를 나타냅니다. |
|
"false" |
|