이벤트

Couchbase를 XML 데이터베이스로 사용하는 방법(및 이유)

카우치베이스와 XML - 문제없습니다!

수십 번도 더 들었습니다: "Couchbase는 훌륭하지만 저는 XML을 사용합니다."

"카우치베이스"로 반박하는 것은 알고 있습니다. can XML 데이터베이스가 되라"는 말은 특히 JSON 지향 문서 데이터베이스의 경우 상당히 대담한 표현입니다. Couchbase 커뮤니티의 일부 사람들은 두 번 생각할 수도 있지만, 이 글의 마지막 부분에서 제 말이 무슨 뜻인지 이해하셨으면 좋겠습니다.

많은 레거시 애플리케이션이 여전히 XML에 의존하고 있는 것은 사실이지만, 과연 Couchbase가 XML 데이터를 저장하고 처리하는 데 적합한 솔루션일까요? 걱정하지 마세요. Couchbase와 XML에 관해서는 두 마리 토끼를 모두 잡을 수 있습니다.

몇 가지 개념을 소개한 후, 이 글에서는 이벤트 함수를 통해 거의 아무런 노력 없이 Couchbase 내에서 XML을 JSON으로 자동 및 즉시 변환하는 방법을 보여드리겠습니다. JSON을 XML을 저장하는 데 사용되는 중간 컴퓨터 형식이라고 생각하신다면 이미 제가 어디로 향하고 있는지 아실 것입니다.

XML 데이터를 네이티브 JSON 표현으로 변환하면 다음과 같은 Couchbase의 풍부한 서비스 에코시스템을 활용할 수 있습니다. N1QL, 인덱싱, 전체 텍스트 검색, 이벤트분석.

카우치베이스 는 필요에 맞게 조합하는 전용 데이터베이스입니다. 빠른 캐시만 필요하신가요? 데이터 서비스 또는 키-값 저장소만 있으면 됩니다. SQL과 유사한 액세스를 원하시나요? 쿼리 및 색인 서비스를 추가하세요. 아니면 분석이나 전체 텍스트 검색이 필요하신가요? 적절한 유형의 노드를 추가하기만 하면 됩니다.

위의 각 서비스는 독립적으로 확장할 수 있으므로 결국 구축할 수 있습니다, 비용 지불 - 필요한 것만 사용하세요. 아래 글에서는 Eventing을 사용하여 Couchbase를 XML 지원 데이터베이스로 변환하는 방법을 설명합니다. 사실이라고 하기에는 너무 좋게 들리지만 실제로 효과가 있다는 것을 믿으세요.

Couchbase, XML 및 JSON에 익숙한 경우 다음을 수행하십시오. 필수 구성 요소 섹션으로 건너뛰기.

카우치베이스 데이터 모델

카우치베이스 서버 는 오픈 소스 분산 데이터 플랫폼입니다. 데이터를 다음과 같이 저장합니다. 항목이 있으며, 각각에는 . 밀리초 미만의 데이터 작업은 쿼리 및 인덱싱을 위한 강력한 서비스와 풍부한 기능을 갖춘 문서 지향 쿼리 언어를 통해 제공됩니다, N1QL. 여러 개의 카우치베이스 서버 인스턴스를 단일 인스턴스로 결합할 수 있습니다. 클러스터.

각 값(바이너리 또는 JSON)은 항목이 저장될 때 사용자 또는 애플리케이션이 정의한 고유 키로 식별됩니다. 이 키는 변경할 수 없으므로 일단 항목이 저장되면 키를 변경할 수 없습니다. Couchbase는 항목의 키를 항목의 id.

각 키:

    • 공백이 없는 UTF-8 문자열이어야 합니다. 다음과 같은 특수 문자 (, %, /, " 그리고 _ 를 사용할 수 있습니다.
    • 250바이트를 넘지 않아야 합니다.
    • 버킷 내에서 고유해야 합니다.

값의 최대 크기는 20MB입니다. 값은 다음 중 하나가 될 수 있습니다:

    • 바이너리: 모든 형태의 바이너리를 사용할 수 있습니다. 이진 값은 구문 분석, 인덱싱 또는 쿼리할 수 없다는 점에 유의하세요. 키로만 검색할 수 있습니다.
    • JSON: JSON 값은 문서를 사용하여 구문 분석, 인덱싱 및 쿼리할 수 있습니다. 각 문서는 하나 이상의 속성으로 구성되며, 각 속성에는 고유한 값이 있습니다. 속성의 값은 숫자, 문자열 또는 부울과 같은 기본 유형이거나 임베디드 문서 또는 배열과 같은 복합형일 수 있습니다.

JSON은 데이터베이스입니다.

JSON에 대해 자세히 알아봅시다. JSON 문서를 구문 분석, 색인, 쿼리 및 조작할 수 있습니다. 실제로 Couchbase는 분산 문서 지향 데이터베이스의 쿼리 요구 사항을 충족하기 위해 N1QL 쿼리 언어("니켈"로 발음)를 도입했습니다. N1QL은 SQL이 관계형 데이터베이스(RDBMS)에서 데이터를 조작하는 것처럼 Couchbase에서 JSON 데이터를 조작하는 데 사용됩니다. 여기에는 다음이 포함됩니다. 선택, 삽입, 업데이트, 삭제 그리고 MERGE 문을 사용하여 JSON 데이터에 대해 작업할 수 있습니다.

XML을 문자열이나 바이너리 블롭으로 저장할 수도 있지만, 그렇게 하면 재미가 없거나 유용성이 떨어질까요? 대신 XML을 JSON으로 자동 변환하면 어떨까요? 질문해주셔서 정말 감사합니다.

XML: 확장 가능한 마크업 언어

XML은 1996년에 도입된 마크업 언어로, 사람이 읽을 수 있고 기계가 읽을 수 있는 형식으로 문서를 인코딩하기 위한 일련의 규칙을 정의합니다. W3C(월드와이드웹 컨소시엄)의 권장 사항입니다.

XML의 설계 목표는 인터넷 전반에서 단순성, 범용성, 유용성을 강조합니다. XML은 유니코드를 통해 다양한 인간 언어를 강력하게 지원하는 텍스트 데이터 형식입니다. XML의 설계는 문서에 중점을 두고 있지만, 이 언어는 웹 서비스에서 사용되는 것과 같은 임의의 데이터 구조를 표현하는 데에도 널리 사용됩니다.

다음은 XML의 예입니다:

JSON: 자바스크립트 객체 표기법

2001년경에 만들어진 JSON은 사람이 읽을 수 있는 텍스트를 사용하여 속성-값 쌍과 배열(또는 기타 직렬화 가능한 값)로 구성된 데이터 개체를 저장하고 전송하는 상당히 가벼운 개방형 표준 파일 형식이자 데이터 교환 형식입니다.

JSON은 매우 일반적인 데이터 형식으로, 서버와 통신하는 웹 애플리케이션을 예로 들 수 있을 정도로 다양한 용도로 사용되고 있습니다.

다음은 JSON 샘플입니다:

전 세계를 점령한 JSON

오늘날 두 애플리케이션이 인터넷을 통해 서로 통신할 때, 특히 사람이 읽을 수 있는 텍스트로 통신하는 경우 JSON을 사용할 가능성이 높습니다.

JSON vs XML adoption

XML 팬이라면 여기서 메신저를 쏘지 마세요. HTML이 마크업 언어인 이상 XML이 사라지지는 않겠지만, 서로 통신해야 하는 인터넷 애플리케이션을 개발하는 데 있어서는 통계가 거짓말을 하지 않는다고 생각합니다.

전제 조건: 이벤트에 대해 알아보기

이 글에서는 최신 버전인 6.6.2 버전을 사용하지만 이전 버전에서도 정상적으로 작동합니다.

카우치베이스나 이벤트 서비스에 익숙하지 않다면 다음 리소스를 통해 하나 이상의 이벤트 예시를 살펴보시기 바랍니다:

Couchbase에 XML 삽입하기

이제 데이터를 로드하는 애플리케이션이 있거나 cbimport 를 사용하여 XML 데이터를 Couchbase 클러스터에 로드합니다.

아래 코드에서는 첫 번째 문서에 xml::1body 로 구성된 유형id 키에 사용되는 값(이 값은 선택 사항이지만 유용함), 마지막으로 속성 in_xml XML 문자열 자체를 포함합니다.

위의 XML 문자열로는 많은 것을 할 수 없습니다. 물론 프로퍼티를 색인화할 수는 있지만 in_xml 를 문자열로 사용할 수도 있지만, 제 소견으로는 쓸모없는 접두사 검색을 사용하지 않는 한 이 방법으로 많은 성능을 얻지 못할 것입니다.

전체 텍스트 검색(FTS) 제품으로 전달할 수도 있습니다. 이 경우 더 많은 유용성을 얻을 수 있지만, 중요한 일부가 아닌 전체 XML 페이로드를 색인해야 합니다.

우리가 정말로 원하는 것은 XML 문자열 프로퍼티의 JSON 표현입니다. in_xml와 같은 것일 수 있습니다:

새 속성 사용 out_json이제 N1QL, 인덱싱, 전체 텍스트 검색(FTS), 이벤트 및 분석이 모두 기본적으로 효율적으로 작동하는 적절한 구조의 개별 JSON 속성을 볼 수 있습니다.

이러한 예비 단계가 끝나면 데이터를 파싱하고 JSON으로 변환한 후 Couchbase에 넣으면 된다고 생각할 수 있습니다. 하지만 단점은 이제 더 많은 노드를 추가하여 확장할 때 더 많은 짐을 들고 다니며 배포해야 할 인프라(Couchbase 외부)가 늘어난다는 것입니다.

피할 수 있다면 사용자 정의 구문 분석기를 작성하고 싶지 않습니다. 시간이 지남에 따라 요구 사항과 데이터 형식이 바뀌면 재미도 없고 유지 관리도 어렵습니다.

이상적으로는 데이터 로더에 영향을 주지 않고 일반적으로 XML을 실시간으로 JSON으로 변환하는 인서버 솔루션이 필요합니다.

즉석에서 XML을 JSON으로 변환하기

카우치베이스의 이벤트 서비스를 입력합니다.

이벤트는 데이터의 모든 변경(또는 변이)에 반응하는 문서의 '포스트 트리거'라고 생각하면 됩니다. 주요 아이디어는 문서를 삽입하거나 업데이트할 때마다( xml::1 위) 문서에 대해 작은 자바스크립트 조각, 즉 람다가 실행되고 문서를 조작하는 데 필요한 비즈니스 로직을 캡슐화하여 문서가 원하는 형식이 되도록 합니다.

이 경우 아래와 같은 문서를 변환하려고 합니다:

실시간으로 위의 문서를 아래와 같은 보강된 문서로 변환하려고 합니다:

위에 표시된 보강된 문서는 키-값을 통해 검색하거나 N1QL을 사용하여 특정 필드에 대한 인덱스를 통해 검색할 수 있습니다.

이전과 마찬가지로 개별 JSON 프로퍼티는 적절한 구조로 표시되지만 out_json 속성을 사용하면 전체 텍스트 검색(FTS), 분석 및 기타 이벤트 기능을 효율적으로 사용할 수 있습니다.

이벤트 함수: convertXMLtoJSON

Eventing을 사용하면 순수한 비즈니스 로직을 작성할 수 있으며, Eventing 서비스는 여러 노드에서 기능을 관리하고 확장(수평 및 수직)하는 데 필요한 모든 인프라를 성능과 안정성을 갖춘 방식으로 처리합니다.

모든 이벤트 함수에는 두 가지 진입점이 있습니다. 온업데이트(문서,메타) 그리고 OnDelete(메타,옵션). 이 예제에서는 후자의 진입점에 대해서는 걱정하지 않습니다.

문서가 변경되거나 변경되면(삽입, 업서트, 바꾸기 등) 문서 사본과 문서에 대한 일부 메타데이터가 작은 JavaScript 엔트리 포인트로 전달됩니다. 온업데이트(문서,메타):

그리고 온업데이트(문서,메타) 로직은 모든 돌연변이에 대해 네 단계를 수행합니다.

    • 먼저 로 시작하지 않으면 확인됩니다. xml:로 설정하면 다른 작업을 수행하지 않습니다. 참고 meta.id 의 문서로 이동합니다.
    • 둘째, 함수를 호출하면 됩니다. parseXmlToJson(doc.in_xml) 함수에 XML 문자열을 전달하기만 하면 됩니다.
    • 셋째, 돌아오는 내용은 문서 사본에 속성으로서 새 필드로 추가됩니다. out_json.
    • 넷째, JSON 표현으로 문서를 실시간으로 업데이트합니다.

핵심 XML-to-JSON 변환 로직

다음은 XML-JSON 변환의 핵심 로직입니다:

사용자 덕분에 마스터피스 스택 오버플로에서 공유 메서드 parseXmlToJson(xml) 전 세계와 함께. 메서드 멋진 정규식을 사용합니다. 을 호출하여 일급 JSON 객체를 반환합니다. (예, 작동하며 우아하고 컴팩트합니다..)

Couchbase 7.0에서는 다음과 같은 메서드를 사용합니다. MatchAll(str, regExp) 위의 자바스크립트 코드에서 not 이제 Couchbase에 다음을 포함하는 최신 v8 러너가 있으므로 필요합니다. String.prototype.MatchAll() 함수.

이벤트 기능 최적화하기

지금까지는 잘 작동하지만 문제가 있습니다.

데이터에 초당 100,000개의 돌연변이가 발생한다고 가정해 보겠습니다. 접두사 xml:. . in_xml 속성이 변경되지 않는다면, 현재 Eventing 함수는 a) 100,000번의 XML-to-JSON 변환을 수행하고 b) 데이터 서비스(또는 키-값 저장소)에 100,000번의 쓰기를 수행하게 됩니다. 또한 XML은 샘플보다 훨씬 더 복잡할 가능성이 높습니다. in_xml 문자열은 중첩이 깊고 수천 개의 필드가 있을 수 있습니다.

몇 가지 고려해야 할 사항이 있습니다:

    • 재귀 루틴을 통해 중첩된 대용량 XML 문서를 변환하려면 컴퓨팅 리소스가 필요합니다. 메서드 parseXmlToJson(xml) 는 XML이 변경되지 않더라도 모든 변이에 대해 실행됩니다.
    • 데이터베이스에 쓰기는 I/O를 수반하며, 더 중요한 작업을 위해 주기나 쓰기를 저장하고 싶습니다. 현재 이벤트 함수를 사용하면 XML이 변경되지 않더라도 모든 변경 시마다 키-값 저장소에 쓰기를 수행하거나 문서를 업데이트합니다.

위의 문제를 해결하려면 문서 속성만 업데이트하는 로직을 추가해 보겠습니다. OUT_XMLin_xml 데이터 변경이 발생하거나 OUT_XML 속성입니다.

이 최적화를 구현하기 위해 저희는 체크섬 이벤트의 빠른 crc64() 메서드의 in_xml 속성을 생성하고 문서에 속성으로 저장합니다: xmlchksum.

그러면 이 필드를 사용하여 불필요하게 XML을 JSON으로 변환하거나 데이터 서비스에 변경되지 않은 문서를 불필요하게 작성하는 추가 작업을 최소화할 수 있습니다.

최적화는 다음과 같습니다:

원본에 추가한 내용은 다음과 같습니다. 온업데이트(문서,메타) 진입점입니다.

    • 먼저, 인메모리에 있는 체크섬 에서 액세스한 XML 문자열에 doc.in_xml.
    • 둘째, 이를 저장된 체크섬: doc.xmlchksum (있는 경우).
    • 셋째, 저장된 체크섬 가 누락되었거나 다른 경우, XML을 JSON으로 변환하고 새로운 체크섬 xmlchksumout_json 속성을 데이터 서비스에 다시 기록하여 문서의 속성을 변경할 수 있습니다.

최종적이고 완벽한 이벤트 기능

앞서 언급한 모든 최적화가 적용된 XML을 JSON으로 변환하는 전체 이벤트 함수는 다음과 같습니다:

이벤트 함수 배포

이제 이벤트 기능을 배포할 차례입니다. XML-to-JSON 변환기의 코드와 디자인을 약간 검토했으니 이제 모든 것이 함께 작동하는지 확인해 볼 차례입니다.

이 시점에서 JavaScript에 함수가 있으므로 이를 Couchbase 클러스터에 추가하고 활성 상태로 배포해야 합니다.

이 예제에는 두 개의 버킷이 필요합니다: 출처 (즉, 문서 저장소) 및 메타데이터 (즉, 다른 이벤트 함수와 공유할 수 있는 이벤트용 스크래치 패드). 그리고 출처 버킷의 크기는 100MB 이상이어야 합니다(1,000만 개 이상의 문서로 테스트하려면 출처 버킷을 더 크게). 그리고 메타데이터 버킷의 최소 크기는 100MB여야 합니다. 이 두 버킷은 모두 이미 위의 전제 조건에 따라.

    • 에 액세스하여 현재 버킷 구성을 확인합니다. Couchbase 웹 콘솔 > 버킷 페이지로 이동합니다:The Couchbase Web Console Buckets page

convertXMLtoJSON 함수 수동 추가하기

에서 첫 번째 이벤트 함수를 추가하려면 Couchbase 웹 콘솔 > 이벤트 설정 페이지에서 기능 추가를 클릭해 새 기능을 추가합니다. 의 기능 추가 대화 상자가 나타납니다.

에서 기능 추가 대화 상자에서 개별 기능 요소에 대해 아래 정보를 입력합니다:

      • 의 경우 소스 버킷 드롭다운에서 출처.
      • 의 경우 메타데이터 버킷 드롭다운에서 메타데이터.
      • 다음 사항을 확인하십시오. convertXMLtoJSON 에서 생성하는 함수의 이름입니다. 함수 이름 텍스트 상자입니다.
      • [선택 단계] 텍스트 입력 일반 XML 변환에서 설명 텍스트 상자입니다.
      • 의 경우 설정 옵션을 사용하지 않으려면 기본값을 사용합니다.
      • 의 경우 바인딩 옵션을 사용하여 두 개의 바인딩을 만듭니다:
        • 바인딩의 경우 버킷 별칭는 다음을 지정합니다. src_bkt별칭 이름 을 클릭하고 출처 를 연관 버킷으로 지정하고 모드는 읽기 및 쓰기.
        • 설정을 구성한 후 대화 상자는 다음과 같이 표시되어야 합니다:
          Couchbase add function dialogue box
        • 에 필요한 모든 정보를 제공한 후 기능 추가 대화 상자에서 다음: 코드 추가. . 크론_임플_2func_651 대화 상자가 나타납니다. 대화 상자가 나타납니다. convertXMLtoJSON 대화 상자에는 처음에 플레이스홀더 코드 블록이 포함됩니다. 이 블록에 저희가 개발한 자바스크립트 코드를 대체해야 합니다.
        • convert XML to JSON with Couchbase Eventing
        • 다음 이벤트 함수 자바스크립트 소스(48줄)를 복사하여 다음 플레이스홀더 코드 블록에 붙여넣습니다. convertXMLtoJSON:
        • 붙여넣기를 마치면 아래와 같은 화면이 나타납니다:The function editor in Couchbase Eventing
        • 클릭 저장.
        • 이벤트 설정 화면으로 돌아가려면 < 이벤트로 돌아가기 링크(편집기 아래)를 클릭하거나 이벤트 옵션을 선택합니다.

함수 배포

이제 이벤트 기능을 시작할 준비가 되었습니다. 에서 Couchbase 웹 콘솔 > 이벤트 설정 화면에서 다음 단계를 따르세요:

        • 기능 이름을 클릭합니다. convertXMLtoJSON 을 클릭해 기능 컨트롤을 확장하고 노출합니다.Eventing function controls
        • 클릭 배포.
        • 에서 배포 기능 확인 대화 상자에서 배포 기능 를 피드 경계 옵션에서 선택합니다.
          Confirm deploy function Couchbase
        • 함수를 배포하면 활성화되는 데 약 18초가 걸립니다.

실행 기능 테스트

이 시점에서 모든 문서를 업데이트하는 람다를 실행하고 있습니다. 접두사 xml: 의 XML 속성과 in_xml.

이벤트 기능을 실행하려면 다음과 같이 하세요. convertXMLtoJSON로 이동하여 문서 페이지로 이동하여 다음을 수행합니다:

        • 클릭 문서 추가.
        • 입력 xml::1 (접두사가 xml:)
        • 클릭 저장.
        • 입력 body 를 다음과 같이 설정합니다:
        • 클릭 저장.
        • 방금 저장한 문서를 편집하면 문서가 실시간으로 업데이트된 것을 확인할 수 있습니다.
        • 조정 in_xml. 아마도 2월 를 제목 앞에 붙입니다.
        • 클릭 저장.
        • 다시 방금 저장한 문서를 편집합니다. 문서가 다시 한 번 실시간으로 업데이트된 것을 확인할 수 있습니다:
        • 위에 새 속성 추가 유형와 같은 "기타": "재미있어요",
        • 클릭 저장.
        • 다시 한 번 문서를 편집합니다. 다시 한 번 체크섬 업데이트되지 않습니다.

10만 개의 XML 레코드를 처리해 봅시다

이제 어떻게 작동하는지 살펴보았으니 함수에서 많은 데이터를 덤프해 보겠습니다. 먼저 몇 가지 데이터를 생성해야 합니다.

        • 라는 간단한 Perl 스크립트를 사용하겠습니다. xml_data_gen.pl 이 블로그 포스팅을 위해 작성했습니다:
        • 위의 생성기 스크립트를 테스트하려면 xml_data_gen.pl 그냥 실행하세요: ./xml_data_gen.pl --blk 1 --num 5
        • 다음과 같은 내용이 표시될 것입니다:
        • 100,000개 기록을 만들려면 xml_data_gen.pl 를 실행하여 나중에 Couchbase 클러스터에 로드할 수 있습니다: ./xml_data_gen.pl --blk 1 --num 100000 > data.json
        • 이제 데이터를 로드해야 합니다. 저는 cbimport 유틸리티에 있는 ./bin 디렉터리를 노드 중 하나에 설치합니다. Couchbase 클러스터에 대한 셸 액세스 권한과 필요한 자격 증명이 있다고 가정합니다.
        • 보세요. 모든 100,000개의 항목은 로드되는 즉시 (삽입으로 인한 변이에서) 변환됩니다.

더 많은 성능을 원한다면 함수 설정에서 워커 수를 늘리거나 이벤트 노드를 더 추가하여 수직적으로 확장할 수 있습니다. 더 많은 데이터를 로드하고 100% 메모리를 유지하려면 버킷의 크기를 늘려야 할 수도 있습니다.

최종 생각

이 워크스루가 도움이 되셨기를 바라며, 다음 사항에 대해 더 많은 이해를 얻으셨기를 바랍니다. 카우치베이스 이벤트 서비스 전체적으로.

이전에는 더 적은 컴퓨팅 리소스를 사용하도록 함수를 최적화했습니다. 또한 저장 공간에 맞게 최적화할 수도 있습니다. 참고로 in_xmlout_json 속성을 보강한 후 문서에 추가할 수 있습니다. 약간의 조정(두 줄 추가)만으로 문서에 있는 in_xml 를 사용하여 중복 저장소를 제거합니다(30%의 디스크 공간을 절약해줍니다.). 함수가 어떻게 실행되는지 더 잘 보여드리기 위해 예제에서는 이 부분을 생략했지만 다음을 사용하여 직접 실험해 보시기 바랍니다:

이 예제는 Couchbase의 기본 문서 사이트에 예제 스크립틀릿으로 게시되어 있습니다: 기능: convertXMLtoJSON. XML 어트리뷰트를 번역하지는 않지만 쉽게 추가할 수 있습니다(다음 단락 참조). 하지만 간단한 방법 parseXmlToJson() 제가 사용한 것은 초기 데이터에 딱 맞는 것이었습니다.

개발 과정에서 저는 간단하게 시작하여 몇 가지 방대한 XML 문서를 테스트했지만, 물론 XML 구조의 모든 영역을 다루지는 못했을 수도 있습니다. 두 번째 스크립틀릿을 개발했습니다. convertAdvXMLtoJSON (이 기사에는 표시되지 않음)을 즉시 알게 되었기 때문입니다. 많은 XML 문서가 어트리뷰트를 활용합니다. 흥미로운 구문 변형이 있습니다.

이를 통해 XML 어트리뷰트와 제가 만난 구문 변형을 변환하는 보다 광범위한 Eventing 함수를 만들게 되었습니다. 이 더 길고 더 많은 기능을 갖춘 Eventing 함수의 소스는 Couchbase의 기본 문서 사이트에서 예제 스크립트로 확인할 수 있습니다: 기능: convertAdvXMLtoJSON. 이 고급 버전은 '오픈스트리트맵 지오메트리 파일'과 '화웨이 셀룰러 운영 측정'을 포함한 대용량 XML 문서를 성공적으로 변환했습니다.

다음을 시도해 보시기 바랍니다:

        • 역함수를 작성합니다: 대신 convertXMLtoJSON라고 말합니다. convertJSONtoXML
        • 변경 convertAdvXMLtoJSON 와 같은 속성 이름 앞에 attr_ 를 사용하여 최종 JSON 변환에서 XML 속성을 식별할 수 있습니다.
        • 기본 문자열 유형 대신 이름별 프로퍼티를 실수 및 부울로 일반 변환하는 JavaScript 맵 및 루틴(선택 사항)을 추가합니다.
        • 입력 데이터에 '문서 유형 정의' 또는 DTD를 적용하는 기능을 구현하여 다른 문서에서 DTD를 읽어오는 기능을 구현합니다.
        • 변환된 문서의 JSON 표현의 다른 부분을 가리키는(가리키는) XPath 쿼리용 번역기를 만듭니다.

쿼리 워크벤치에서 SQL++(N1QL)을 실험해보고, 인덱스 어드바이저를 사용해 XML 데이터(JSON으로 변환)에 액세스하기 위한 최적의 인덱스를 쿼리하고 생성하는 것을 잊지 마세요.

리소스

참조

이벤팅을 통한 카우치베이스가 XML 데이터베이스라는 사실을 납득하셨기를 바랍니다.

카우치베이스와 이벤트 기능이 마음에 드셨는지, 앞으로 비즈니스에 어떤 도움이 되는지 여러분의 의견을 듣고 싶습니다. 아래 댓글이나 다음에서 의견을 공유해 주세요. 카우치베이스 포럼.

 

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

작성자

게시자 Jon Strabala, 수석 제품 관리자, Couchbase

존 스트라발라는 카우치베이스 이벤트 서비스를 담당하는 수석 제품 관리자입니다. Couchbase에 입사하기 전에는 항공우주 분야의 EDA를 시작으로 오늘날 "IoT"와 "대규모 데이터"에 초점을 맞춘 엔터프라이즈 소프트웨어 구축으로 전환하는 등 20년 이상 다양한 영역에서 소프트웨어 제품을 구축했습니다. Jon은 여러 소규모 소프트웨어 컨설팅 회사에서 근무하다가 결국 자신의 회사를 설립하고 경영하게 되었습니다. 그는 압축 비트맵과 컬럼 스토어와 같은 새로운 기술에 기여하고 상용화하는 데 있어 NoSQL/NewSQL에 대한 폭넓은 경험을 가지고 있습니다. Jon은 서던 캘리포니아 대학교에서 전기공학 학사 및 컴퓨터공학 석사 학위를, 캘리포니아 대학교 어바인 캠퍼스에서 MBA를 취득했습니다.

댓글 남기기

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

구축 시작

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

카펠라 무료 사용

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

연락하기

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