기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
아마존의 핵심 개념 및 용어 QLDB
중요
지원 종료 알림: 기존 고객은 2025년 7월 31일 지원이 종료될 QLDB 때까지 Amazon을 사용할 수 있습니다. 자세한 내용은 아마존 QLDB 원장을 Amazon Aurora SQL Postgre로 마이그레이션을
이 섹션에서는 원장 구조 및 원장의 데이터 관리 방법을 포함하여 QLDB Amazon의 핵심 개념 및 용어에 대한 개요를 제공합니다. 원장 데이터베이스는 다음과 같은 주요 개념 측면에서 다른 문서 중심 데이터베이스와 QLDB 다릅니다.
QLDB데이터 객체 모델
Amazon의 기본 데이터 객체 모델은 다음과 같이 QLDB 설명됩니다.
-
원장
첫 번째 단계는 기본 AWS 리소스 유형인 QLDB 원장을 생성하는 것입니다. 원장 생성 방법을 알아보려면 콘솔 시작하기의 1단계: 새 원장 생성 또는 Amazon QLDB 원장의 기본 작업을 참조하세요.
원장의
ALLOW_ALL
및STANDARD
권한 모드 모두에 대해 이 원장 리소스에서 API 작업을 실행할 권한을 부여하는 AWS Identity and Access Management (IAM) 정책을 생성합니다.원장 형식ARN:
arn:aws:qldb:${region}:${account-id}:ledger/${ledger-name}
-
저널 및 표
QLDB원장에 데이터를 쓰기 시작하려면 먼저 기본 CREATE TABLE 명세서가 포함된 테이블을 생성해야 합니다. 원장 데이터는 원장 저널에 체결된 문서의 수정본으로 구성되어 있습니다. 사용자 정의 표의 컨텍스트에서 원장에 문서 수정본을 체결합니다. 에서 QLDB 테이블은 저널의 문서 수정본 모음에 대한 구체화된 뷰를 나타냅니다.
원장의
STANDARD
권한 모드에서는 이 테이블 리소스에서 PartiQL 문을 실행할 권한을 부여하는 IAM 정책을 생성해야 합니다. 테이블 리소스에 대한 권한이 있으면 테이블의 현재 상태에 액세스하는 문을 실행할 수 있습니다. 또한 내장history()
함수를 사용하여 테이블의 개정 이력을 쿼리할 수 있습니다.테이블 형식: ARN
arn:aws:qldb:${region}:${account-id}:ledger/${ledger-name}/table/${table-id}
원장 및 관련 리소스에 권한을 부여하는 자세한 방법은 Amazon의 QLDB 작업 방식 IAM 섹션을 참조하세요.
-
문서
표은 Amazon Ion
struct
형식의 데이터 세트인 QLDB문서의 수정본으로 구성되어 있습니다. 문서 수정본은 고유한 문서 ID로 식별되는 문서 시퀀스의 단일 버전을 나타냅니다.QLDB커밋된 문서의 전체 변경 기록을 저장합니다. 표를 사용하면 문서의 현재 상태를 쿼리하고
history()
함수를 사용하면 표 문서의 전체 수정 기록을 쿼리할 수 있습니다. 수정 쿼리 및 작성에 대한 자세한 설명은 데이터 및 기록 작업 섹션을 참조하세요. -
시스템 카탈로그
또한 각 원장은 원장의 모든 테이블과 인덱스를 나열하기 위해 쿼리할 수 있는 시스템 정의 카탈로그 리소스를 제공합니다. 원장의
STANDARD
권한 모드에서는 다음 작업을 수행하려면 이 카탈로그 리소스에 대한qldb:PartiQLSelect
권한이 필요합니다.-
시스템 카탈로그 표 information_schema.user_tables에 대한
SELECT
문을 실행합니다. -
QLDB콘솔의 원장 세부 정보 페이지에서 테이블 및 인덱스 정보를 볼 수 있습니다.
-
콘솔의 PartiQL 편집기에서 테이블 및 인덱스 목록을 확인합니다. QLDB
카탈로그 형식: ARN
arn:aws:qldb:${region}:${account-id}:ledger/${ledger-name}/information_schema/user_tables
-
저널 우선 트랜잭션
애플리케이션이 QLDB 원장에서 데이터를 읽거나 쓸 때는 데이터베이스 트랜잭션에서 읽거나 씁니다. 아마존의 할당량 및 한도 QLDB에 정의된 대로 모든 트랜잭션에는 제한이 적용됩니다. 트랜잭션 내에서 다음 단계를 수행합니다. QLDB
-
원장에서 데이터의 현재 상태를 읽습니다.
-
트랜잭션에 제공된 명령문을 수행한 다음 낙관적 동시성 제어 (OCC) 를 사용하여 충돌이 없는지 확인하여 완전히 직렬화 가능한 격리를 보장합니다.
-
OCC충돌이 발견되지 않으면 다음과 같이 트랜잭션 결과를 반환하십시오.
-
읽기의 경우, 결과 세트를 반환하고 추가 전용 방식으로
SELECT
문을 저널에 체결합니다. -
쓰기의 경우 업데이트, 삭제 또는 새로 삽입된 데이터를 추가 전용 방식으로 저널에 체결합니다.
-
저널은 데이터의 모든 변경 사항에 대한 완전하고 변경할 수 없는 기록을 나타냅니다. QLDB트랜잭션의 저널에 체인 블록 하나를 기록합니다. 각 블록에는 삽입, 업데이트 및 삭제한 문서 수정본을 나타내는 항목 객체와 이를 체결한 PartiQL 문이 들어 있습니다.
다음 다이어그램은 이 저널 구조를 보여줍니다.
다이어그램은 트랜잭션이 문서 수정본 항목이 포함된 블록 형태로 저널에 커밋됨을 보여줍니다. 각 블록은 검증을 위해 해싱되고 후속 블록에 연결됩니다. 각 블록에는 스트랜드 내의 주소를 지정하는 시퀀스 번호가 있습니다.
참고
QLDBAmazon에서 스트랜드는 원장 일지의 파티션입니다. QLDB현재는 단일 스트랜드가 포함된 저널만 지원합니다.
블록의 데이터 내용에 대해 자세히 알아보려면 아마존의 저널 콘텐츠 QLDB 섹션을 참조하세요.
데이터 쿼리
QLDB고성능 온라인 트랜잭션 처리 (OLTP) 워크로드의 요구 사항을 해결하기 위한 것입니다. 원장은 저널에 체결된 트랜잭션 정보를 기반으로 데이터의 쿼리 가능한 표 보기를 제공합니다. 의 테이블 QLDB뷰는 테이블 데이터의 하위 집합입니다. 뷰는 실시간으로 유지 관리되므로 애플리케이션에서 항상 쿼리할 수 있습니다.
PartiQL SELECT
문을 사용하여 다음과 같은 시스템 정의 뷰를 쿼리할 수 있습니다.
-
사용자 - 테이블에 기록한 데이터의 최신 활성 개정 (즉, 사용자 데이터의 현재 상태)입니다. 의 기본 뷰입니다. QLDB
-
커밋됨 - 사용자 데이터와 시스템에서 생성한 메타데이터의 최신 활성 개정입니다. 이는 사용자 테이블에 직접 해당하는 전체 시스템 정의 테이블입니다.
쿼리 가능한 이러한 뷰 외에도 내장된 기록 함수을 사용하여 데이터의 수정 기록을 쿼리할 수 있습니다. 기록 함수는 체결된 뷰와 동일한 스키마에서 사용자 데이터와 연결된 메타데이터를 모두 반환합니다.
데이터 스토리지
데이터 저장소에는 두 가지 유형이 있습니다QLDB.
-
저널 스토리지 - 원장의 저널이 사용하는 디스크 공간입니다. 저널은 추가 전용으로, 데이터에 대한 모든 변경 사항에 대한 완전하고 변경 불가능하며 검증 가능한 기록을 포함합니다.
-
인덱싱된 스토리지 - 원장의 표, 인덱스, 인덱싱된 기록에 사용되는 디스크 공간입니다. 인덱싱된 스토리지는 고성능 쿼리에 최적화된 원장 데이터로 구성됩니다.
데이터가 저널에 체결되면 정의한 표로 구체화됩니다. 이러한 표은 더 빠르고 효율적인 쿼리를 위해 최적화되었습니다. 애플리케이션이 트랜잭션 데이터를 API 사용하여 데이터를 읽는 경우 인덱싱된 스토리지에 저장된 테이블과 인덱스에 액세스합니다.
QLDBAPI모델
QLDB애플리케이션 코드가 상호 작용할 수 APIs 있는 두 가지 유형을 제공합니다.
-
Amazon QLDB — QLDB 리소스 관리 API (컨트롤 플레인이라고도 함). API이는 원장 리소스 관리 및 비트랜잭션 데이터 작업에만 사용됩니다. 이러한 작업을 사용하여 원장을 생성, 삭제, 설명, 나열 및 업데이트할 수 있습니다. 또한 데이터를 암호로 검증하고 저널 블록을 내보내거나 스트리밍할 수 있습니다.
-
Amazon QLDB 세션 — QLDB 트랜잭션 데이터. API 이를 사용하여 PartiQL 문을 API 사용하여 원장에서 데이터 트랜잭션을 실행할 수 있습니다.
중요
QLDB세션과 API 직접 상호 작용하는 대신 QLDB 드라이버 또는 QLDB 셸을 사용하여 원장에서 데이터 트랜잭션을 실행하는 것이 좋습니다.
-
를 사용하여 작업하는 경우 드라이버를 AWS SDK 사용하세요. QLDB 드라이버는 QLDB세션 데이터 API 위에 높은 수준의 추상화 계층을 제공하고
SendCommand
작업을 자동으로 관리합니다. 지원되는 프로그래밍 언어에 대한 자세한 내용 및 목록은 드라이버 시작하기 섹션을 참조하세요. -
를 사용하여 작업하는 AWS CLI경우 셸을 사용하십시오. QLDB 셸은 QLDB 드라이버를 사용하여 원장과 상호 작용하는 명령줄 인터페이스입니다. 자세한 내용은 Amazon QLDB 셸 사용 (API데이터만 해당)을 참조하세요.
-
이러한 API 작업에 대한 자세한 내용은 를 참조하십시오. 아마존 QLDB API 레퍼런스
다음 단계
데이터에 원장을 사용하는 방법을 알아보려면 Amazon에서 데이터 및 기록 다루기 QLDB 섹션을 참조하고 표 생성, 데이터 삽입 및 기본 쿼리 실행 프로세스를 설명하는 예를 따르세요. 이 가이드에서는 샘플 데이터와 컨텍스트에 대한 쿼리 예를 사용하여 이러한 개념이 어떻게 작동하는지 자세히 설명합니다.
QLDB콘솔을 사용하여 샘플 애플리케이션 자습서를 빠르게 시작하려면 을 참조하십시오Amazon QLDB 콘솔 시작하기.
이 섹션에 설명된 주요 용어 및 정의 목록은 아마존 QLDB 용어집 섹션을 참조하세요.