Amazon Neptune을 구축해 보았습니다.

9262 단어 AWSNeptune
개시하다
AWS에서는'Purpose-built databases'라는 말이 있는데 사용하는 서비스의 작업 부하에 따라 최적의 데이터베이스를 선택한다.실현하고자 하는 시스템을 데이터 구조에 포함시키고 최상의 성능으로 고객에게 서비스를 제공하기 위해 다양한 용도에 적합한 데이터베이스를 선택할 수 있다.
그 중에서 이번에는 차트 데이터베이스인 Amazon Neptune을 소개하겠습니다.
다음은 도표 데이터베이스에서 사용할 수 있는 간단한 예이다.

URL : https://pages.awscloud.com/rs/112-TZM-766/images/2_20211111_Neptune_shoukai.pdf
소셜네트워크서비스(SNS)를 표현한 것으로, "사용자", "기사", "정말 좋다!"'리뷰'같은 등장인물이 있다.A 씨 친구가 댓글 기사가 정말 좋네요!사람 등은 복잡한 다대다의 관계성이 된다.이런 복잡한 관계와 대량의 데이터가 있을 때 일반적인 RDBMS는 성능 문제가 발생할 수 있다.따라서 멀티태스킹이 강한 Amazon Neptune을 활용하면 성능 데이터를 잘 제공할 수 있습니다.
이번 기사에서는 넥튠을 구축해 어떤 활용법을 확인했다.AWS Doctoment의 다음 URL을 참조하십시오.
Getting Started : https://docs.aws.amazon.com/ja_jp/neptune/latest/userguide/neptune-setup.html
Neptune 만들기
Neptune 페이지를 열고 Create Database 키를 누릅니다.

다양한 매개변수 지정하기
  • Neptune 버전 지정
  • Cluster 이름 지정

  • 다양한 매개변수 지정하기
  • 공식 환경
  • Instance Size
  • 서로 다른 AZ에 Read Replica의 Multi-AZ 구조를 생성

  • 다양한 매개변수 지정하기
  • VPC, Subnet Group, Security Group
  • 지정
  • Neptune Port 지정

  • 기타 각종 설정은 기본적으로 진행될 것이다.RDS 설정 화면과 비슷합니다.

    Create Database 선택

    두 개의 AZ를 뛰어넘고 두 개의 Neptune 실례가 Creating이 되다

    일정 시간 후 Available이 되었습니다.Writer 인스턴스와 Reader 인스턴스가 작성되었습니다.

    클러스터 상세 정보를 열면 Writer Endpoint, Reader Endpoint를 확인할 수 있습니다.

    귀여운 SPARQL
    Neptune 클러스터는 VPC 내에서 생성되므로 VPC 내에 존재하는 EC2 인스턴스에서 액세스할 수 있습니다.
    EC2 인스턴스에서 다음 curl 명령을 실행하여 데이터를 INSERT에 저장합니다.
    RDF에는 주어-술어-목적어를 나타내는 세 개의 개념이 있는데 이것은 INSERT이다.<https://test.com/s> <https://test.com/p> <https://test.com/o>는 주어-술어-목적어의 부분이다.
    curl -X POST \
    --data-binary 'update=INSERT DATA { <https://test.com/s> <https://test.com/p> <https://test.com/o> . }' \
    https://neptune-test.cluster-chuxmuzmrpgx.ap-northeast-1.neptune.amazonaws.com:8182/sparql
    
    실행 예
  • JSON을 통한 응답 반환
  • 처리하는 시간도 알려주세요
  • > curl -X POST \
          --data-binary 'update=INSERT DATA { <https://test.com/s> <https://test.com/p> <https://test.com/o> . }' \
          https://neptune-test.cluster-chuxmuzmrpgx.ap-northeast-1.neptune.amazonaws.com:8182/sparql
    [
    {
        "type" : "UpdateEvent",
        "totalElapsedMillis" : 144,
        "elapsedMillis" : 6,
        "connFlush" : 0,
        "batchResolve" : 0,
        "whereClause" : 0,
        "deleteClause" : 0,
        "insertClause" : 0
    },
    {
        "type" : "Commit",
        "totalElapsedMillis" : 206
    }
    ]⏎
    
    데이터의 INSERT가 순조롭게 끝났고 그 다음에 데이터 취득이 진행되었다.
  • 도표의 3배(주어-술어-목적어)
  • curl -X POST \
    --data-binary 'query=select ?s ?p ?o where {?s ?p ?o} limit 10' \
    https://neptune-test.cluster-chuxmuzmrpgx.ap-northeast-1.neptune.amazonaws.com:8182/sparql
    
    실행 예
    > curl -X POST \
          --data-binary 'query=select ?s ?p ?o where {?s ?p ?o} limit 10' \
          https://neptune-test.cluster-chuxmuzmrpgx.ap-northeast-1.neptune.amazonaws.com:8182/sparql
    {
      "head" : {
        "vars" : [ "s", "p", "o" ]
      },
      "results" : {
        "bindings" : [ {
          "s" : {
            "type" : "uri",
            "value" : "https://test.com/s"
          },
          "p" : {
            "type" : "uri",
            "value" : "https://test.com/p"
          },
          "o" : {
            "type" : "uri",
            "value" : "https://test.com/o"
          }
        } ]
      }
    }
    
    Jupter Notebook 만들기
    curl의 SPARQL 접근을 사용했지만, 매번curl의 명령을 입력하기가 매우 어렵다.따라서 네푸틴이 제공하는 점퍼 노트북을 편리하게 활용할 수 있다.이 노트북에는 Neptune Workbench라고 불리는 조회와 시각화 가능한 도구가 포함되어 있어 개발 작업에 편리하게 사용할 수 있다.
    Neptune 메뉴에서 Create Notebook 선택

    입력 매개 변수
  • 연합하고 싶은 Neptune 클러스터
  • Notebook의 인스턴스 유형

  • 다음 매개변수를 넣고 Create 키를 누릅니다.
  • Notebook Instance의 Subnet 및 Security Group
  • 선택

    Notebook Instance 를 생성하여 pending

    일정 시간 후 Ready가 되면 Open notebook을 누릅니다.

    Jupter Notebook이 열렸습니다.

    Neptune Notebook에 샘플이 많아요.

    Neptune Workbench의 SPARQL 쿼리
    노트북에 새로운 노트북을 만들어보자.New에서 Python 3을 선택합니다.

    새 Notebook이 작성되었습니다.

    새로운 Notebook에서는 SPARQL을 간단히 수행할 수 있습니다.%%sparql 머리 위에 놓고 SPARQL의 조회를 기술할 수 있으며 Jupter Notebook에서 조회를 간단하게 수행할 수 있다.
    이번에는curl에 이미 넣은 데이터를 가져옵니다.Run에서 다음 문자열을 실행합니다.
    %%sparql
    
    SELECT ?s ?p ?o WHERE {?s ?p ?o} LIMIT 10
    

    실행됨.Table에서 SPARQL의 실행 결과를 볼 수 있습니다.curl 때와 비교해 기술량은 SPARQL 부분이어서 간단함을 알 수 있다.그래프도 눌러봐.

    다음과 같이 질의와 연관된 데이터를 표시할 수 있습니다.이번에는 별 의미 없는 데이터가 감동적이지는 않지만, 실제 작업길에서 쉽게 시각적으로 관계를 파악할 수 있어 편리해 보인다.

    총결산
    이번 기사는 다음 두 가지를 정리했습니다.
  • Neptune 클러스터 구축 방법
  • SPARQL을 사용하는 접근 방법은curl을 사용하는 접근 방법과 Jupter Notebook에서 Neptune Workbench를 사용하는 접근 방법
  • 참고: 질의 작성 및 삭제 데이터
    Insert
    %%sparql
    
    INSERT DATA { <https://test.com/s> <https://test.com/p> <https://test.com/o> . }
    
    Delete
    %%sparql
    
    DELETE DATA { <https://test.com/s> <https://test.com/p> <https://test.com/o> . }
    
    참조 링크

    좋은 웹페이지 즐겨찾기