Aurora/RDS Postgres를 대상으로 사용 - Amazon Timestream

LiveAnalytics용 Amazon Timestream은 2025년 6월 20일부터 신규 고객에게 더 이상 공개되지 않습니다. Amazon Timestream for LiveAnalytics를 사용하려면 해당 날짜 이전에 가입하세요. 기존 고객은 평소처럼 서비스를 계속 사용할 수 있습니다. 자세한 내용은 Amazon Timestream for LiveAnalytics 가용성 변경을 참조하세요.

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

Aurora/RDS Postgres를 대상으로 사용

이 섹션에서는 S3 스테이징된 시계열 데이터를 Amazon RDS/Aurora PostgreSQL로 수집하는 방법을 설명합니다. 수집 프로세스는 주로 Timestream의 내보내기 도구에서 생성된 CSV 파일을 Postgres로 수집하는 데 중점을 둡니다. 시간 기반 쿼리를 위한 적절한 인덱싱 전략을 사용하여 PostgreSQL 스키마와 테이블을 설계하는 것이 좋습니다. ETL 프로세스를 사용하여 Timestream의 특수 구조를 특정 요구 사항에 최적화된 관계형 테이블로 변환합니다. Timestream 데이터를 관계형 데이터베이스로 마이그레이션할 때 타임스탬프 열을 기본 시간 인덱스, Timestream의 measure_name에서 파생된 측정 식별자 열, Timestream의 차원 및 실제 치수의 차원 열로 스키마를 구성합니다. 시간 범위에 대한 전략적 인덱스와 자주 쿼리되는 차원 조합을 생성하여 데이터 변환 및 로드 프로세스 중에 성능을 최적화합니다. 시계열 데이터를 PostgreSQL로 마이그레이션할 때 쿼리 성능을 대규모로 유지하려면 적절한 인스턴스 크기 조정이 중요합니다. 인스턴스 클래스를 선택할 때 예상 데이터 볼륨, 쿼리 복잡성 및 동시성 요구 사항을 고려하고 시계열 집계 워크로드의 메모리 할당에 특히 주의하십시오. 수천만 개의 행을 초과하는 데이터 세트의 경우 PostgreSQL의 기본 파티셔닝 기능과 고급 인덱싱 전략을 활용하여 시계열 액세스 패턴에 맞게 최적화합니다.

기능 및 성능 테스트를 수행하여 올바른 인스턴스를 선택하고 PostgreSQL 데이터베이스를 조정하여 성능 병목 현상을 해결하는 것이 좋습니다. 마이그레이션 성공을 보장하고 쿼리 정확성을 유지하려면 소스 Timestream 데이터베이스와 대상 시스템 간의 샘플 쿼리 비교를 통해 엄격한 데이터 무결성 검사를 수행하는 것이 중요합니다. 두 시스템에 대해 동일한 쿼리를 실행하고 레코드 수, 집계, 특이값 등 결과를 비교하면 변환 오류, 데이터 손실 또는 쿼리 해석의 의미 차이를 나타낼 수 있는 불일치를 식별할 수 있습니다. 이 확인 프로세스는 데이터가 마이그레이션 후 분석적 가치를 유지하는지 검증하고, 이러한 인사이트에 의존하는 이해관계자 간에 새 시스템에 대한 신뢰를 구축하고, 플랫폼 간의 구문 또는 기능적 차이를 수용하는 데 필요한 쿼리 조정을 식별하고, 마이그레이션이 완료되고 성공한 것으로 간주될 수 있는 시기를 결정하기 위한 정량화 가능한 기준을 설정합니다. 이러한 체계적인 검사가 없으면 미묘한 데이터 불일치가 감지되지 않아 비즈니스 결정이 잘못되거나 전체 마이그레이션 프로젝트에 대한 신뢰도가 떨어질 수 있습니다.

수집

PostgreSQL을 대상으로 할 때 소스가 S3(CSV 및 Parquet 모두 지원AWS됨)인 데이터베이스 마이그레이션 서비스(DMS)를 사용하는 것이 좋습니다. AWS DMS가 특정 요구 사항에 적합하지 않을 수 있는 시나리오의 경우 S3에서 PostgreSQL CSV Ingestion Tool)를 제공합니다. PostgreSQL

PostgreSQL CSV 수집 도구 개요

PostgreSQL CSV Ingestion Tool은 CSV 파일을 PostgreSQL 데이터베이스로 효율적으로 로드하도록 설계된 고성능 유틸리티입니다. 다중 스레드 및 연결 풀링을 활용하여 여러 파일을 병렬로 처리하므로 데이터 로드 시간이 크게 단축됩니다. EC2 인스턴스를 사용하여이 스크립트를 실행하는 것이 좋습니다. C5N과 같은 네트워크 작업에 최적화된 인스턴스 유형을 사용하는 것이 좋습니다.

주요 기능

  • 다중 스레드 처리: 여러 CSV 파일을 동시에 로드합니다.

  • 연결 풀링: 데이터베이스 연결을 효율적으로 관리합니다.

  • 자동 열 감지: CSV 헤더에서 열 이름을 동적으로 추출합니다.

  • Retry Logic: 지수 백오프를 사용하여 일시적인 오류를 처리합니다.

  • 파일 관리: 처리된 파일을 지정된 디렉터리로 이동하여 재시도가 재개되지만 다시 시작되지 않도록 합니다.

  • 포괄적인 로깅: 모니터링 및 문제 해결을 위한 세부 로그입니다.

  • 오류 알림: 실패에 대한 선택적 SNS 알림입니다.

  • 보안 자격 증명: AWS Secrets Manager에서 데이터베이스 암호를 검색합니다.

사전 조건 및 설치

GitHub의 PostgreSQL CSV Ingestion Tool Readme에서 사전 조건 및 설치를 참조하세요.

사용량

python copy_postgres.py \ --database 'postgres_testing' \ --table 'demolarge_restored' \ --csv-files-dir '/data/csv_files/*partition*/*.csv' \ --host database-1.cluster-xxxxxxxx.us-east-1.rds.amazonaws.com \ --secret-arn 'arn:aws:secretsmanager:<region>:<account_id>:secret:rds!cluster-xxxxx-xx-xx-xx-xxxxxxxx-xxxxx' \ --sns-topic-arn 'arn:aws:sns:<region>:<account_id>:<topic_name>'

검증

내보낸 행 또는 Timestream의 내보내기 도구에서 생성된 로그에 DynamoDB를 사용하고 PostgreSQL Ingestion 자동화 로그에서 수집된 행과 비교할 수 있습니다. 일관된 내보내기 및 가져오기 시간으로 소스 및 대상 테이블에 대해 개수를 선택할 수 있습니다. 마이그레이션 프로세스 중에 데이터가 지속적으로 수집되는 경우 개수가 달라지므로 내보낸 행과 로깅에 중요한 행을 비교하는 것이 좋습니다.

정리

  • Timestream for LiveAnalytics 내보내기 도구의 일부로 생성된 언로드된 데이터를 정리합니다.

  • EC2에서 다운로드한 데이터 및 로그를 삭제하여 공간을 회수합니다.

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