DynamoDB 작업은 CloudWatch 사용자 정의 지표 스캔 vs 조회를 사용합니다
14486 단어 dynamodbmonitoringawsserverless
블로그의 주요 특징
훈련을 실시하다
DynamoDB 작업 비교 - 스캔 및 조회
스캔이란 무엇입니까?
Scan DynamoDB 작업은 전체 테이블을 검색한 다음 순서대로 저장된 데이터를 반환합니다.
let scanResponse = await dynamodb.scan({
"TableName": "cars-demo"
}).promise()
조회란?
검색DynamoDB 작업은
KeyConditionExpression
데이터 모델과 테이블의 키 모드나 인덱스 모드를 이용하여 검색 작업이 정의된 조건에서 검색하도록 한다.let queryResponse = await dynamodb.query({
TableName: 'cars-demo',
IndexName: 'origin-index',
KeyConditionExpression: 'origin = :origin',
ExpressionAttributeValues: { ':origin': { "S": "USA" } },
}).promise()
특징.스캔
묻다
검색 기술
순차 검색
파티션 검색
패턴 구속은 필수입니다.
❌
✅
인덱스
✅
✅ LSI 및 GSI와의 협력 강화
분류하다
❌
✅
SortKey
를 사용하여 데이터 정렬응답 한계
1MB
1MB
응답 시간
더 느렸어
더욱 빠르다
계산하다
O(n)
로그 (n)
코스트
스캔은 모든 물품이 매우 비싸다
더 싸다
DynamoDB가 실행되는 성능은 주요 요소에 따라 달라집니다-
단계 함수 기반 Lambda 함수 트리거의 실현
Step Function workflows 프로세스의 구조인 상태기를 정의한다.이 실행 중, 우리는 수동으로
state machine
실행을 시작할 것입니다. 여기서 설정을 초기화하고 Lambda 함수를 호출합니다.Step 함수에 대한 Lambda 응답에서 상태 확인을 수행하여 상태기의 실행이 완료되었는지 확인합니다.조건이 실패하면 상태기가 Wait
상태로 전환되고 이 상태에서 1초를 기다린 후 Lambda를 다시 호출합니다.이것은 조건이 충족될 때까지 계속 진행될 것이다.{
"Comment": "Invoke Lambda every 1 second",
"StartAt": "ConfigureCount",
"States": {
"ConfigureCount": {
"Type": "Pass",
"Result": {
"index": 0,
"count": 5000
},
"ResultPath": "$.iterator",
"Next": "Iterator"
},
"Iterator": {
"Type": "Task",
"Resource": "arn:aws:lambda:ap-south-1:228628157461:function:dynamodb-monitoring-Iterator-S9CK3cTj2qii",
"ResultPath": "$.iterator",
"Next": "IsCountReached"
},
"IsCountReached": {
"Type": "Choice",
"Choices": [
{
"Variable": "$.iterator.continue",
"BooleanEquals": true,
"Next": "Wait"
}
],
"Default": "Done"
},
"Wait": {
"Type": "Wait",
"Seconds": 1,
"Next": "Iterator"
},
"Done": {
"Type": "Pass",
"End": true
}
}
}
이 상태기는 Lambda 함수 아분 주파수 호출의 아키텍처를 설명하는 AWS 블로그click here에서 얻을 수 있다.이 구조는 클라우드 워치 이벤트 규칙을 사용해서 Lambda 함수를 호출해서 상태기 실행을 시작하지 않고 AWS 웹 컨트롤러에서 수동으로 실행합니다.
상태기를 실행하려면 Step Functions 콘솔에서 만든 상태기를 탐색한 다음 start execution 단추를 클릭합니다.를 클릭하면 상태기의 JSON(선택 사항)을 입력하라는 메시지가 표시되어 실행을 시작할 수 있습니다.
상태기가 실행 중입니다. 상태 유형
task
, wait
, choice
의 전환을 표시하고, 각 상태가 실행하는 입력과 출력을 볼 수 있습니다.CloudWatch 맞춤형 지표의 실현
CloudWatch Custom Metrics 사용자가 정의한 사용자 정의 메트릭을 CloudWatch에 게시하여 데이터의 그래픽 표현을 생성하는 데 사용합니다.
이 CloudWatch 맞춤형 지표 세부 구현 내용은 AWS 블로그click here에서 확인할 수 있습니다.
이 실현에서 우리는 도량 조작-
SCAN
또는QUERY
, 그리고 실행에 필요한 응답 시간을 발표할 것이다.await cloudwatch.putMetricData({
'MetricData': [{
'MetricName': 'DynamoDBOperations',
'Dimensions': [{
'Name': 'OPERATION',
'Value': metric
}],
'Unit': 'Milliseconds',
'Value': value
}, ],
'Namespace': 'DynamoDB Queries and Scans'
}).promise()
게시된 데이터는 CloudWatch 콘솔의 Metrics 하위 메뉴에서 제공됩니다.US-EAST-1에서 DynamoDB 작업을 수행하는 사용자 정의 지표(데이터가 DynamoDB의 같은 구역에 주재함)
AP-SOUTH-1에서 실행된 DynamoDB 작업의 사용자 정의 지표 사용하기 (데이터가 DynamoDB에 있는 구역과 다르다)
US-EAST-1 v/s AP-SOUTH-1에서 DynamoDB 작업을 수행하는 사용자 정의 지표
CloudWatch 사용자 지정 지표로 추정됩니다.
자크존스노르 / aws dynamodb 작업 및cloudwatch 사용자 정의 지표
DynamoDB 작업 실행 - step 함수를 검색하고 스캔하는 초마다 호출된 작업을 수행합니다. DynamoDB 작업의 응답에 따라 사용자 정의 도량으로 클라우드 워치를 업데이트합니다.
Reference
이 문제에 관하여(DynamoDB 작업은 CloudWatch 사용자 정의 지표 스캔 vs 조회를 사용합니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/awscommunity-asean/dynamodb-operations-scan-vs-query-with-cloudwatch-custom-metrics-2mik텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)