SQL++/N1QL 쿼리

카우치베이스 N1QL용 인덱스 어드바이저 서비스(JSON용 SQL)

의 출시를 발표하게 되어 기쁘게 생각합니다:

카우치베이스 인덱스 어드바이저 서비스

https://index-advisor.couchbase.com

또 다른 서비스? 왜요?

몇 년 전, SQL을 사용해 JSON 데이터를 검색하고 조작할 수 있도록 N1QL(SQL for JSON)을 출시했습니다. 하지만 좋은 인덱스가 생성되지 않으면 쿼리 성능이 좋지 않습니다! 생성한 인덱스가 쿼리 엔진에 적합한 인덱스인지 어떻게 알 수 있을까요? 그래서 우리는 좋은 인덱스를 만드는 모든 규칙을 공개하기로 결정했습니다. 그러나 그것은 너무 많은 읽기를 필요로 했습니다! 그래서 한 걸음 더 나아가 사용자에게 힘을 실어드리고자 합니다. 이제 서비스를 출시합니다.인덱스 어드바이저-는 쿼리를 수락하고 쿼리 엔진의 기대치를 충족하는 인덱스 추천을 제공하는데, 이 모든 것이 최신 Couchbase 서버를 다운로드하지 않고도 가능합니다.

누구를 위해?

이 서비스는 DBA, 개발자, 아키텍트가 쿼리 성능을 최적화하고 SLA를 충족하는 데 도움이 되는 인덱스 권장 사항을 제공합니다.

Index Advisor는 Couchbase Server 6.5의 일부로 출시되었습니다. 해당 버전을 다운로드했다면 이 서비스가 제공하는 모든 기능(그리고 그 이상)을 사용할 수 있습니다.

이 서비스는 언제 사용해야 하나요?

만약 당신이:

  1. 읽지 않으려면 인덱스 생성 규칙를 살펴보고, 이를 이해하고, 구현하여 쿼리/질문/워크로드에 적합한 인덱스를 찾아보세요.
  2.  아직 최신 Couchbase 6.5 서버를 다운로드하고 싶지 않습니다.
  3.  사용 중입니다. 이전 카우치베이스 버전 쿼리에 적합한 인덱스를 만드는 데 도움이 필요합니다.
  4. 인덱스에 대한 조언을 생성하고 싶습니다. 버킷을 만들지 않고 또는 스키마 또는 데이터를 업로드합니다.

배경:

N1QL은 JSON 데이터 및 메타데이터용 SQL입니다. N1QL로 작성된 모든 쿼리에는 N1QL 쿼리 엔진에 의해 준비된 쿼리 계획이 있습니다. 쿼리의 성능과 효율성은 쿼리 계획에 따라 달라집니다. 데이터에 적합한 인덱스를 생성하면 가장 효율적인 방식으로 결과 집합을 검색할 수 있는 인덱스를 선택하는 데 도움이 됩니다. JSON 문서 자체에는 스키마가 없더라도 인덱스에는 스키마가 있어야 합니다.

예: 인덱스 ix1(field1,field2) 는 인덱스와 다릅니다. ix2(field2,field1).

따라서 인덱스에 대해 선택하는 필드도 중요하지만, 인덱스에 포함되는 순서도 GSI 인덱스에 중요합니다. (FTS 인덱스에 대해서는 다른 블로그에서 다룰 예정입니다.)

쿼리의 수명:

Screen Shot 2016-12-12 at 2.10.40 PM.png

 

4단계가 얼마나 잘 수행되느냐에 따라 5단계와 6단계를 최소화하거나 완전히 생략하여 쿼리 성능을 향상시킬 수 있으므로 인덱스의 필드를 결정하는 것은 매우 중요한 부분입니다. 이를 돕기 위해 Index Advisor를 출시합니다.

https://index-advisor.couchbase.com

인덱스 어드바이저 - 서비스!

인덱스 어드바이저를 사용하면 다음을 수행할 수 있습니다.

  1. 다음에서 쿼리 하나 또는 여러 개의 쿼리를 제공하세요. 6.5 이전 서버도 를 입력하면 서비스가 최상의 성능을 얻기 위해 보유하거나 생성해야 하는 인덱스를 추천해 드립니다.
  2. 데이터나 스키마가 없기 때문에 현재 해당 인덱스가 있는지 확인할 수 없습니다. 데이터/통계/스키마/추론 연산/현재 인덱스 또는 더 나은 추천을 위해 제공할 수 있는 다른 모든 것을 허용하도록 이 인터페이스를 곧 개선할 예정입니다.

ADVISE 지시어로 쿼리를 입력하면 도구에서 최소 인덱스와 커버링 인덱스에 대한 권장 사항을 제공합니다.

  • 인덱스: 이 섹션에는 WHERE/ON 절의 술어를 기반으로 하는 권장 인덱스와 각 인덱스가 따르는 해당 권장 규칙이 나열되어 있습니다.
  • 커버링 인덱스: 이 섹션에는 입력 쿼리에 적용 가능한 커버링 인덱스, 즉 데이터 서비스로의 추가 홉을 피하기 위해 쿼리에서 참조된 모든 필드를 포함하는 인덱스가 나열되어 있습니다.

도구의 모양과 느낌은 다음과 같습니다. 아래 GIF를 클릭하면 명확하게 확인할 수 있습니다.

예시:

1.

2.

3.

4.

 

결과

 

인덱스 후보가 지정된 디자인 규칙에 따라 생성됩니다. 여기.

남은 과제

1. 이 도구의 UI를 개선합니다. 쉽게 잘라내어 붙여넣을 수 있도록 색인 추천을 텍스트로 제공합니다. 현재 JSON 출력을 제공합니다.

2. 취향 수락 - 부분적인 인덱스 추천을 생성할 수 있도록 합니다.

3. 사용자가 스키마, 기존 인덱스를 입력하고, 출력을 추론하고, 데이터를 테스트할 수 있는 방법을 제공하세요.

이 도구가 어떤 점이 마음에 들었는지, 추가되었으면 하는 기능이 있는지 여러분의 의견을 듣고 싶습니다. 댓글을 통해 의견을 공유해 주세요.

인덱스 어드바이저 기능에 대해 자세히 알아보세요:

https://www.couchbase.com/blog/n1ql-index-advisor-improve-query-performance-and-productivity/

https://www.couchbase.com/blog/index-advisor-for-query-workload/

https://docs.couchbase.com/server/6.5/n1ql/n1ql-language-reference/advise.html

https://docs.couchbase.com/server/6.5/n1ql/n1ql-language-reference/advisor.html

https://docs.couchbase.com/server/6.5/tools/query-workbench.html#index-advisor

요약:

인덱스 어드바이저(ADVISE 문)는 단일 쿼리에 대한 인덱스 권장 사항을 제공합니다. 일반 인덱스, 배열 인덱스, 커버링 인덱스에 대해 조언하고 각 인덱스 키가 따르는 해당 추천 규칙에 대한 정보를 제공합니다.

인덱스 어드바이저(ADVISOR 문)는 여러 쿼리에 대한 인덱스 권장 사항을 제공합니다. 배열의 모든 쿼리에 적합한 인덱스를 가능한 한 적게 추천합니다.

집에서도 시도해 보세요!

https://index-advisor.couchbase.com

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

Author

Posted by 카미니 자그티아니

Kamini Jagtiani is a Senior Engineering Manager for the Query Team at Couchbase R&D. Before Couchbase, Kamini was 7 years at Futurewei as Kernel Architect/Manager and 13 years at IBM Informix as Software Engineer. Kamini has a Bachelors's degree in Computer Science and Engineering from Bombay University, India and holds 5 US patents.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.