openCypher 데이터의 로드 형식 - Amazon Neptune

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

openCypher 데이터의 로드 형식

openCypher CSV 형식을 사용하여 openCypher 데이터를 로드하려면 별도의 파일에 노드와 관계를 지정해야 합니다. 로더는 단일 로드 작업으로 이러한 여러 노드 파일 및 관계 파일을 로드할 수 있습니다.

각 로드 명령에 대해 로드할 파일 세트는 Amazon Simple Storage Service 버킷에서 동일한 경로 접두사를 가져야 합니다. 소스 파라미터에 해당 접두사를 지정합니다. 실제 파일 이름과 확장자는 중요하지 않습니다.

Amazon Neptune에서 openCypher CSV 형식은 RFC 4180 CSV 사양을 따릅니다. 자세한 내용은 Internet Engineering Task Force(IETF) 웹 사이트의 CSV 파일의 공통 형식 및 MIME 유형(https://tools.ietf.org/html/rfc4180)을 참조하세요.

참고

파일은 UTF-8 형식으로 인코딩되어야 합니다.

각 파일에는 시스템 열 헤더와 속성 열 헤더를 모두 포함하는 쉼표로 구분된 헤더 행이 있습니다.

openCypher 데이터 로드 파일의 시스템 열 헤더

지정된 시스템 열은 각 파일에 한 번만 표시될 수 있습니다. 시스템 열 헤더 레이블은 모두 대소문자를 구분합니다.

openCypher 노드 로드 파일과 관계 로드 파일에 필요한 시스템 열 헤더와 허용되는 시스템 열 헤더는 다릅니다.

노드 파일의 시스템 열 헤더

  • :ID   –   (필수) 노드의 ID입니다.

    노드 :ID 열 헤더에 필요에 따라 :ID(ID Space)와 같이 ID 공간을 추가할 수 있습니다. 예를 들면, :ID(movies)입니다.

    이 파일의 노드를 연결하는 관계를 로드할 때는 관계 파일 :START_ID 및/또는 :END_ID 열에 동일한 ID 공간을 사용하세요.

    노드 :ID 열은 필요에 따라 property name:ID 형식의 속성으로 저장될 수 있습니다. 예를 들면, name:ID입니다.

    노드 ID는 현재 및 이전 로드의 모든 노드 파일에서 고유해야 합니다. ID 공간을 사용하는 경우 현재 및 이전 로드에서 동일한 ID 공간을 사용하는 모든 노드 파일에 걸쳐 노드 ID가 고유해야 합니다.

  • :LABEL   –   노드의 레이블입니다.

    세미콜론(;)으로 구분된 여러 레이블 값을 사용할 수 있습니다.

관계 파일의 시스템 열 헤더

  • :ID   –   관계의 ID입니다. userProvidedEdgeIds 값이 true(기본값)인 경우 필수이지만, userProvidedEdgeIdsfalse일 경우 유효하지 않습니다.

    관계 ID는 현재 및 이전 로드의 모든 관계 파일에서 고유해야 합니다.

  • :START_ID   –   (필수) 이 관계가 시작되는 노드의 노드 ID입니다.

    필요에 따라 ID 공간을 :START_ID(ID Space) 양식의 시작 ID 열과 연결할 수 있습니다. 시작 노드 ID에 할당된 ID 공간은 해당 노드 파일의 노드에 할당된 ID 공간과 일치해야 합니다.

  • :END_ID   –   (필수) 이 관계가 끝나는 노드의 노드 ID입니다.

    필요에 따라 ID 공간을 :END_ID(ID Space) 양식의 마지막 ID 열과 연결할 수 있습니다. 마지막 노드 ID에 할당된 ID 공간은 해당 노드 파일의 노드에 할당된 ID 공간과 일치해야 합니다.

  • :TYPE   –   관계 유형입니다. 관계는 단일 유형만 가질 수 있습니다.

참고

대량 로드 프로세스에서 중복된 노드 또는 관계 ID를 처리하는 방법에 대한 자세한 내용은 openCypher 데이터 로드 섹션을 참조하세요.

openCypher 데이터 로드 파일의 속성 열 헤더

다음 형식의 속성 열 헤더를 사용하여 열에 특정 속성의 값이 포함되도록 지정할 수 있습니다.

propertyname:type

공백, 쉼표, 캐리지 리턴 및 개행 문자는 열 헤더에 사용할 수 없으므로 속성 이름에는 이러한 문자를 포함할 수 없습니다. Int 유형의 이름이 age인 속성에 대한 열 헤더의 예제는 다음과 같습니다.

age:Int

열 헤더로 age:Int가 포함된 열에는 모든 행에 정수 또는 빈 값이 포함되어야 합니다.

Neptune openCypher 데이터 로드 파일의 데이터 유형

  • Bool 또는 Boolean   –  부울 필드입니다. 허용되는 값은 truefalse입니다.

    true 이외의 모든 값은 false로 취급됩니다.

  • Byte   –   -128~127 범위 내의 정수입니다.

  • Short   –   -32,768~32,767 범위 내의 정수입니다.

  • Int   –   -2^31~2^31 - 1 범위 내의 정수입니다.

  • Long   –   -2^63~2^63 - 1 범위 내의 정수입니다.

  • Float   –   32비트 IEEE 754 부동 소수점 숫자입니다. 십진 표기법과 과학적 표기법이 모두 지원됩니다. Infinity, -Infinity, NaN 모두 인식되지만, INF는 인식되지 않습니다.

    자릿수가 너무 많아 맞출 수 없는 값은 가장 가까운 값으로 반올림되며, 중간 값은 비트 수준에서 마지막 남은 자릿수가 0으로 반올림됩니다.

  • Double   –   64비트 IEEE 754 부동 소수점 숫자입니다. 십진 표기법과 과학적 표기법이 모두 지원됩니다. Infinity, -Infinity, NaN 모두 인식되지만, INF는 인식되지 않습니다.

    자릿수가 너무 많아 맞출 수 없는 값은 가장 가까운 값으로 반올림되며, 중간 값은 비트 수준에서 마지막 남은 자릿수가 0으로 반올림됩니다.

  • String   –   인용 부호는 선택 사항입니다. 쉼표, 줄 바꿈 및 캐리지 리턴 문자가 "Hello, World"와 같이 큰 따옴표(")로 묶인 문자열에 포함된 경우에는 자동으로 이스케이프됩니다.

    예를 들어, "Hello ""World"""처럼 2개를 연속으로 사용하여 따옴표로 묶인 문자열에 따옴표를 포함할 수 있습니다.

  • DateTime   –   다음 ISO-8601 형식 중 하나로 된 Java 날짜입니다.

    • yyyy-MM-dd

    • yyyy-MM-ddTHH:mm

    • yyyy-MM-ddTHH:mm:ss

    • yyyy-MM-ddTHH:mm:ssZ

Neptune openCypher 데이터 로드 파일에서 데이터 유형 자동 캐스트

자동 캐스트 데이터 유형은 현재 Neptune에서 기본적으로 지원되지 않는 데이터 유형을 로드하기 위해 제공됩니다. 이러한 열의 데이터는 의도된 형식에 대한 검증 없이 문자열 그대로 저장됩니다. 다음과 같은 자동 캐스트 데이터 유형이 허용됩니다.

  • Char   –   Char 필드입니다. 문자열로 저장됩니다.

  • Date, LocalDate, LocalDateTime   –  date, localdate, localdatetime 유형에 대한 설명은 Neo4j 임시 인스턴스를 참조하세요. 값은 검증 없이 문자열 그대로 로드됩니다.

  • Duration   –   Neo4j 기간 형식을 참조하세요. 값은 검증 없이 문자열 그대로 로드됩니다.

  • Point   –   공간 데이터를 저장하기 위한 포인트 필드입니다. 공간 인스턴트를 참조하세요. 값은 검증 없이 문자열 그대로 로드됩니다.

openCypher 로드 형식의 예제

TinkerPop Modern Graph에서 가져온 다음 다이어그램은 두 노드와 관계의 예를 보여줍니다.

두 노드와 노드 간 관계를 보여주는 다이어그램.

다음은 일반적인 Neptune openCypher 로드 형식의 그래프입니다.

노드 파일:

:ID,name:String,age:Int,lang:String,:LABEL v1,"marko",29,,person v2,"lop",,"java",software

관계 파일:

:ID,:START_ID,:END_ID,:TYPE,weight:Double e1,v1,v2,created,0.4

또는 다음과 같이 ID 공간과 ID를 속성으로 사용할 수 있습니다.

첫 번째 노드 파일:

name:ID(person),age:Int,lang:String,:LABEL "marko",29,,person

두 번째 노드 파일:

name:ID(software),age:Int,lang:String,:LABEL "lop",,"java",software

관계 파일:

:ID,:START_ID,:END_ID,:TYPE,weight:Double e1,"marko","lop",created,0.4