DynamoDB와 함께 GraphQL을 사용하는 것이 좋습니다.
쿼리/변형에 1을 넣습니다. 이것은 사람들이 생각하기 때문에 중요합니다.
"oh, DynamoDB is single table design, GraphQL needs individual fields".
아니요. 쿼리는 DynamoDB 쿼리만 수행할 수 있습니다.
개별 GraphQL 필드 해석기에 대한 걱정은 일련의 I/O 호출을 여러 번 수행하는 폭포수 패턴에 들어가고 속도가 느려지거나 더 나쁘게는 여러 DynamoDB 테이블을 활용하여 더 관계형으로 만들고 따라서 사용하지 않는 것입니다. 싱글 테이블 디자인.
이를 위해 AppSync/GraphQL API를 구축하는 경우 문제가 됩니다. Postegres 과 같은 관계형을 사용하는 것이 좋습니다.
Dynamo용 단일 테이블 디자인을 원하고 GraphQL을 사용하려는 경우 모델링에 두 번째 단계를 추가하기만 하면 됩니다.
1단계는 전체 "조인을 단일 행으로 평면화"입니다. 이것이 단일 쿼리에서 얻을 수 있도록 데이터를 최적화하는 일반적인 DynamoDB 패턴입니다.
2단계는 "해당 dynamodb 쿼리에 대한 GraphQL 쿼리 만들기"입니다. 그게 다야.
예, GraphQL 쿼리:
getStuff(id:ID!):Stuff!
그러면 Lambda가 Dynamo를 호출합니다.
dynamodbDoc.query({ 'id=getStuffID' })
1단계에서 데이터 액세스 패턴을 사소하게 만드는 것이 아닙니다. 매우 어렵습니다. 이것은 또한 "제품 소유자/사용자"가 항상 쓰레기를 변경하고 쿼리를 업데이트할 때 처벌을 받지 않기 때문에 유연성을 위해 관계형 또는 NoSQL을 사용하는 것이 때때로 더 쉬운 이유이기도 합니다.
ETL 파이프라인 작성을 즐기는 동안 비즈니스/제품이 마음을 바꾼다고 해서 처벌을 받아서는 안 됩니다.
어쨌든, tl;dr; UI가 [1, 2, 3]을 백엔드로 안전하게 전달할 수 있도록 하는 것이 REST보다 GraphQL에서 더 쉽습니다. UI용 BFF를 구축하면서 액세스 패턴을 알고 있습니다. GraphQL + DynamoDB는 훌륭합니다.
Reference
이 문제에 관하여(DynamoDB와 함께 GraphQL을 사용하는 것이 좋습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jesterxl/using-graphql-with-dynamodb-is-cool-248f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)