View a markdown version of this page

openCypher 파라미터화 쿼리의 예제 - Amazon Neptune

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

openCypher 파라미터화 쿼리의 예제

Neptune은 파라미터화된 openCypher 쿼리를 지원합니다. 이렇게 하면 인수가 다른 동일한 쿼리 구조를 여러 번 사용할 수 있습니다. 쿼리 구조는 변경되지 않으므로, Neptune은 추상 구문 트리(AST)를 여러 번 구문 분석하지 않고도 캐싱할 수 있습니다.

HTTPS 엔드포인트를 사용하는 openCypher 파라미터화 쿼리의 예제

다음은 Neptune openCypher HTTPS 엔드포인트에서 파라미터화된 쿼리를 사용하는 예제입니다. 쿼리는 다음과 같습니다.

MATCH (n {name: $name, age: $age}) RETURN n

파라미터는 다음과 같이 정의됩니다.

parameters={"name": "john", "age": 20}

다음과 같이 파라미터화된 쿼리를 제출할 수 있습니다.

AWS CLI
aws neptunedata execute-open-cypher-query \ --endpoint-url https://your-neptune-endpoint:port \ --open-cypher-query "MATCH (n {name: \$name, age: \$age}) RETURN n" \ --parameters '{"name": "john", "age": 20}'

자세한 내용은 AWS CLI 명령 참조의 execute-open-cypher-query를 참조하세요.

SDK
import boto3 from botocore.config import Config client = boto3.client( 'neptunedata', endpoint_url='https://your-neptune-endpoint:port', config=Config(read_timeout=None, retries={'total_max_attempts': 1}) ) response = client.execute_open_cypher_query( openCypherQuery='MATCH (n {name: $name, age: $age}) RETURN n', parameters='{"name": "john", "age": 20}' ) print(response['results'])

다른 언어의 AWS SDK 예제는 섹션을 참조하세요AWS SDK.

awscurl
awscurl https://your-neptune-endpoint:port/openCypher \ --region us-east-1 \ --service neptune-db \ -X POST \ -d "query=MATCH (n {name: \$name, age: \$age}) RETURN n" \ -d 'parameters={"name": "john", "age": 20}'
참고

이 예제에서는 자격 AWS 증명이 환경에 구성되어 있다고 가정합니다. us-east-1을 Neptune 클러스터의 리전으로 바꿉니다.

curl

POST 사용:

curl https://your-neptune-endpoint:port/openCypher \ -d "query=MATCH (n {name: \$name, age: \$age}) RETURN n" \ -d "parameters={\"name\": \"john\", \"age\": 20}"

사용GET(URL 인코딩):

curl -X GET \ "https://your-neptune-endpoint:port/openCypher?query=MATCH%20%28n%20%7Bname:\$name,age:\$age%7D%29%20RETURN%20n&parameters=%7B%22name%22:%22john%22,%22age%22:20%7D"

DIRECT POST 사용:

curl -H "Content-Type: application/opencypher" \ "https://your-neptune-endpoint:port/openCypher?parameters=%7B%22name%22:%22john%22,%22age%22:20%7D" \ -d "MATCH (n {name: \$name, age: \$age}) RETURN n"

Bolt를 사용한 openCypher 파라미터화 쿼리의 예제

다음은 Bolt 프로토콜을 사용하는 openCypher 파라미터화 쿼리의 Python 예제입니다.

from neo4j import GraphDatabase uri = "bolt://[neptune-endpoint-url]:8182" driver = GraphDatabase.driver(uri, auth=("", "")) def match_name_and_age(tx, name, age): # Parameterized Query tx.run("MATCH (n {name: $name, age: $age}) RETURN n", name=name, age=age) with driver.session() as session: # Parameters session.read_transaction(match_name_and_age, "john", 20) driver.close()

다음은 Bolt 프로토콜을 사용하는 openCypher 파라미터화 쿼리의 Java 예제입니다.

Driver driver = GraphDatabase.driver("bolt+s://(your cluster endpoint URL):8182"); HashMap<String, Object> parameters = new HashMap<>(); parameters.put("name", "john"); parameters.put("age", 20); String queryString = "MATCH (n {name: $name, age: $age}) RETURN n"; Result result = driver.session().run(queryString, parameters);