Amazon Neptune을 구축해 보았습니다.
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 키를 누릅니다.
다양한 매개변수 지정하기
다양한 매개변수 지정하기
다양한 매개변수 지정하기
기타 각종 설정은 기본적으로 진행될 것이다.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
실행 예> 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가 순조롭게 끝났고 그 다음에 데이터 취득이 진행되었다.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 선택
입력 매개 변수
다음 매개변수를 넣고 Create 키를 누릅니다.
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 부분이어서 간단함을 알 수 있다.그래프도 눌러봐.
다음과 같이 질의와 연관된 데이터를 표시할 수 있습니다.이번에는 별 의미 없는 데이터가 감동적이지는 않지만, 실제 작업길에서 쉽게 시각적으로 관계를 파악할 수 있어 편리해 보인다.
총결산
이번 기사는 다음 두 가지를 정리했습니다.
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> . }
참조 링크
Reference
이 문제에 관하여(Amazon Neptune을 구축해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sugimount-a/items/eff6788d646a3cbf8962텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)