DynamoDB 단일 성능 이해

DynamoDB의 가장 좋은 실천은 단일 테이블 디자인 모델을 지원하는 것으로 변했다. 그 중에서 하나의 데이터베이스 테이블은 전체 응용 프로그램에 서비스되고 여러 개의 서로 다른 응용 프로그램 실체를 수용한다.
이런 디자인 모델은 정보 검색에 필요한 요청 수량을 줄이고 조작 비용을 낮추어 더욱 높은 성능을 제공한다.또한 실체 키 필드와 속성을 물리 테이블 구조와 분리함으로써 다이나마이드 DB 디자인의 변경과 변화를 크게 간소화시켰다.

However, managing single-table data and performance can often feel like you are peering at Assembly Language. Composite keys with prefixed and mapped attribute names are single-table design techniques but they can make just reading a single-table item quite difficult.


우리가 필요로 하는 것은 단일 테이블 모델을 이해하고 응용 프로그램 실체에 따라 논리적으로 데이터를 표현하고 조직할 수 있는 도구이다.
이러한 요구를 충족시키기 위해 DynamoDB Metrics 라이브러리를 만들었습니다. 이 라이브러리는 다이나마이DB의 상세한 리스트 성능 지표를 계산하고 발표합니다.
이 글은 저희 라이브러리 DynamoDB Metrics, OneTableSenseDeep 플랫폼을 소개합니다. 이 플랫폼은 당신의 리스트 디자인 모델을 이해하고 상세한 지표를 작성하고 보여주며 그래픽으로 당신의 리스트 디자인의 집행 상황을 나타낼 수 있습니다.

단일 테이블 모니터링


그럼 DynamoDB Metrics은 어떤 질문에 대답할 수 있을까요?
  • 중 가장 많은 RCU 또는 WCU를 소비하는 단일 테이블 솔리드/모델 로드는 무엇입니까?
  • 어느 고객 임대인이 가장 많은 부하를 부담하고 그들에게 얼마의 비용을 받아야 합니까?
  • 중 DynamoDB에 로드 비율이 어느 정도이고 RCU 또는 WCU가 가장 많이 소모되었습니까?
  • 에서 가장 효율적인 쿼리 (프로젝트 및 스캔) 는 어떤 애플리케이션이나 모델을 사용합니까?
  • 에서 가장 많이 사용되는 작업은 무엇입니까?
  • 검색 또는 기타 작업을 위해 사용하는 엔티티
  • 이 질문과 다른 질문들은 다이나마이트의 상세한 지표를 사용하여 대답할 수 있으며 이 지표들은 응용 프로그램 실체/모델 단계에서 성능을 분석할 수 있다.

    DynamoDB 메트릭 특성


    DynamoDB Metrics 라이브러리는 DynamoDB 메트릭에 대한 자세한 캡처 및 전송을 위한 노드 어플리케이션용 NPM 모듈입니다.다음과 같은 특징이 있습니다.
  • 은 테이블, 인덱스, 응용/기능, 실체와 DynamoDB 작업에 대한 상세한 클라우드 워치 도량을 생성합니다.
  • 은 CloudWatch EMF를 사용하여 제로 지연 메트릭을 생성합니다.
  • 은 AWS V2 및 V3 SDK를 지원합니다.
  • 간편한 통합
  • 은 매우 낮은 CPU 및 메모리의 영향을 받습니다.
  • 깨끗하고 읽기 쉬운 작은 코드 라이브러리 (<400줄).
  • 은 타자 스크립트를 완벽하게 지원합니다.
  • 의존 없음.
  • 은 동적 제어 지표로 SenseLogs the Serverless Logger과 옵션으로 통합됩니다.
  • 은 무료 SenseDeep Developer Plan으로 도형화된 다이나모DB 단일 테이블 모니터링에 사용된다.
  • 대량의 지표


    DynamoDB Metrics는 5가지 차원의 세부 통계를 캡처했습니다.
  • 표 - 표당 지표
  • 세입자 - 세입자당 지표
  • 출처 - 애플리케이션, 모듈 또는 기능별 ID
  • 지수 - 주요 또는 글로벌 보조 지수
  • 모델 - 어플리케이션 시트 엔티티/모델 이름
  • 작업 - DynamoDB 하위 작업: GetItem, PutItem 등
  • 당신은 표, 임대인, 원본, 인덱스, 모델, 조작 집합에 따라 도량을 깊이 있게 볼 수 있습니다.이것은 성능 문제가 잠복할 수 있는 위치를 정확하게 확정할 수 있습니다.
    이러한 차원 조합 중 하나에 대해 DynamoDB 메트릭은 다음과 같은 메트릭을 보냅니다.
  • 읽기 - 읽기 용량 단위당
  • 쓰기 - 쓰기 용량 단위당
  • 지연 - 밀리초 단위의 집계 요청 지연
  • 수 - 반환된 항목 수
  • 스캔
  • - 스캔된 항목 수
  • 요청 - API 요청 수
  • 이 지표를 통해 누가 읽기와 쓰기 용량을 소모하고, 어떤 요청이 오래 실행되고, 어떤 요청이 효율이 낮으며, 표를 스캔하고 있는지 정확하게 볼 수 있습니다.

    DynamoDB 지표 가져오는 방법


    DynamoDB에 이런 뛰어난 단일 도량을 얻을 수 있는 두 가지 방법이 있다.
  • DynamoDB Metrics NPM 라이브러리는 DynamoDB를 사용하는 모든 노드 응용 프로그램에서 사용할 수 있습니다.AWS SDK 중간부품으로 구성되어 있으며 요청 세부 사항을 최소 비용으로 효율적으로 캡처할 수 있습니다.
  • 또는 이 지원이 내장된 OneTable 라이브러리를 사용하면 OneTable의 다른 모든 이점을 얻을 수 있습니다.
  • DynamoDB 메트릭


    DynamoDB 메트릭을 구성하려면 라이브러리를 로드하고 DynamoDB 클라이언트 인스턴스를 메트릭 함수에 전달합니다.다른 매개 변수는 색인과 키 구조를 어떻게 이해하는지 도량 기준을 알려준다.
    import Metrics from 'dynamodb-metrics'
    const metrics = new Metrics({
        client: client,
        indexes: {primary: {hash: 'pk', sort: 'sk'}},
        separator: '#',
    })
    
    지표 구성 방법에 대한 자세한 내용은 DynamoDB Metrics README에서 확인할 수 있습니다.

    일회성 지원


    OneTable에서 DynamoDB 메트릭을 사용하려면 metrics을 OneTable 구조 함수에 추가하고 프로그램이나 Lambda 함수의 이름을 지정하십시오.
    const table = new Table({
        metrics: {source: 'acme:launcher'}
    })
    
    OneTable는 정의된 OneTable 모드를 사용하여 키 구조를 이해합니다.

    DynamoDB Sheet 지표 보기


    CloudWatch 또는 SenseDep 서버 없는 플랫폼을 사용하여 DynamoDB 테이블 지표를 볼 수 있습니다.

    센스딥을 통해서.


    SenseDep은 다이나믹 DB 지표를 시각화하는 데 도움을 줄 계기판과 도표를 미리 설정합니다.당신은 표, 임대인, 원본, 인덱스, 모델 또는 조작 차원 단계에서 필요한 시간대의 지표를 깊이 있게 볼 수 있습니다.
    어떤 응용 프로그램이나 함수가 읽기/쓰기 용량을 소모하고 있는지, 응용 프로그램 데이터 실체가 다이나마이드를 어떻게 사용하는지 쉽게 볼 수 있습니다.

    또한 SenseDep은 직관적인 용량 계획 및 용량 할당 지원도 제공합니다.

    구름의 표면


    CloudWatch Metrics을 사용하면 DynamoDB 메트릭 차원 조합의 카드를 볼 수 있습니다.

    이 도량은 SingleTable/Metrics.1명칭 공간에서 만들어진 것이다.카드를 누르면 그릴 차원 조합 목록을 제공할 수 있습니다.

    엔진 덮개


    DynamoDB Metrics 라이브러리는 로그 기반 메트릭 형식으로 메트릭을 보냅니다.이것은 lambda의 성능에 영향을 주지 않고, 0 딜레이로 도량을 만들 수 있습니다.EMF는 일반적인 차단 API처럼 차단 없이 메트릭을 보낼 수 있습니다.
    DynamoDB 메트릭은 활성 차원 조합에만 메트릭을 보냅니다.만약 많은 응용 프로그램의 실체와 인덱스가 있다면, 최종적으로 대량의 지표를 얻을 수 있을 것이다.만약 당신의 사이트가 이 모든 차원을 적극적으로 사용한다면, 당신의 클라우드 워치 도량 비용은 매우 높을 것이다.AWS CloudWatch는 시간당 0.30달러의 요율에 따라 시간당 활동의 도량치 총 비용을 받습니다.
    CloudWatch의 비용이 너무 높으면, 차원의 수를 줄여서 비용을 최소화할 수 있습니다.dimensions 구조 함수 속성 수정을 통해 보내는 차원.또는 LOG FILTER 매개변수를 사용하여 메트릭을 동적으로 활성화 및 비활성화할 수 있습니다.
    DynamoDB 지표는 시스템 부하를 최소화하기 위해 버퍼링되고 집합됩니다.AWS 람바다가 람바다 함수를 회수한 경우 해당 함수를 회수하기 전에 일부 메트릭 요청이 실행되지 않았을 수 있습니다.이것은 매우 작은 백분율이어야 하며, 도량의 질에 현저한 영향을 주어서는 안 된다.메트릭 구조 함수를 사용하여 버퍼를 제어할 수 있습니다.

    CloudWatch EMF 요약


    리스트 디자인 모델을 깊이 이해하는 것이 새로운 최첨단이다.이전에는 DynamoDB를 사용하는 단일 테이블 디자인이 블랙박스였기 때문에 내부에서 디자인된 구성 요소가 어떻게 작동하는지 보기 어려웠다.
    은 코드를 테스트하고 이런 견해를 얻을 수 있는 간단한 방법을 제공했다.SenseDep은 무료 개발자 계획을 제공하기 때문에 도형 계기판을 사용하여 이 지표들을 보고 분석할 수 있습니다.

    DynamoDB 메트릭 더 많이?


    NPM에서 다운로드, DynamoDB Metrics
    싱글 테이블을 만드는 가장 우아한 방법을 얻으려면 DynamoDB Metrics을 고려해 보세요.
    OneTable을 통해 SenseDep의 무료 개발자 허가증을 받거나 SenseDeep App을 통해 더 많은 정보를 얻을 수 있습니다.
    너는 아마도 독서를 좋아할 것이다.
  • https://www.sensedeep.com
  • Data Modeling with Single Table Designs
  • DynamoDB OneTable
  • 테이블 모드가 있는 DynamoDB 센스딥 정보


    센스딥은 AWS 개발자가 서버 없는 어플리케이션의 배송과 유지보수를 가속하는 가시적인 플랫폼이다.
    SenseDep은 통합된 서버 없는 개발자 스튜디오를 통해 개발자가 전체 생명 주기에 관찰 가능하고 신뢰할 수 있으며 유지보수할 수 있는 응용 프로그램을 만들 수 있도록 돕는다. 이 스튜디오는 응용 프로그램의 성능에 대해 깊이 있게 이해한다.
    SenseDep을 시도하려면 브라우저를 으로 이동합니다.
    SenseDeep에 대한 자세한 내용은 https://app.sensedeep.com을 참조하십시오.
    귀하의 생각을 알려주십시오. 피드백에 따라 성장할 것입니다.https://www.sensedeep.com/product .

    [email protected] 링크

  • SenseDeep Web Site
  • 좋은 웹페이지 즐겨찾기