카우치베이스 서버

N1QL에서 자바스크립트까지 - 7부: 계층형 자바스크립트 스토리지

이전 블로그에서는 JavaScript에서 N1QL(SQL++)을 실행하는 방법에 대해 설명했습니다. 함수문서 처리 반복기를 통해데이터 조작, 오류 처리, 준비된 진술서 및 기타 고급 주제. 마지막으로 다룰 주제는 7.1에 새롭게 추가된 JavaScript 라이브러리 저장 옵션을 활성화하는 기능입니다.

계층적 자바스크립트 라이브러리 저장소

7.1의 또 다른 주요 변경 사항은 자바스크립트 라이브러리 저장소가 플랫에서 계층 구조로 변경된 것입니다.

즉, 이제 글로벌 라이브러리와 함께 버킷과 스코프 아래에 라이브러리를 만들 수 있습니다.

글로벌 라이브러리는 글로벌 및 스코프 UDF로 모두 사용할 수 있지만 스코프 라이브러리는 해당 라이브러리와 동일한 스코프에서 생성된 스코프 UDF에만 사용할 수 있습니다.

즉, 글로벌 라이브러리를 사용하면 라이브러리를 애플리케이션의 확장으로 계속 취급하고 새 라이브러리를 게시하면 다른 버킷과 범위에서 모든 인스턴스를 자동으로 수정할 수 있습니다. 관리_외부_범위_기능 권한이 있고 직접 사용할 라이브러리를 만들고 싶다면 만들 수 있습니다.

또는 애플리케이션 개발자로서 특정 글로벌 라이브러리의 범위별 구현(예: 애플리케이션의 다음 릴리스를 위해 구현하는 새 코드가 포함된 로컬 인스턴스)을 만들고 싶을 수도 있습니다.

라이브러리 조작하기

그리고 jsevaluator 이 블로그의 시작 부분에 표시된 라이브러리를 조작하는 데 사용되는 REST 엔드포인트가 버킷과 범위를 허용하도록 확장되었습니다.

이렇게 하면 됩니다:

글로벌 라이브러리

범위 라이브러리

인증된 사용자는 각 수준에서 라이브러리를 만들 수 있는 적절한 권한이 있어야 합니다: 관리_외부_기능 글로벌 라이브러리 및 관리_외부_범위_기능 스코프 라이브러리의 경우

또한 참조된 버킷과 범위가 이미 존재해야 합니다.

반복해서 말하지만, curl 명령에는 정의하려는 새 함수뿐만 아니라 전체 라이브러리가 포함되어야 합니다. 라이브러리를 사용하는 모든 UDF에 변경 사항이 반영되고 실수로 삭제할 수 있는 함수는 여러 범위와 UDF에 영향을 미칠 수 있으므로 주의해야 합니다.

의심의 여지를 없애기 위해 UI에도 적용됩니다. 

UDF에서 라이브러리 참조하기

모든 예제 만들기 함수 는 라이브러리에 간단한 문자열 식별자를 사용하는데, 이는 글로벌 라이브러리를 사용한다는 의미입니다.

함수 만들기 ... 언어 자바스크립트 는 라이브러리 이름에 대해 다음 세 가지 형식을 지원합니다:

    • 식별자(예:, 라이브러리: 글로벌 라이브러리를 가리킵니다.
    • 그리고 ./ 표기법, 예를 들어, ./도서관: 현재 라이브러리 아래의 라이브러리를 의미합니다. 쿼리_컨텍스트전역 함수를 위한 전역 라이브러리와 범위 함수를 위한 해당 범위 라이브러리입니다.
    • 전체 범위 경로, 예를 들어, 버킷/범위/라이브러리스코프 함수는 스코프 라이브러리를 가리킬 수 있지만 스코프 간 폴링은 허용되지 않으며, 스코프 함수는 자신의 스코프에 있는 라이브러리만 가리킬 수 있다는 점에 유의하세요.

다른 라이브러리 이름 형식은 허용되지 않습니다.

컬 팁과 요령

라이브러리 수정하기

예를 들어 새 함수를 추가하는 등 REST API를 사용하여 라이브러리를 수정할 때는 라이브러리 전체를 다시 제출해야 한다는 점에 유의하세요. 새 함수의 텍스트만 전달하면 이전 함수가 모두 지워집니다!

유용한 명령줄 스위치 및 옵션

-데이터 바이너리 명령줄 옵션은 curl이 개행과 캐리지 리턴을 버리지 않도록 지시합니다.

이는 함수가 오류를 반환하는 경우 오류 메시지에 오류에 대한 올바른 줄 정보가 포함된다는 점에서 유용합니다. -d 또는 -데이터 를 사용하면 항상 1줄에서 오류가 발생한 것으로 보고됩니다!

예를 들어

또 다른 유용한 기능은 라이브러리의 콘텐츠를 파일에 저장한 다음 해당 파일을 -데이터 바이너리 (또는 -d) 인수 앞에 "@' 등을 예로 들 수 있습니다:

라이브러리가 저장될 경로/파일의 위치입니다.

결론

이 간단한 게시물에서는 이러한 새로운 스토리지 옵션을 통해 빌드하고 배포하는 코드를 계층적으로 유연하게 관리하는 방법을 설명합니다.

마지막으로 한 가지 업데이트가 있는데, 코드 기반 용어에 대한 참조가 있습니다. N1QL 이 시리즈에서는 쿼리 언어를 다음과 같이 지칭합니다. SQL++ - SQL 표준의 확장입니다. Couchbase의 쿼리는 일반적으로 SQL++ 기반이므로 표준 SQL 쿼리 지식을 기반으로 구축할 수 있지만 JSON 문서 등에 적용할 수 있습니다. 앞으로는 다음과 같이 용어를 바꿀 수 있습니다. N1QL 에 대한 SQL++ 를 클릭하면 최신 정보를 모두 확인할 수 있습니다.

이 N1QL 및 JavaScript 주제 시리즈를 따라가 주셔서 감사드리며, 참조를 위해 아래에 주제 요약 목록이 포함되어 있습니다.

리소스

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

작성자

게시자 마르코 그레코, 소프트웨어 아키텍트, 카우치베이스

전생에 마르코는 이탈리아 최대 방사선 치료 기관에서 CTO, 방사선 물리학자, 소프트웨어 설계자, 시스템 관리자, DBA, 트레이너, 일반 관리자로 일했습니다. 직업과 국가를 바꾼 그는 처음에는 Informix에서, 나중에는 IBM에서 20년 이상 다양한 지원 및 개발 직책을 맡다가 마침내 과감히 Couchbase에 합류하여 N1QL에서 금을 만드는 데 도움을 주었습니다. 그는 여러 개의 특허를 보유하고 있으며 직접 오픈 소스 프로젝트를 저술하기도 했습니다.

댓글 남기기

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

구축 시작

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

카펠라 무료 사용

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

연락하기

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