마이그레이션 검증 스크립트 - Amazon Timestream

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

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

마이그레이션 검증 스크립트

검증 스크립트는 소스 테이블(Amazon Timestream 또는 Amazon Athena)과 InfluxDB 버킷 측정값 간의 논리적 행/포인트 수를 선택적 시간 범위 사양과 비교합니다. 이 도구는 두 시스템에 대해 병렬 쿼리를 실행하고 결과를 비교하여 마이그레이션 프로세스 중 데이터 무결성을 보장하는 데 도움이 됩니다.

검증 스크립트는 Athena의 내보낸 데이터세트 또는 원래 Timestream 데이터베이스/테이블에 대한 쿼리를 지원합니다. Timestream을 직접 쿼리하면 내보내기 이후 데이터가 작성된 경우 부정확한 비교가 발생할 수 있습니다. 수집이 시작된 후 언제든지 검증 스크립트를 실행할 수 있습니다. 먼저 WAL(Write-Ahead Log)이 완전히 플러시될 때까지 기다리도록 InfluxDB의 지표 엔드포인트를 폴링하여 수집 후 파일 병합 및 중복 제거를 포함한 모든 데이터 처리가 완료되도록 합니다. 그런 다음 스크립트는 동일한 기간 동안 개수 전용 쿼리를 실행하여 결과를 비교하여 일치 또는 불일치를 강조 표시합니다. 차원이 필드로 사용되는 변환된 스키마에 대한 선택적 스키마/태그 필터링을 지원하고 사람이 읽을 수 있는 타이밍 및 결과 요약을 생성하여 마이그레이션 프로세스의 검증을 용이하게 합니다.

사전 조건 및 설치

마이그레이션 검증 스크립트 README의 사전 조건 및 설치 섹션을 참조하세요.

사용량

python validator.py [options]

모든 설정은 CLI 플래그 또는 환경 변수로 제공할 수 있습니다. 리포지토리 내의 example.env 파일을 참조하세요.

문제 해결 및 권장 사항은 마이그레이션 검증 스크립트 README를 참조하세요.

정리

마이그레이션을 마치면 다음과 같은 리소스/아티팩트가 생성됩니다.

  • Timestream for LiveAnalytics 데이터가 포함된 Athena 테이블입니다. 기본적으로 이는 기본 Athena 데이터베이스의 <Timestream 데이터베이스 이름>_<Timestream 테이블 이름>입니다.

  • 변환된 라인 프로토콜 데이터가 포함된 Athena 테이블입니다. 기본적으로 이는 기본 Athena 데이터베이스의 lp_<Athena table name>입니다.

  • 경로가 <Timestream 데이터베이스 이름>/<Timestream 테이블 이름>/unload-<%Y-%m-%d-%H:%M:%S>/line-protocol-output인 S3 버킷 내의 라인 프로토콜 데이터입니다.

  • Timestream for LiveAnalytics 내보내기 도구의 일부로 생성된 로드되지 않은 데이터입니다.

  • EC2 인스턴스에 데이터 및 로그를 다운로드했습니다.

  • Timestream for LiveAnalytics 내보내기 도구의 일부로 로깅하는 데 사용되는 경우 DynamoDB 테이블입니다.

Athena 리소스 정리

Athena 테이블을 삭제하려면 다음 AWS CLI 명령을 실행하여 <Athena 테이블 이름>을 삭제하려는 테이블 이름으로 바꾸고 <Athena 데이터베이스 이름>을 테이블이 있는 Athena 데이터베이스 이름으로 바꿉니다.

aws glue delete-table \ --database-name <Athena database name> \ --name <Athena table name>

S3 리소스 정리

S3 버킷 내에서 라인 프로토콜 데이터를 삭제하려면 다음 AWS CLI 명령을 실행하여 <S3 버킷 이름>을 S3 버킷 이름으로, <Timestream 데이터베이스 이름>을 Timestream for LiveAnalytics 데이터베이스 이름으로, <Timestream 테이블 이름>을 Timestream for LiveAnalytics 테이블 이름으로, <timestamp>를 S3 버킷의 unload-<%Y-%m-%d-%H:%M:%S> 경로를 구성하는 타임스탬프로 바꿉니다.

aws s3 rm \ s3://<S3 bucket name>/<Timestream database name>/<Timestream table name>/unload-<timestamp>/line-protocol-output \ --recursive

S3 버킷을 삭제하려면 다음 명령을 실행하여 <S3 버킷 이름>을 S3 버킷 이름으로 바꿉니다.

aws s3 delete-bucket --bucket <S3 bucket name>

DynamoDB 리소스 정리

DynamoDB 테이블을 삭제하려면 다음 명령을 실행하여 <테이블 이름>을 삭제하려는 DynamoDB 테이블의 이름으로 바꿉니다.

aws dynamodb delete-table --table-name <table name>