편집

다음을 통해 공유


Azure Cosmos DB for Apache Gremlin에 대해 자주 묻는 질문

적용 대상: Gremlin

Gremlin 쿼리

Gremlin 쿼리의 효율성을 평가하는 방법

executionProfile() 미리 보기 단계를 사용하여 쿼리 실행 계획에 대한 분석을 제공할 수 있습니다. 이 단계는 Gremlin 쿼리의 끝에 추가해야 합니다. 예를 들어 쿼리의 끝에 g.V('example').out('relationship') 단계를 추가하여 결과를 생성할 수 있습니다 g.V('example').out('relationship').executionProfile().

위 프로필의 출력은 꼭짓점 개체, 모서리 개체 및 유효 데이터 세트 크기를 얻는 데 소비하는 시간을 보여 줍니다. 이는 Azure Cosmos DB 쿼리에 대한 표준 비용 측정과 관련이 있습니다.

기타 질문과 대답

그래프 데이터베이스에서 쿼리 실행 시 RU/s는 어떻게 청구되나요?

모든 그래프 개체, 꼭짓점 및 모서리는 백 엔드에서 JSON 문서로 표시됩니다. 하나의 Gremlin 쿼리는 한 번에 하나 이상의 그래프 개체를 수정할 수 있으므로 해당 쿼리와 관련된 비용은 쿼리에서 처리되는 개체, 에지와 직접 관련됩니다. 이것은 Azure Cosmos DB가 모든 다른 API에 사용하는 것과 동일한 프로세스입니다. 자세한 내용은 Azure Cosmos DB의 요청 단위를 참조하세요.

RU 청구는 결과 집합이 아닌 횡단의 유효 데이터 집합에 기반합니다. 예를 들어 쿼리가 결과로 단일 꼭짓점을 가져오는 것을 목표로 하지만 도중에 둘 이상의 다른 개체를 트래버스해야 하는 경우 비용은 하나의 결과 꼭짓점을 계산하는 데 걸리는 모든 그래프 개체를 기반으로 합니다.

Azure Cosmos DB for Gremlin에 있는 그래프 데이터베이스의 최대 규모는 얼마인가요?

Azure Cosmos DB는 수평 분할을 활용하여 스토리지 및 처리량 요구 사항 증가를 자동으로 해결합니다. 워크로드의 최대 처리량 및 스토리지 용량은 지정된 컨테이너와 연결된 파티션 수에 따라 결정됩니다. 그러나 Gremlin 컨테이너용 API에는 적절한 성능 환경을 대규모로 보장하기 위한 특정 지침 집합이 있습니다. 분할에 대한 자세한 내용 및 모범 사례는 Azure Cosmos DB에서 분할 문서를 참조하세요.

C#.NET 개발의 경우 Microsoft.Azure.Graphs 패키지 또는 Gremlin.NET를 사용해야 하나요?

Gremlin용 Azure Cosmos DB는 오픈 소스 드라이버를 서비스의 기본 커넥터로 사용합니다. 따라서 Apache에서 지원하는 드라이버를 사용하는 것이 좋습니다.

Gremlin 드라이버를 사용하여 삽입 공격을 방지하려면 어떻게 하나요?

대부분의 네이티브 Apache Tinkerpop Gremlin 드라이버는 쿼리 실행에 매개 변수 사전을 제공하는 옵션을 허용합니다. 다음은 Gremlin.NetGremlin-Javascript에서 수행하는 방법의 예제입니다.

“Gremlin 쿼리 컴파일 오류: 메서드를 찾을 수 없음” 오류가 표시되는 이유는 무엇인가요?

Azure Cosmos DB for Gremlin은 Gremlin 노출 영역에 정의된 기능의 하위 집합을 구현합니다. 지원되는 단계 및 자세한 내용은 Gremlin 지원 문서를 참조하세요.

가장 좋은 해결 방법은 모든 필수 Gremlin 단계가 Azure Cosmos DB에서 지원되므로 지원되는 기능을 사용하여 필요한 Gremlin 단계를 다시 작성하는 것입니다.

“WebSocketException: 상태 코드 ‘101’을 예상했을 때 서버가 상태 코드 ‘200’을 반환함” 오류가 표시되는 이유가 무엇인가요?

이 오류는 잘못된 엔드포인트를 사용하는 경우 발생할 가능성이 높습니다. 이 오류를 생성하는 엔드포인트에는 다음과 같은 패턴이 있습니다. https://<account-name>.documents.azure.com:443/

그래프 데이터베이스에 대한 문서 엔드포인트입니다. 사용할 올바른 엔드포인트는 다음 형식의 Gremlin 엔드포인트입니다.

https://YOUR_DATABASE_ACCOUNT.gremlin.cosmosdb.azure.com:443/

“RequestRateIsTooLarge” 오류가 표시되는 이유가 무엇인가요?

이 오류는 초당 할당된 요청 단위가 쿼리를 처리할 정도로 충분하지 않다는 것을 의미합니다. 이 오류는 모든 꼭짓점을 가져오는 쿼리를 실행할 때 표시됩니다.

// Query example:
g.V()

이 쿼리는 그래프에서 모든 꼭짓점을 검색하려고 시도합니다. 따라서 이 쿼리의 비용은 RU 측면에서 적어도 꼭짓점 개수와 동일하게 됩니다. 초당 RU는 이 쿼리를 해결할 수 있도록 조정되어야 합니다.

내 Gremlin 드라이버 연결이 갑자가 끊어진 이유는 무엇인가요?

Gremlin 연결은 WebSocket 연결을 통해 이루어집니다. WebSocket 연결에 특정 TTL(Time to Live)이 없을 경우 Azure Cosmos DB for Gremlin은 30분의 비활성 후 유휴 연결을 종료합니다.

네이티브 Gremlin 드라이버에서 흐름 API 호출을 왜 사용할 수 없나요?

Fluent API 호출은 Azure Cosmos DB for Gremlin에서 아직 지원되지 않습니다. Fluent API 호출은 Azure Cosmos DB for Gremlin에서 현재 지원되지 않는, 바이트코드 지원이라는 내부 서식 지정 기능이 필요합니다. 같은 이유로 인해 최신 Gremlin-JavaScript 드라이버도 현재 지원되지 않습니다.

다음 단계