SQL 분석 템플릿을 사용하여 구성된 테이블 쿼리 - AWS Clean Rooms

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

SQL 분석 템플릿을 사용하여 구성된 테이블 쿼리

이 절차에서는 AWS Clean Rooms 콘솔에서 분석 템플릿을 사용하여 사용자 지정 분석 규칙을 사용하여 구성된 테이블을 쿼리하는 방법을 보여줍니다.

SQL 분석 템플릿을 사용하여 사용자 지정 분석 규칙을 사용하여 구성된 테이블을 쿼리하려면
  1. 에 로그인 AWS Management Console 하고 https://console.aws.amazon.com/cleanrooms AWS Clean Rooms 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 공동 작업을 선택합니다.

  3. 사용자의 멤버 자격 상태가 쿼리 실행인 공동 작업을 선택합니다.

  4. 분석 탭의 테이블 섹션에서 테이블과 관련 분석 규칙 유형(사용자 지정 분석 규칙)을 확인합니다.

    참고

    목록에 예상한 테이블이 보이지 않는 경우 다음과 같은 이유가 있을 수 있습니다.

  5. 분석 섹션의 분석 모드에서 분석 템플릿 실행을 선택한 다음 드롭다운 목록에서 분석 템플릿을 선택합니다.

  6. SQL 분석 템플릿의 파라미터는 정의에 자동으로 채워집니다.

  7. (Spark 분석 엔진만 해당) 지원되는 작업자 유형작업자 수를 지정합니다.

    다음 표를 사용하여 사용 사례에 필요한 유형과 수 또는 작업자를 결정합니다.

    작업자 유형 vCPU 메모리(GB) 스토리지(GB) 작업자 수 총 클린룸 처리 단위(CRPU)
    CR.1X(기본값) 4 30 100 4 8
    128 256
    CR.4X 16 120 400 4 32
    32 256
    참고

    작업자 유형과 작업자 수에 따라 관련 비용이 발생합니다. 요금에 대한 자세한 내용은 AWS Clean Rooms 요금을 참조하세요.

  8. (Spark 분석 엔진만 해당) 지원되는 Spark 속성을 지정합니다.

    1. Spark 속성 추가를 선택합니다.

    2. Spark 속성 대화 상자의 드롭다운 목록에서 속성 이름을 선택하고 값을 입력합니다.

    다음 표에는 각 속성에 대한 정의가 나와 있습니다.

    Spark 속성에 대한 자세한 내용은 Apache Spark 설명서의 Spark 속성을 참조하세요.

    속성 이름 Description 기본 값

    spark.task.maxFailures

    작업이 실패하기 전에 작업이 실패할 수 있는 연속 횟수를 제어합니다. 1보다 크거나 같은 값이 필요합니다. 허용되는 재시도 횟수는이 값에서 1을 뺀 값과 같습니다. 시도가 성공하면 실패 횟수가 재설정됩니다. 여러 태스크의 장애는이 제한에 누적되지 않습니다.

    4

    spark.sql.files.maxPartitionBytes

    Parquet, JSON 및 ORC와 같은 파일 기반 소스에서 읽을 때 단일 파티션으로 압축할 최대 바이트 수를 설정합니다.

    128MB

    spark.hadoop.fs.s3.maxRetries

    Amazon S3 파일 작업에 대한 최대 재시도 횟수를 설정합니다.

    spark.network.timeout

    모든 네트워크 상호 작용의 기본 제한 시간을 설정합니다. 구성되지 않은 경우 다음 제한 시간 설정을 재정의합니다.

    • spark.storage.blockManagerHeartbeatTimeoutMs

    • spark.shuffle.io.connectionTimeout

    • spark.rpc.askTimeout

    • spark.rpc.lookupTimeout

    미정

    spark.rdd.compress

    spark.io.compression.codec를 사용하여 직렬화된 RDD 파티션을 압축할지 여부를 지정합니다. Java 및 Scala의 StorageLevel.MEMORY_ONLY_SER 또는 Python의 StorageLevel.MEMORY_ONLY에 적용됩니다. 스토리지 공간을 줄이지만 추가 CPU 처리 시간이 필요합니다.

    FALSE

    spark.shuffle.spill.compress

    spark.io.compression.codec를 사용하여 셔플 유출 데이터를 압축할지 여부를 지정합니다.

    TRUE

    spark.sql.adaptive.advisoryPartitionSizeInBytes

    spark.sql.adaptive.enabled가 true일 때 적응형 최적화 중에 셔플 파티션의 대상 크기를 바이트 단위로 설정합니다. 작은 파티션을 병합하거나 왜곡된 파티션을 분할할 때 파티션 크기를 제어합니다.

    ( spark.sql.adaptive.shuffle.targetPostShuffleInputSize의 값)

    spark.sql.adaptive.autoBroadcastJoinThreshold

    조인 중에 작업자 노드로 브로드캐스트하기 위한 최대 테이블 크기를 바이트 단위로 설정합니다. 적응형 프레임워크에만 적용됩니다. spark.sql.autoBroadcastJoinThreshold와 동일한 기본값을 사용합니다. 브로드캐스팅을 비활성화하려면 -1로 설정합니다.

    (none)

    spark.sql.adaptive.coalescePartitions.enabled

    작업 크기를 최적화하기 위해 spark.sql.adaptive.advisoryPartitionSizeInBytes를 기반으로 연속 셔플 파티션을 병합할지 여부를 지정합니다. spark.sql.adaptive.enabled가 true여야 합니다.

    TRUE

    spark.sql.adaptive.coalescePartitions.initialPartitionNum

    병합 전 셔플 파티션의 초기 수를 정의합니다. spark.sql.adaptive.enabled 및 spark.sql.adaptive.coalescePartitions.enabled가 모두 true여야 합니다. 기본값은 spark.sql.shuffle.partitions입니다.

    (none)

    spark.sql.adaptive.coalescePartitions.minPartitionSize

    적응형 최적화 중에 파티션이 너무 작아지지 않도록 병합된 셔플 파티션의 최소 크기를 설정합니다.

    1MB

    spark.sql.adaptive.coalescePartitions.parallelismFirst

    파티션 병합 중에 spark.sql.adaptive.advisoryPartitionSizeInBytes 대신 클러스터 병렬 처리를 기반으로 파티션 크기를 계산할지 여부를 지정합니다. 병렬 처리를 극대화하기 위해 구성된 대상 크기보다 작은 파티션 크기를 생성합니다. 과도한 소규모 작업을 방지하여 리소스 사용률을 높이려면 사용량이 많은 클러스터에서이 값을 false로 설정하는 것이 좋습니다.

    TRUE

    spark.sql.adaptive.enabled

    정확한 런타임 통계를 기반으로 쿼리 실행 중에 조정 쿼리 실행을 활성화하여 쿼리 계획을 다시 최적화할지 여부를 지정합니다.

    TRUE

    spark.sql.adaptive.forceOptimizeSkewedJoin

    추가 셔플을 도입하더라도 OptimizeSkewedJoin을 강제로 활성화할지 여부를 지정합니다.

    FALSE

    spark.sql.adaptive.localShuffleReader.enabled

    정렬 병합 조인에서 브로드캐스트 해시 조인으로 변환한 후와 같이 셔플 파티셔닝이 필요하지 않은 경우 로컬 셔플 리더를 사용할지 여부를 지정합니다. spark.sql.adaptive.enabled가 true여야 합니다.

    TRUE

    spark.sql.adaptive.maxShuffledHashJoinLocalMapThreshold

    로컬 해시 맵을 빌드하기 위한 최대 파티션 크기를 바이트 단위로 설정합니다. 다음과 같은 경우 정렬 병합 조인보다 셔플 해시 조인의 우선순위를 지정합니다.

    • 이 값은 spark.sql.adaptive.advisoryPartitionSizeInBytes와 같거나 초과합니다.

    • 모든 파티션 크기가이 한도 내에 있습니다.

    spark.sql.join.preferSortMergeJoin 설정을 재정의합니다.

    0바이트

    spark.sql.adaptive.optimizeSkewsInRebalancePartitions.enabled

    spark.sql.adaptive.advisoryPartitionSizeInBytes를 기반으로 왜곡된 셔플 파티션을 더 작은 파티션으로 분할하여 최적화할지 여부를 지정합니다. spark.sql.adaptive.enabled가 true여야 합니다.

    TRUE

    spark.sql.adaptive.rebalancePartitionsSmallPartitionFactor

    분할 중에 파티션을 병합하기 위한 크기 임계값 인수를 정의합니다. 이 인수보다 작은 파티션에 spark.sql.adaptive.advisoryPartitionSizeInBytes를 곱하면 병합됩니다.

    0.2

    spark.sql.adaptive.skewJoin.enabled

    스큐 파티션을 분할하고 선택적으로 복제하여 셔플 조인에서 데이터 스큐를 처리할지 여부를 지정합니다. 정렬 병합 및 셔플 해시 조인에 적용됩니다. spark.sql.adaptive.enabled가 true여야 합니다.

    TRUE

    spark.sql.adaptive.skewJoin.skewedPartitionFactor

    파티션 스큐를 결정하는 크기 인수를 결정합니다. 파티션의 크기가 둘 다를 초과하면 파티션이 왜곡됩니다.

    • 이 인수에 파티션 크기 중앙값을 곱합니다.

    • spark.sql.adaptive.skewJoin.skewedPartitionThresholdInBytes의 값입니다.

    5

    spark.sql.adaptive.skewJoin.skewedPartitionThresholdInBytes

    왜곡된 파티션을 식별하기 위한 크기 임계값을 바이트 단위로 설정합니다. 파티션의 크기가 둘 다를 초과하면 파티션이 왜곡됩니다.

    • 이 임계값

    • 파티션 크기 중앙값에 spark.sql.adaptive.skewJoin.skewedPartitionFactor를 곱합니다.

    이 값을 spark.sql.adaptive.advisoryPartitionSizeInBytes보다 크게 설정하는 것이 좋습니다.

    256MB

    spark.sql.autoBroadcastJoinThreshold

    조인 중에 작업자 노드로 브로드캐스트하기 위한 최대 테이블 크기를 바이트 단위로 설정합니다. 브로드캐스팅을 비활성화하려면 -1로 설정합니다.

    10MB

    spark.sql.broadcastTimeout

    브로드캐스트 조인 중 브로드캐스트 작업에 대한 제한 시간을 초 단위로 제어합니다.

    300초

    spark.sql.cbo.enabled

    계획 통계 추정을 위해 비용 기반 최적화(CBO)를 활성화할지 여부를 지정합니다.

    FALSE

    spark.sql.cbo.joinReorder.dp.star.filter

    비용 기반 조인 열거 중에 스타 조인 필터 휴리스틱을 적용할지 여부를 지정합니다.

    FALSE

    spark.sql.cbo.joinReorder.dp.threshold

    동적 프로그래밍 알고리즘에 허용되는 조인된 노드의 최대 수를 설정합니다.

    12

    spark.sql.cbo.joinReorder.enabled

    비용 기반 최적화(CBO)에서 조인 재정렬을 활성화할지 여부를 지정합니다.

    FALSE

    spark.sql.cbo.planStats.enabled

    논리적 계획 생성 중에 카탈로그에서 행 수 및 열 통계를 가져올지 여부를 지정합니다.

    FALSE

    spark.sql.cbo.starSchemaDetection

    스타 스키마 감지를 기반으로 조인 재정렬을 활성화할지 여부를 지정합니다.

    FALSE

    spark.sql.crossJoin.enabled

    spark.sql.files.maxPartitionNum

    파일 기반 소스(Parquet, JSON 및 ORC)에 대한 분할 파일 파티션의 대상 최대 수를 설정합니다. 초기 수가이 값을 초과할 때 파티션의 크기를 조정합니다. 이는 제안된 대상이며 보장된 제한이 아닙니다.

    (none)

    spark.sql.files.maxRecordsPerFile

    단일 파일에 쓸 최대 레코드 수를 설정합니다. 0 또는 음수 값으로 설정하면 제한이 적용되지 않습니다.

    0

    spark.sql.files.minPartitionNum

    파일 기반 소스(Parquet, JSON 및 ORC)에 대한 분할 파일 파티션의 목표 최소 수를 설정합니다. 기본값은 spark.sql.leafNodeDefaultParallelism입니다. 이는 제안된 대상이며 보장된 제한이 아닙니다.

    (none)

    spark.sql.inMemoryColumnarStorage.batchSize

    열 기반 캐싱의 배치 크기를 제어합니다. 크기를 늘리면 메모리 사용률과 압축이 향상되지만 out-of-memory 오류의 위험이 증가합니다.

    10000

    spark.sql.inMemoryColumnarStorage.compressed

    데이터 통계를 기반으로 열에 대한 압축 코덱을 자동으로 선택할지 여부를 지정합니다.

    TRUE

    spark.sql.inMemoryColumnarStorage.enableVectorizedReader

    열 기반 캐싱에 벡터화된 읽기를 활성화할지 여부를 지정합니다.

    TRUE

    spark.sql.legacy.allowHashOnMapType

    맵 유형 데이터 구조에서 해시 작업을 허용할지 여부를 지정합니다. 이 레거시 설정은 이전 Spark 버전의 맵 유형 처리와의 호환성을 유지합니다.

    spark.sql.legacy.allowNegativeScaleOfDecimal

    소수 유형 정의에서 음수 스케일 값을 허용할지 여부를 지정합니다. 이 레거시 설정은 음수 십진수 스케일을 지원하는 이전 Spark 버전과의 호환성을 유지합니다.

    spark.sql.legacy.castComplexTypesToString.enabled

    복잡한 유형을 문자열로 캐스팅하기 위해 레거시 동작을 활성화할지 여부를 지정합니다. 이전 Spark 버전의 유형 변환 규칙과의 호환성을 유지합니다.

    spark.sql.legacy.charVarcharAsString

    CHAR 및 VARCHAR 유형을 STRING 유형으로 처리할지 여부를 지정합니다. 이 레거시 설정은 이전 Spark 버전의 문자열 유형 처리와 호환됩니다.

    spark.sql.legacy.createEmptyCollectionUsingStringType

    문자열 유형 요소를 사용하여 빈 컬렉션을 생성할지 여부를 지정합니다. 이 레거시 설정은 이전 Spark 버전의 컬렉션 초기화 동작과의 호환성을 유지합니다.

    spark.sql.legacy.exponentLiteralAsDecimal.enabled

    지수 리터럴을 십진수 유형으로 해석할지 여부를 지정합니다. 이 레거시 설정은 이전 Spark 버전의 숫자 리터럴 처리와 호환성을 유지합니다.

    spark.sql.legacy.json.allowEmptyString.enabled

    JSON 처리에서 빈 문자열을 허용할지 여부를 지정합니다. 이 레거시 설정은 이전 Spark 버전의 JSON 구문 분석 동작과의 호환성을 유지합니다.

    spark.sql.legacy.parquet.int96RebaseModelRead

    Parquet 파일을 읽을 때 레거시 INT96 타임스탬프 리베이스 모드를 사용할지 여부를 지정합니다. 이 레거시 설정은 이전 Spark 버전의 타임스탬프 처리와의 호환성을 유지합니다.

    spark.sql.legacy.timeParserPolicy

    이전 버전과의 호환성을 위해 시간 구문 분석 동작을 제어합니다. 이 레거시 설정은 문자열에서 타임스탬프와 날짜를 구문 분석하는 방법을 결정합니다.

    spark.sql.legacy.typeCoercion.datetimeToString.enabled

    날짜/시간 값을 문자열로 변환할 때 레거시 유형 강제 동작을 활성화할지 여부를 지정합니다. 이전 Spark 버전의 날짜/시간 변환 규칙과의 호환성을 유지합니다.

    spark.sql.maxSinglePartitionBytes

    최대 파티션 크기를 바이트 단위로 설정합니다. 플래너는 병렬 처리를 개선하기 위해 더 큰 파티션에 대한 셔플 작업을 도입합니다.

    128분

    spark.sql.metadataCacheTTLSeconds

    메타데이터 캐시의 TTL(time-to-live)을 제어합니다. 파티션 파일 메타데이터 및 세션 카탈로그 캐시에 적용됩니다. 다음이 필요합니다.

    • 양수 값이 0보다 큼

    • spark.sql.catalogImplementation

    • spark.sql.hive.filesourcePartitionFileCacheSize가 0보다 큼

    • spark.sql.hive.manageFilesourcePartitions가 true로 설정됨

    -1000ms

    spark.sql.optimizer.collapseProjectAlwaysInline

    중복이 발생하더라도 인접한 프로젝션과 인라인 표현식을 축소할지 여부를 지정합니다.

    FALSE

    spark.sql.optimizer.dynamicPartitionPruning.enabled

    조인 키로 사용되는 파티션 열에 대한 조건자를 생성할지 여부를 지정합니다.

    TRUE

    spark.sql.optimizer.enableCsvExpressionOptimization

    from_csv 작업에서 불필요한 열을 잘라내어 SQL 옵티마이저에서 CSV 표현식을 최적화할지 여부를 지정합니다.

    TRUE

    spark.sql.optimizer.enableJsonExpressionOptimization

    다음을 통해 SQL 옵티마이저에서 JSON 표현식을 최적화할지 여부를 지정합니다.

    • from_json 작업에서 불필요한 열 정리

    • from_json 및 to_json 조합 간소화

    • named_struct 작업 최적화

    TRUE

    spark.sql.optimizer.excludedRules

    쉼표로 구분된 규칙 이름으로 식별되는 비활성화할 옵티마이저 규칙을 정의합니다. 일부 규칙은 정확성을 위해 필요하므로 비활성화할 수 없습니다. 최적화 프로그램은 성공적으로 비활성화된 규칙을 기록합니다.

    (none)

    spark.sql.optimizer.runtime.bloomFilter.applicationSideScanSizeThreshold

    애플리케이션 측에 블룸 필터를 주입하는 데 필요한 최소 집계 스캔 크기를 바이트 단위로 설정합니다.

    10GB

    spark.sql.optimizer.runtime.bloomFilter.creationSideThreshold

    생성 측에 블룸 필터를 주입하기 위한 최대 크기 임계값을 정의합니다.

    10MB

    spark.sql.optimizer.runtime.bloomFilter.enabled

    셔플 조인의 한쪽에 선택적 조건자가 있는 경우 셔플 데이터를 줄이기 위해 블룸 필터를 삽입할지 여부를 지정합니다.

    TRUE

    spark.sql.optimizer.runtime.bloomFilter.expectedNumItems

    런타임 블룸 필터의 기본 예상 항목 수를 정의합니다.

    1000000

    spark.sql.optimizer.runtime.bloomFilter.maxNumBits

    런타임 블룸 필터에 허용되는 최대 비트 수를 설정합니다.

    67108864

    spark.sql.optimizer.runtime.bloomFilter.maxNumItems

    런타임 블룸 필터에 허용되는 예상 항목의 최대 수를 설정합니다.

    4000000

    spark.sql.optimizer.runtime.bloomFilter.number.threshold

    드라이버의 out-of-memory 오류를 방지하기 위해 쿼리당 허용되는 비 DPP 런타임 필터의 최대 수를 제한합니다.

    10

    spark.sql.optimizer.runtime.bloomFilter.numBits

    런타임 블룸 필터에 사용되는 기본 비트 수를 정의합니다.

    8388608

    spark.sql.optimizer.runtime.rowlevelOperationGroupFilter.enabled

    행 수준 작업에 대해 런타임 그룹 필터링을 활성화할지 여부를 지정합니다. 데이터 소스가 다음을 수행할 수 있도록 허용합니다.

    • 데이터 소스 필터를 사용하여 전체 데이터 그룹(예: 파일 또는 파티션) 정리

    • 런타임 쿼리를 실행하여 일치하는 레코드 식별

    • 비용이 많이 드는 재작성을 방지하기 위해 불필요한 그룹을 폐기합니다.

    제한:

    • 모든 표현식이 데이터 소스 필터로 변환할 수 있는 것은 아닙니다.

    • 일부 표현식에는 Spark 평가가 필요합니다(예: 하위 쿼리).

    TRUE

    spark.sql.optimizer.runtimeFilter.semiJoinReduction.enabled

    셔플 조인의 한쪽에 선택적 조건자가 있는 경우 셔플 데이터를 줄이기 위해 세미 조인을 삽입할지 여부를 지정합니다.

    FALSE

    spark.sql.parquet.aggregatePushdown

    최적화를 위해 집계를 Parquet으로 푸시다운할지 여부를 지정합니다. 지원:

    • 부울, 정수, 부동 소수점 및 날짜 유형의 경우 MIN 및 MAX

    • 모든 데이터 유형에 대한 COUNT

    Parquet 파일 바닥글에서 통계가 누락된 경우 예외가 발생합니다.

    FALSE

    spark.sql.parquet.columnarReaderBatchSize

    각 Parquet 벡터화된 리더 배치의 행 수를 제어합니다. out-of-memory 오류를 방지하기 위해 성능 오버헤드와 메모리 사용량의 균형을 맞추는 값을 선택합니다.

    4096

    spark.sql.session.timeZone

    문자열 리터럴 및 Java 객체 변환에서 타임스탬프를 처리하기 위한 세션 시간대를 정의합니다. 다음을 허용합니다.

    • 지역/도시 형식의 리전 기반 IDs(예: America/Los_Angeles)

    • 영역 오프셋(예: -08 또는 +01:00)

    • +00:00에 대한 별칭으로 UTC 또는 Z

    (현지 시간대의 값)

    spark.sql.shuffle.partitions

    조인 또는 집계 중에 데이터 셔플링을 위한 기본 파티션 수를 설정합니다. 동일한 체크포인트 위치에서 구조화된 스트리밍 쿼리 재시작 간에는 수정할 수 없습니다.

    200

    spark.sql.shuffledHashJoinFactor

    셔플 해시 조인 자격을 결정하는 데 사용되는 곱셈 인수를 정의합니다. 작은 쪽 데이터 크기에이 인수를 곱한 값이 큰 쪽 데이터 크기보다 작으면 셔플 해시 조인이 선택됩니다.

    3

    spark.sql.sources.parallelPartitionDiscovery.threshold

    파일 기반 소스(Parquet, JSON 및 ORC)가 있는 드라이버 측 파일 목록의 최대 경로 수를 설정합니다. 파티션 검색 중에 초과하면 별도의 Spark 분산 작업을 사용하여 파일이 나열됩니다.

    32

    spark.sql.statistics.histogram.enabled

    열 통계 계산 중에 등높이 히스토그램을 생성하여 추정 정확도를 개선할지 여부를 지정합니다. 기본 열 통계에 필요한 것 이상의 추가 테이블 스캔이 필요합니다.

    FALSE

  9. Run(실행)을 선택합니다.

    참고

    결과를 받을 수 있는 구성원이 쿼리 결과 설정을 구성하지 않은 경우 쿼리를 실행할 수 없습니다.

  10. 계속해서 매개변수를 조정하고 쿼리를 다시 실행하거나 + 버튼을 선택하여 새 탭에서 새 쿼리를 시작합니다.