View a markdown version of this page

쿼리 분석 로그 내보내기 - AWS Clean Rooms

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

쿼리 분석 로그 내보내기

AWS Clean Rooms 는 Apache Spark에서 SQL 쿼리를 실행합니다. 쿼리가 실패하거나 느리게 실행되는 경우 해당 쿼리에 대한 Spark 로그에는 원인을 찾는 데 필요한 실행 세부 정보가 포함됩니다. 실패한 단계, 작업 간에 작업이 분산된 방식, 사용된 메모리 양, 소요된 시간을 보여줍니다.

쿼리는 여러 공동 작업 구성원이 제공한 데이터에서 실행됩니다. 따라서 원시 Spark 로그는 테이블 이름, 스토리지 위치 및 데이터 값과 같은 다른 멤버의 데이터에 대한 정보를 공개할 수 있습니다. 이러한 이유로 AWS Clean Rooms 는 원시 로그를 제공하지 않습니다. 대신 사용자 소유의 Amazon S3 버킷으로 복사하는 고객 데이터 및 멤버 메타데이터가 redacted. AWS Clean Rooms exports되는 수정된 복사본을 생성합니다. 그런 다음 Spark 기록 서버와 같이 선택한 도구를 사용하여 내보낸 로그를 분석합니다.

중요

내보낸 로그가 수정됩니다. 데이터 값이 제거되고 개수와 크기가 근사치로 보고되므로 공동 작업의 데이터에 대한 세부 정보가 드러나지 않습니다. 따라서 내보낸 로그는 Spark 작업이 외부에서 생성하는 로그와 일치하지 않습니다 AWS Clean Rooms. 해석하기 전에를 읽습니다수정된 로그 이해.

사전 조건

쿼리에 대한 로그를 내보내려면 먼저 다음 사항이 모두 true여야 합니다.

  • 멤버십에는 CAN_EXPORT_QUERY_ANALYSIS_LOG 멤버 기능이 있습니다. 이 기능을 부여하려면 모든 공동 작업 구성원이 변경 요청을 승인해야 합니다. 자세한 내용은 멤버 기능 업데이트 단원을 참조하십시오.

  • 쿼리 실행자 또는 쿼리의 지급인입니다. 기능만으로는 충분하지 않습니다. 실행했거나 비용을 지불한 쿼리에 대해서만 로그를 내보낼 수 있습니다.

  • 쿼리가 터미널 상태에 도달했습니다. 상태가 SUCCESS, CANCELLED, 또는 FAILED인 쿼리에 대한 로그를 내보낼 수 있습니다TIMED_OUT. 쿼리가 실행 중인 동안에는 로그를 내보낼 수 없습니다.

모든 쿼리에 로그 내보내기를 사용할 수 있는 것은 아닙니다. 지원되지 않는 사례는 섹션을 참조하세요고려 사항 및 제한 사항.

로그 내보내기를 위해 IAM 역할을 생성할 필요가 없습니다.는 내보낸 로그를 자체 자격 증명을 사용하여 AWS Clean Rooms 기록하므로 자체 권한에서 이미 허용하는 경우에만 로그를 작성합니다. 최소 권한으로 내보낸 로그에 사용하는 버킷 및 키 접두사에만 쓰기 액세스 권한을 부여합니다.

참고

대상 버킷이 고객 관리형 키와 함께 SSE-KMS를 사용하는 경우 해당 키를 사용할 권한이 있어야 합니다. 그렇지 않으면 내보내기 요청이 즉시 실패합니다.

쿼리에 대한 로그 내보내기

로그 내보내기는 비동기식입니다. 내보내기를 시작하면가 내보내기 ID와 상태로 즉시 AWS Clean Rooms 반환되고 IN_PROGRESS는 백그라운드에서 로그를 수정하고 복사합니다.

내보내기를 시작하기 전에는 대상 버킷validationSuccess에 라는 0바이트 객체를 AWS Clean Rooms 작성하여 쓸 수 있는지 확인합니다. 이 검사에 실패하면 백그라운드에서 나중에 실패하는 대신 확인 오류와 함께 요청이 즉시 실패합니다.

Console
쿼리에 대한 로그를 내보내려면(콘솔)
  1. 에 로그인 AWS Management Console 하고 AWS Clean Rooms 콘솔을 엽니다.

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

  3. 쿼리가 포함된 공동 작업을 선택합니다.

  4. 분석 탭을 선택합니다.

  5. 다음 중 하나를 수행하세요.

    • 쿼리 테이블에서 쿼리를 선택하고 작업을 선택한 다음 쿼리 분석 로그 내보내기를 선택합니다.

    • 쿼리를 선택하여 세부 정보 페이지를 연 다음 분석 로그 내보내기를 선택합니다.

  6. 대화 상자에서 대상 Amazon S3 버킷과 선택적으로 키 접두사를 선택합니다.

  7. 내보내기를 선택합니다.

쿼리 분석 로그 내보내기 옵션을 사용할 수 없는 경우 콘솔에서 이유를 설명합니다. 다음 표에는 메시지와 메시지 해결 방법이 나와 있습니다.

메시지 해결 방법
로그를 내보내려면 쿼리가 터미널 상태에 도달해야 합니다. 쿼리 실행이 완료될 때까지 기다립니다.
쿼리 분석 로그를 내보낼 수 없습니다. 공동 작업 구성원에게 멤버십에 기능을 추가하는 변경 요청을 제출하도록 요청합니다.
차등 프라이버시를 사용하는 쿼리에는 로그 내보내기가 지원되지 않습니다. 없음. 이러한 쿼리에는 로그 내보내기를 사용할 수 없습니다.
쿼리 실행자 또는 쿼리의 지급인만 분석 로그를 내보낼 수 있습니다. 쿼리를 실행했거나 비용을 지불한 멤버에게 로그를 내보내도록 요청합니다.

쿼리 세부 정보 페이지에는 각 내보내기 및 해당 상태를 나열하는 내보내기 기록 테이블이 포함되어 있습니다. 실패한 내보내기를 선택하여 오류를 보거나 대상 보기를 선택하여 Amazon S3에서 내보낸 로그를 엽니다.

API

쿼리에 대한 로그를 내보내려면(API)

멤버십StartAnalysisLogExport, 보호된 쿼리 및 대상을 지정하여를 호출합니다.

aws cleanrooms start-analysis-log-export \ --membership-identifier membership-id \ --analysis-id protected-query-id \ --analysis-type PROTECTED_QUERY \ --result-configuration '{ "outputConfiguration": { "s3": { "bucket": "amzn-s3-demo-bucket", "keyPrefix": "query-logs/" } } }'

응답은 analysisLogExportIdstatus의가 포함된 analysisLogExport 객체를 반환합니다IN_PROGRESS.

내보내기를 확인하려면 멤버십 식별자와 내보내기 식별자를 GetAnalysisLogExport 사용하여를 호출하고 상태가 SUCCESS 또는가 될 때까지 폴링합니다FAILED. 내보내기가 실패하면 응답에 코드와 메시지가 있는 error 필드가 포함됩니다.

aws cleanrooms get-analysis-log-export \ --membership-identifier membership-id \ --analysis-log-export-identifier analysis-log-export-id

멤버십에 대한 내보내기를 나열하려면를 호출합니다ListAnalysisLogExports. 를 사용하여 쿼리를 기준으로 결과를 필터링하고 analysisIdentifier를 사용하여 내보내기 상태를 기준으로 결과를 필터링할 수 있습니다status. status 필터는 IN_PROGRESS, SUCCESS또는를 허용FAILED하고 한 번에 하나의 값을 사용합니다. 로그를 내보낸 쿼리가 아닌 내보내기 자체의 상태입니다. 쿼리 결과가 페이지 매김됩니다.

aws cleanrooms list-analysis-log-exports \ --membership-identifier membership-id \ --analysis-identifier protected-query-id \ --status SUCCESS

지정된 쿼리 및 대상에 대해 한 번에 하나의 내보내기만 활성화할 수 있습니다. 동일한 쿼리와 동일한 Amazon S3 대상에 대한 다른 내보내기가 아직 진행 중인 동안 내보내기를 시작하면 확인 오류와 함께 요청이 실패합니다. 동일한 쿼리를 한 번에 두 번 내보내려면 두 번째 내보내기에 다른 키 접두사를 사용합니다.

다른 멤버와 독립적으로 내보냅니다. 사용자와 다른 멤버가 모두 동일한 쿼리를 실행하거나 비용을 지불한 경우 각 멤버는 로그를 자신의 대상으로 내보낼 수 있습니다.

내보낸 로그가 기록되는 위치

AWS Clean Rooms 는 다음 구조를 사용하여 지정한 버킷 및 키 접두사 아래에 내보낸 로그를 작성합니다.

s3://your-bucket/key-prefix/collaboration=collaboration-id/analysis=protected-query-id/analysis-log-export-id/

경로에는 내보내기 ID가 포함되어 있으므로 동일한 쿼리를 두 번 이상 내보내도 이전 내보내기의 로그를 덮어쓰지 않습니다.

내보내기에는 쿼리에 대해 수정된 Spark 이벤트 로그가 포함됩니다. 이 로그는 작업, 단계, 작업, 타이밍 및 쿼리 계획을 포함하는 구조화된 JSON 레코드 세트입니다. Spark 자체는이 이벤트 로그 형식을 작성합니다. 자체 tooling을 포함하여 Spark 이벤트 로그를 읽는 모든 도구를 사용하여 내보내기를 처리할 수 있습니다. 내보낸 로그에 대한 뷰어를 제공하지 AWS Clean Rooms 않습니다. 내보내기 디렉터리 내에서 레코드는 Spark가 롤링 이벤트 로그에 사용하는 레이아웃을 따릅니다. 라는 디렉터리eventlog_v2_protected-query-id에는 하나 이상의 events_ 파일과 애플리케이션이 완료한 파일을 기록하는 appstatus_ 파일이 들어 있습니다. 디렉터리 및 파일 이름은 내부 AWS Clean Rooms 식별자가 아닌 보호된 쿼리 ID를 사용합니다.

Spark 기록 서버는 이러한 도구 중 하나입니다. Spark 기록 서버에서 내보내기를 보려면 인스턴스가 쿼리의 eventlog_v2_ 디렉터리를 가리키도록 합니다. 예를 들어 키 접두사가 amzn-s3-demo-bucket 있는 버킷6ba7b810-9dad-11d1-80b4-00c04fd430c8으로 쿼리를 내보내면 다음이 query-logs/ 생성됩니다.

s3://amzn-s3-demo-bucket/query-logs/ collaboration=f47ac10b-58cc-4372-a567-0e02b2c3d479/ analysis=6ba7b810-9dad-11d1-80b4-00c04fd430c8/ a1b2c3d4-e5f6-7890-abcd-ef1234567890/ eventlog_v2_6ba7b810-9dad-11d1-80b4-00c04fd430c8/ events_1_6ba7b810-9dad-11d1-80b4-00c04fd430c8 appstatus_6ba7b810-9dad-11d1-80b4-00c04fd430c8

이 예제에서는 Spark 기록 서버 로그 디렉터리를 다음과 같이 설정합니다. eventlog_v2_ 디렉터리를 가리키면 내보낸 쿼리만 렌더링됩니다. Amazon S3에서 로그를 직접 읽으려면 S3A 커넥터가 필요하므로 s3a:// 체계를 사용합니다. Spark 기록 서버가 로 실행하는 자격 증명은 버킷에 대한 읽기 액세스 권한이 필요합니다.

spark.history.fs.logDirectory s3a://amzn-s3-demo-bucket/query-logs/collaboration=f47ac10b-58cc-4372-a567-0e02b2c3d479/analysis=6ba7b810-9dad-11d1-80b4-00c04fd430c8/a1b2c3d4-e5f6-7890-abcd-ef1234567890/eventlog_v2_6ba7b810-9dad-11d1-80b4-00c04fd430c8/

Spark 기록 서버 버전 3.5.0 이상을 사용합니다. 자체 인스턴스를 설정하고 실행할 책임은 사용자에게 있습니다. Spark 기록 서버 인스턴스 실행에 대한 자세한 내용은 Apache Spark 웹 사이트의 사후 보기를 참조하세요.

로그 내보내기 문제 해결

로그를 내보낼 권한이 없으므로 요청이 실패합니다.

멤버십에 CAN_EXPORT_QUERY_ANALYSIS_LOG 기능이 없습니다. 공동 작업 구성원은 기능을 추가하려면 변경 요청을 제출해야 하며 모든 구성원은 이를 승인해야 합니다. 자세한 내용은 멤버 기능 업데이트 단원을 참조하십시오.

버킷을에 쓸 수 없으므로 요청이 실패합니다.

버킷이 존재하고, 공동 AWS 리전 작업과 동일한에 있으며, 버킷에 쓸 권한이 있는지 확인합니다. 버킷 정책이를 거부s3:PutObject하거나 특정 VPC 엔드포인트에 대한 쓰기를 제한하는 경우는 버킷에 쓸 AWS Clean Rooms 수 없습니다.

버킷이 고객 관리형 키와 함께 SSE-KMS를 사용하는 경우이 오류는 해당 키를 사용할 권한이 없음을 의미할 수도 있습니다. 키 정책이 Amazon S3를 kms:Decrypt 통해 kms:GenerateDataKey 및를 호출하도록 허용하는지 확인합니다.

쿼리가 실행되지 않아 내보내기가 실패합니다.

쿼리가 Spark에서 실행되지 않고 터미널 상태에 도달했으므로 로그가 생성되지 않았습니다. 이는 쿼리가 검증에 실패하거나 시작하기 전에 취소될 때 발생합니다. 내보내기가 실패하고 오류 코드가 LOGS_NOT_AVAILABLE 이고 쿼리에 사용할 수 있는 쿼리 실행 로그가 없다는 메시지가 표시됩니다. 내보낼 항목이 없습니다.

로그 내보내기를 사용할 수 있기 전에 쿼리가 실행되었으므로 요청이 실패합니다.

쿼리가 실행되는 동안 수정된 로그가 생성됩니다. 에서 로그 내보내기를 사용할 수 있게 되기 전에 실행된 쿼리는 아무것도 AWS Clean Rooms 생성하지 않으므로 내보낼 것이 없습니다. 동일한 분석에 대한 로그를 가져오려면 쿼리를 다시 실행하고 새 실행에 대한 로그를 내보냅니다.

할당량을 초과하여 요청이 실패합니다.

동시에 진행 중일 수 있는 최대 내보내기 수에 도달했습니다. 진행 중인 내보내기가 완료될 때까지 기다린 다음 다시 시도합니다.

내보내기가 시작되었지만 실패함

초기 권한 검사는 내보내기를 시작하는 시점에가 버킷에 쓸 AWS Clean Rooms 수 있는지만 확인합니다. 권한이 변경되거나 내보내기가 실행되는 동안 내보내기에 사용되는 자격 증명이 취소되면 내보내기가 시작된 후 내보내기가 실패합니다. 를 호출GetAnalysisLogExport하여 오류를 확인하고, 원인을 해결하고, 새 내보내기를 시작합니다.

내보내기가 실패하고 내부 오류를 보고합니다.

내부 오류는 쿼리에 대한 로그가 생성되지 않았음을 의미할 수 있습니다. 내보내기를 다시 시도할 수 있습니다.

내보낸 로그가 불완전하게 표시됨

프로세스가 메모리 부족으로 쿼리가 종료된 경우 일부 로그 출력이 누락될 수 있습니다. 호스트에 보관되어 갑자기 중지되는 로그는 복구되지 않기 때문입니다. 이미 작성된 로그는 여전히 내보내집니다.

버킷에 0바이트 validationSuccess 객체가 있습니다.

AWS Clean Rooms 는 지정한 키 접두사에이 객체를 작성하여 내보내기를 시작하기 전에 대상에 쓸 수 있는지 확인합니다. 내보내기의 자체 디렉터리 아래에 기록되는 내보낸 로그와는 별개이며 삭제할 수 있습니다. 이 객체가 접두사 옆에 있지 않고 접두사 내에 생성되도록 슬래시로 키 접두사를 종료합니다.

고려 사항 및 제한 사항

  • 2026년 8월 11일 이후에 실행되는 SQL 쿼리에 대한 로그를 내보낼 수 있습니다. 로그 내보내기는 PySpark 작업을 지원하지 않습니다.

  • 검증에 실패했거나 STARTED 상태에 도달하기 전에 취소된 쿼리에는 로그 내보내기가 지원되지 않습니다.

  • 차등 프라이버시를 사용하는 쿼리에는 로그 내보내기가 지원되지 않습니다. 자세한 내용은 AWS Clean Rooms 차등 프라이버시 단원을 참조하십시오.

  • 로그 내보내기 대상 버킷은 공동 작업 AWS 리전 과 동일한에 있어야 합니다. 교차 리전 내보내기는 지원되지 않습니다.

  • 로그 내보내기를 위한 대상 버킷을 보호하는 것은 사용자의 책임입니다. 버킷에 대한 퍼블릭 액세스를 차단하고 내보낸 로그를 읽는 사람의 레코드가 필요한 경우 서버 액세스 로깅을 활성화합니다.

  • AWS Clean Rooms 는 로그 내보내기에 AWS KMS 키를 허용하지 않습니다. 내보낸 로그는 대상 Amazon S3 버킷의 기본 암호화 구성을 사용하여 암호화됩니다. 고객 관리형 키로 암호화하려면 내보내기 전에 해당 키를 사용하도록 버킷의 기본 암호화를 구성합니다.

  • 로그 내보내기는 SUCCESS, FAILED, CANCELLED또는 터미널 상태에 도달한 쿼리만 지원합니다TIMED_OUT.

  • 내보내기가 시작된 후에는 취소할 수 없습니다.

동시에 실행할 수 있는 내보내기 수를 포함하여 로그 내보내기에 적용되는 할당량은 섹션을 참조하세요에 대한 할당량 AWS Clean Rooms.