DynamoDB Stream 은 Item 의 변경이 생겼을때 변경에 대한 Record 가 Stream 으로 전달되고, AWS Lambda , Kinesis Client 등으로 Record 를 전달 받아 Process 할 수 있는 기능이다. kinesis client version => com.amazonaws:amazon-kinesis-client:1.14.4 Kinesis Client 를 사용하여 Stream Record 를 전달받는 경우, 아래와 같이 CheckPointer 를 사용하여 전달받은 Record 처리를 완료했다는 것을 알리게 된다. @Override public void processRecords(List list, IRecordProcessorCheckpointer iRec..
AWS 에서 DynamoDB 로컬 환경을 위한 테스트 환경을 제공한다. Local 에서 DynamoDB 실행하기 https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.DownloadingAndRunning.html Deploying DynamoDB locally on your computer - Amazon DynamoDB The YAML scripts require that you specify an AWS access key and an AWS secret key, but they are not required to be valid AWS keys for you to access DynamoDB local. doc..
Naming Rules DynamoDB의 테이블, Attributes 와 다른 오브젝트들은 이름을 갖는다. 이름은 의미를 잘 전달할 수 있어야하며 간결해야한다. 예를들어, 상품, 책, 저자와 같이 이름만으로 의미를 알 수 있어야한다. 아래 설명들은 DynamoDB 의 네이밍 규칙을 설명한다: 모든 이름은 UTF-8 로 인코딩되며 대소문자를 구별한다. 테이블명과 인덱셔명은 3글자이상 255자이하여야하며 아래여야하며 아래 문자들로 구성될 수 있다 a-z A-Z 0-9 _ - . Attribute 이름은 한개 이상의 문자여야하며 64KB 이하여야한다. Attribute 이름은 가능한 짧게 관리하는것을 권장한다. Attribute 이름 또한 Read 요청에 응답값으로 함께 전달되기 때문이다. 아래 이름들은 At..
DynamoDB 를 사용하기에서는, Application 에서 몇가지 간단한 API 를 사용해야한다. 아래는 Category 로 구분된 API 의 요약들이다. Topics Control Plane Data Plane DynamoDB Streams Transactions Control Plane Control Plane 명령은 DynamoDB 테이블을 생성하고 관리한다. 또한, Control Plane 은 Index, Stream 과 같이 테이블에 의존적인 것들을 다룰 수 있게 해준다. CreateTable - 새로운 테이블을 생성한다. 필요하다면, 한개 이상의 Secondary Index 를 생성할 수 있고 DynamoDB Stream 을 활성화 할 수 있다. DescribeTable - Primay K..
DynamoDB 의 테이블(Table), 아이템(Item), 속성(Attribute)은 DynamoDB 를 다루기위한 주요 컴포넌트들이다. Attribute 들이 모여 하나의 Item 을 이루고 Item 들이 모여 하나의 Table 을 이룬다. Primary Key 를 사용하여 테이블의 아이템들을 구별하고 Secondary Index 를 사용하여 조회를 더 자유롭게 할 수 있다. DynamoDB Streams 를 활용하여 DynamoDB 의 변경 이벤트를 감지할 수 있다. Tables, Items, 그리고 Attributes 아래 설명은 DynamoDB 의 기본 컴포넌트에 대한 것이다. Tables - 다른 데이터베이스들과 비슷하게 DynamoDB 도한 데이터를 테이블에 저장한다. Table 은 데이터의..
Amazon DynamoDB 는 중단없이 확장가능한 빠르고 예측가능한 성능을 제공하는 NoSQL 데이터베이스이다. DynamoDB 는 분산 데이터베이스의 운영, 스케일링과 같은 관리 측면의 짐을 덜어줌으로서 사용자들이 설정, 복제, 소프트웨어 업그레이드, 클러스터 스케일링과 같은 작업들에 신경쓰지 않도록 서비스를 제공한다. 또한, DynamoDB 는 민감 데이터를 보호하기위한 운영 측면의 복잡한 작업인 암호화를 제공한다. DynamoDB 암호화 DynamoDB 에서는 필요한 테이블을 생성하여 어떠한 양의 데이터라도 저장할 수 있으며 어떤 수준의 트래픽이라도 검색 기능을 제공할 수 있다. 다운 타임과 성능 저하가 없는 스케일 업/다운을 통하여 테이블의 처리량을 조절할 수 있다. AWS console 을 이..
쿼리를 정의했다면, 카산드라 테이블을 설계한 준비가 된 것이다. 첫번째로 각 쿼리에 포함되어있는 논리 모델을 포함하는 테이블을 만들고 구상중인 모델의 엔티티와 관계를 그린다. 각 테이블의 이름을 지정하려면 주로 조회하는 엔티티 이름으로 시작하는 이름을 지을 수 있다. 다른 관계가 있는 에티티의 요소로 Query 를 한다면 이 두가지 테이블의 이름을 붙이고 by 로 구분을 지을 수 있다. 예를 들어 hotels_by_poi 다음에 테이블의 PK 를 결정하고 추가 Parititon Key 를 Query 요소를 기반으로 추가하고 Clustering 요소를 고유성과 필요한 정렬을 제공하기 위해 추기해야한다. PK 를 설계하는 것은 특히 중요하다. PK 가 각 Partition 에 어떻게 저장될지 그리고 Disk..
이 호텔 도메인을 위해 Query 우선 접근 방법으로 데이터 모델링을 해보자. Application 을 위한 UI 디자인은 쿼리를 추출해내기 위한 좋은 결과물이다. 당신이 프로젝트 Stakeholder 와 UX 디자이너와 논의한다고 가정해보자. 그 대화를 통해 아래오 같은 Query 들을 추출해낼 수 있을 것이다. Q1. 호텔 근처의 관광지는? Q2. 주어진 호텔의 이름과 위치와 같은 정보는? Q3. 관광지 근처의 호텔은? Q4. 주어진 기간동안 이용 가능한 객실은? Q5. 객실의 별점과 어메니티는? 이와 같이 쿼리를 속기헤보는 것은 전체를 설명하는 것보다 도움이될 때가 종종 있다. 여기에 리스트된 Query 들은 Q1, Q2, 등등 으로 넘더링되어있다. 이제 Application 이 성공하여 고객이 호..
데이터 모델링을 하기 위해 호텔 도메인을 이용해보자. 호텔에 객실에 머무는 게스트가 있고 각 호텔은 여러개의 Room 을 가지고 있다. 게스트가 예약한 Room 에 대한 정보가 있고 각 Room 에서 제공되는 Amentity 가 있다. 관심이 있을만한 "공원", "박물관", "쇼핑" 과 같이 게스트들이 관심있어할만한 데이터 또한 Point Of Interest 에 저장된다. RDBMS Design 만약 당신이 새로운 데이터 기반 Application 을 구축한다면, 적절한 normalized 테이블과 FK 를 사용하여 데이터를 모델링할것이다. 아래 도표는 관계형 데이터베이스를 사용한 데이터 모델링을 나타낸다. 관계형 데이터베이스는 Many to Many Join 을 활용한다. Hotel Points , ..
- Total
- Today
- Yesterday
- mariadb-connector-j
- wait()
- ConcurrentHashMap
- aurora
- reactor
- ResultSet
- mariada-connector
- GlobalFilter
- RouteDefinition
- N+1
- MariaDB
- Lazy
- notifyAll()
- reative
- Flux
- RoutePredication
- spring cloud gateway
- Seperate Chaining
- getBoolean
- msyql-connector-java
- router
- custom config data convertion
- rate limit
- referencedColumnName
- HashMap
- DyanomoDB
- notify()
- AbstractMethodError
- dynamodb
- circurit breaker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |