스트림을 사용하여 개발하기 QLDB - 아마존 퀀텀 레저 데이터베이스 (아마존QLDB)

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

스트림을 사용하여 개발하기 QLDB

중요

지원 종료 알림: 기존 고객은 2025년 7월 31일 지원이 종료될 QLDB 때까지 Amazon을 사용할 수 있습니다. 자세한 내용은 아마존 QLDB 원장을 Amazon Aurora SQL Postgre로 마이그레이션을 참조하십시오.

이 섹션에는 다음과 함께 사용할 수 있는 API 작업이 요약되어 있습니다. AWS SDK또는 AWS CLI Amazon에서 저널 스트림을 생성하고 관리할 수 QLDB 있습니다. 또한 이러한 작업을 시연하고 Kinesis Client Library () KCL 를 사용하는 샘플 애플리케이션에 대해서도 설명합니다. AWS Lambda 스트림 소비자를 구현하기 위해서입니다.

를 사용하여 Amazon Kinesis Data Streams용 소비자 애플리케이션을 구축할 수 있습니다. KCL 는 하위 수준 Kinesis Data Streams보다 유용한 추상화를 제공하여 코딩을 KCL 간소화합니다. API 에 대해 자세히 알아보려면 Amazon Kinesis 데이터 스트림 개발자 안내서의 Kinesis 클라이언트 라이브러리 사용을 참조하십시오. KCL

QLDB저널 스트림 APIs

는 응용 프로그램에서 사용할 수 있는 다음과 같은 저널 스트림 작업을 QLDB API 제공합니다.

  • StreamJournalToKinesis— 지정된 QLDB 원장에 대한 저널 스트림을 생성합니다. 스트림은 원장의 저널에 커밋된 모든 문서 개정본을 캡처하고 지정된 Kinesis Data Streams 리소스로 데이터를 전송합니다.

    • Kinesis Data Streams의 레코드 집계는 기본적으로 활성화되어 있습니다. 이 옵션을 사용하면 단일 Kinesis Data Streams 레코드에 여러 데이터 레코드를 QLDB 게시하여 API 호출당 전송되는 레코드 수를 늘릴 수 있습니다.

      레코드 집계는 레코드 처리에 중요한 영향을 미치며 스트림 소비자의 집계를 해제해야 합니다. 자세한 내용은 Amazon Kinesis Data Streams 개발자 안내서의 KPL주요 개념 및 소비자 집계 해제를 참조하십시오.

  • DescribeJournalKinesisStream— 주어진 QLDB 저널 스트림에 대한 세부 정보를 반환합니다. 출력에는 스트림 이름ARN, 현재 상태, 생성 시간, 원본 스트림 생성 요청의 매개 변수가 포함됩니다.

  • ListJournalKinesisStreamsForLedger— 지정된 원장에 대한 모든 QLDB 저널 스트림 디스크립터 목록을 반환합니다. 각 스트림 설명자의 출력에는 DescribeJournalKinesisStream에서 반환한 것과 동일한 세부 정보가 포함됩니다.

  • CancelJournalKinesisStream— 지정된 QLDB 저널 스트림을 종료합니다. 스트림을 취소하려면 스트림의 현재 상태가 ACTIVE이어야 합니다.

    스트리밍을 취소한 후에는 다시 시작할 수 없습니다. Kinesis Data Streams로의 데이터 전송을 재개하려면 QLDB 새 스트림을 생성하면 됩니다.

이러한 API 작업에 대한 전체 설명은 를 참조하십시오. 아마존 QLDB API 레퍼런스

를 사용하여 저널 스트림을 만들고 관리하는 방법에 대한 자세한 내용은 AWS CLI자세한 내용은 AWS CLI 커맨드 레퍼런스.

샘플 애플리케이션

QLDB저널 스트림을 사용한 다양한 작업을 보여주는 샘플 애플리케이션을 제공합니다. 이러한 애플리케이션은 웹 사이트의 오픈 소스입니다. AWS 샘플 GitHub 사이트.

기본 작업(Java)

QLDB저널 스트림의 기본 작업을 보여주는 자바 코드 예제는 amazon-qldb-dmv-sampleaws-samples/ -java GitHub 리포지토리를 참조하십시오. 이 샘플 애플리케이션을 다운로드하여 설치하는 방법에 대한 자세한 내용은 Amazon QLDB Java 샘플 애플리케이션 설치 섹션을 참조하세요.

참고

애플리케이션을 설치한 후에는 원장을 만들기 위해 Java 자습서의 1단계로 진행하지 마세요. 이 스트리밍용 샘플 애플리케이션은 vehicle-registration 원장을 자동으로 생성합니다.

이 샘플 애플리케이션은 다음 모듈을 포함하여 Java 자습서와 관련 종속성의 전체 소스 코드를 패키징합니다.

  • AWS SDK for Java— 원장QLDB, 저널 스트림, Kinesis 데이터 스트림을 비롯한 Kinesis Data Streams 리소스와 Kinesis 데이터 스트림을 모두 생성하고 삭제합니다. QLDB

  • 자바용 아마존 QLDB 드라이버 - PartiQL 문을 사용하여 원장에 대한 데이터 트랜잭션을 실행합니다(테이블 생성 및 문서 삽입 포함).

  • Kinesis Client Library - Kinesis 데이터 스트림의 데이터를 사용하고 처리합니다.

코드 실행

StreamJournal클래스에는 다음 작업을 보여주는 자습서 코드가 포함되어 있습니다.

  1. vehicle-registration라는 이름의 원장을 만들고 테이블을 만든 다음 샘플 데이터와 함께 로드합니다.

    참고

    이 코드를 실행하기 전에 이미 vehicle-registration라는 이름이 지정된 활성화된 원장이 없는지 확인하세요.

  2. Kinesis 데이터 스트림, Kinesis 데이터 스트림에 대한 쓰기 권한을 QLDB 위임할 수 있는 IAM 역할, 저널 스트림을 생성합니다. QLDB

  3. KCL를 사용하여 Kinesis 데이터 스트림을 처리하고 각 QLDB 데이터 레코드를 기록하는 스트림 리더를 시작할 수 있습니다.

  4. 스트림 데이터를 사용하여 vehicle-registration 샘플 원장의 해시 체인을 확인할 수 있습니다.

  5. 스트림 리더를 중지하고, QLDB 저널 스트림을 취소하고, 원장을 삭제하고, Kinesis 데이터 스트림을 삭제하여 모든 리소스를 정리하십시오.

StreamJournal 자습서 코드를 실행하려면 프로젝트 루트 디렉터리에서 다음 Gradle 명령을 입력합니다.

./gradlew run -Dtutorial=streams.StreamJournal

OpenSearch 서비스와의 통합 (Python)

QLDB스트림을 Amazon OpenSearch 서비스와 통합하는 방법을 보여주는 Python 샘플 애플리케이션은 amazon-qldb-streaming-amazonaws-samples/ - GitHub 리포지토리를 참조하십시오. opensearch-service-sample-python 이 애플리케이션은 다음을 사용합니다. AWS Lambda Kinesis Data Streams 소비자를 구현하는 함수입니다.

다음 git 명령을 입력하여 리포지토리를 복제합니다.

git clone https://github.com/aws-samples/amazon-qldb-streaming-amazon-opensearch-service-sample-python.git

샘플 애플리케이션을 실행하려면 READMEon의 지침을 GitHub 참조하십시오.

아마존 SNS 및 아마존과의 통합 SQS (Python)

QLDB스트림을 Amazon 단순 알림 서비스 (AmazonSNS) 와 통합하는 방법을 보여주는 Python 샘플 애플리케이션은 amazon-qldb-streams-dmvaws-samples/ - GitHub 리포지토리를 참조하십시오. sample-lambda-python

이 애플리케이션은 다음을 사용합니다. AWS Lambda Kinesis Data Streams 소비자를 구현하는 함수입니다. Amazon 심플 큐 서비스 (AmazonSQS) 대기열이 구독되어 있는 Amazon SNS 주제로 메시지를 보냅니다.

다음 git 명령을 입력하여 리포지토리를 복제합니다.

git clone https://github.com/aws-samples/amazon-qldb-streams-dmv-sample-lambda-python.git

샘플 애플리케이션을 실행하려면 READMEon의 지침을 GitHub 참조하십시오.