Timestream for LiveAnalytics의 UNLOAD 모범 사례 - Amazon Timestream

Amazon Timestream for LiveAnalytics와 유사한 기능을 원하는 경우 Amazon Timestream for InfluxDB를 고려해 보세요. 간소화된 데이터 수집과 실시간 분석을 위한 10밀리초 미만의 쿼리 응답 시간을 제공합니다. 여기에서 자세히 알아보세요.

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

Timestream for LiveAnalytics의 UNLOAD 모범 사례

다음은 UNLOAD 명령과 관련된 모범 사례입니다.

  • UNLOAD 명령을 사용하여 S3 버킷으로 내보낼 수 있는 데이터 양에는 제한이 없습니다. 그러나 쿼리는 60분 후에 시간 초과되며 단일 쿼리에서 60GB 이상의 데이터를 내보내지 않는 것이 좋습니다. 60GB 이상의 데이터를 내보내야 하는 경우 작업을 여러 쿼리로 분할합니다.

  • S3에 데이터를 업로드하기 위해 수천 건의 요청을 보낼 수도 있지만 여러 S3 접두사에 대한 쓰기 작업을 병렬화하는 것이 좋습니다. 설명서를 참조하세요. 여러 리더/라이터가 동일한 폴더에 액세스할 때 S3 API 직접 호출 속도가 스로틀링될 수 있습니다.

  • 접두사 정의를 위한 S3 키 길이 제한이 있으므로 특히 partitioned_by 절을 사용하는 경우 버킷 및 폴더 이름은 10~15자 이내로 지정하는 것이 좋습니다.

  • UNLOAD 문을 포함하는 쿼리에 대해 4XX 또는 5XX 오류가 발생하는 경우 부분 결과가 S3 버킷에 작성되었을 가능성이 있습니다. Timestream for LiveAnalytics는 버킷에서 데이터를 삭제하지 않습니다. 동일한 S3 대상에 대해 다른 UNLOAD 쿼리를 실행하기 전에 실패한 쿼리로 생성된 파일을 수동으로 삭제하는 것이 좋습니다. 실패한 쿼리에 의해 작성된 파일은 해당 QueryExecutionId로 식별할 수 있습니다. 실패한 쿼리의 경우 Timestream for LiveAnalytics는 S3 버킷으로 매니페스트 파일을 내보내지 않습니다.

  • Timestream for LiveAnalytics는 S3로 쿼리 결과를 내보내기 위해 다중 부분 업로드를 사용합니다. UNLOAD 문을 포함하는 쿼리에 대해 Timestream for LiveAnalytics에서 4XX 또는 5XX 오류가 발생하는 경우 Timestream for LiveAnalytics는 다중 부분 업로드를 최대한 중단하려고 시도하지만 일부 불완전한 부분이 남아 있을 수 있습니다. 따라서 여기 지침에 따라 S3 버킷에서 불완전한 다중 부분 업로드의 자동 정리를 설정하는 것이 좋습니다.

CSV 파서를 사용하여 CSV 형식의 데이터에 액세스하기 위한 권장 사항

  • CSV 파서는 구분 기호, 이스케이프 및 따옴표에 동일한 문자를 사용하는 것을 허용하지 않습니다.

  • 일부 CSV 파서는 배열과 같은 복소수 데이터 유형을 해석할 수 없으므로 JSON 역직렬화기를 통해 해석하는 것이 좋습니다.

Parquet 형식의 데이터에 액세스하기 위한 권장 사항

  1. 사용 사례에서 스키마 즉, 열 이름에 UTF-8 문자 지원이 필요한 경우 Parquet-mr 라이브러리 사용을 권장합니다.

  2. 결과의 타임스탬프는 12바이트 정수(INT96)로 표현됩니다.

  3. 시계열은 array<row<time, value>>로 표현되며 다른 중첩된 구조는 Parquet 형식으로 지원되는 해당 데이터 유형을 사용합니다.

partition_by 절 사용

  • partitioned_by 필드에 사용되는 열은 select 쿼리의 마지막 열이어야 합니다. partitioned_by 필드에 여러 열이 사용되는 경우 해당 열들은 select 쿼리의 마지막 열이어야 하며 partition_by 필드에 사용된 순서와 동일해야 합니다.

  • 데이터를 파티셔닝하는 데 사용되는 열 값(partitioned_by 필드)에는 ASCII 문자만 포함될 수 있습니다. Timestream for LiveAnalytics는 값에 UTF-8 문자를 허용하지만 S3는 객체 키로 ASCII 문자만 지원합니다.