객체 유형 생성과 초기 구성
Ontology Manager의 생성 마법사는 객체 유형(Object type)의 데이터, 속성(Property), 기본 키(Primary key)와 표시 정보를 함께 구성하는 권장 경로입니다. 마법사를 중간에 나왔다면 상세 화면에서 남은 설정을 마칠 수 있습니다. 코드로 정의하려면 SuperRepo의 Ontology-as-code를 사용할 수 있으며 Manager에서 만든 유형을 SuperRepo로 가져오는 경로도 있습니다.
생성 시작
홈의 Create your first object type 또는 오른쪽 위 New의 Create object type을 선택합니다.
데이터소스 선택
기존 Foundry 데이터소스를 선택하면 메타데이터를 채우고 열마다 속성을 자동 매핑합니다. Properties 단계에서 필요 없는 속성을 제거할 수 있습니다.
MapType 열을 포함한 입력은 필요한 값을 지원되는 열로 풀거나 사용할 열을 추려 준비합니다. StructType은 일반 스칼라처럼 취급하지 않고 Object Storage V2의 Struct 속성에 매핑합니다. 구조체는 데이터셋이나 제한 뷰(Restricted view)의 단일 구조체 열을 원본으로 사용하며 중첩 구조체와 배열 필드는 지원하지 않습니다.
기존 자료가 없을 때에는 서로 다른 두 경로가 있습니다.
| 경로 | 구성 |
|---|---|
| 빈 권한용 데이터셋 생성 | 새 데이터셋의 저장 위치를 선택합니다. 데이터소스 기반 객체 권한은 이 위치를 따릅니다. 구형 Object Storage V1에서는 이 생성 선택지를 제공하지 않습니다. |
| 기반 데이터소스 없이 생성 | 모든 속성을 액션(Action)으로 채웁니다. 유형을 프로젝트(Project)에 저장하고 객체 보안 정책으로 액션이 만든 객체의 조회 권한을 정해야 합니다. |
데이터소스가 없어도 기본 키는 필요하며 액션이 만든 각 객체의 키 값은 고유해야 합니다.
메타데이터
아이콘과 색상, 단수 Name과 복수 Plural name, Description 및 분류할 Groups를 지정합니다. 설명은 Object Explorer 같은 사용자 앱의 검색 결과에도 표시됩니다.
속성과 키
Properties에서 자동 매핑한 속성을 검토하거나 필요한 속성을 추가합니다. 모든 유형은 기본 키를 위해 최소 한 속성이 필요합니다. 미디어처럼 추가 설정이 필요한 속성은 마법사에서 자동 생성하지 못하므로 나중에 속성 편집기에서 구성합니다.
제목 키(Title key)는 객체의 표시 이름입니다. 가상의 Employee에서 full name을 선택하면 Melissa Chang, Akriti Patel과 Diego Rodriguez 같은 이름을 표시합니다. 기본 키는 직원 이름과 별개로 employee ID처럼 대상을 유일하게 식별할 값을 선택합니다.
기반 데이터소스 안에서 키가 중복되지 않아야 합니다. V2에서는 중복 키가 Funnel 배치 파이프라인 오류와 빌드 실패를 일으킵니다. 구형 V1에서는 갱신이 성공한 것처럼 보이면서 예상하지 못한 객체 변경이 생길 수 있었습니다.
키는 빌드가 바뀌어도 같은 대상을 같은 값으로 식별하도록 결정적이어야 합니다. 기존 편집은 객체의 기본 키 값에 연결됩니다. 매번 달라지는 행 번호나 난수 키를 생성하면 편집을 잃거나 링크가 끊길 수 있습니다. 하나 또는 여러 원천 열을 이용한 안정적인 키 생성 규칙을 사용합니다.
기본 키와 제목 키로 사용할 수 있는 자료형은 속성 자료형 표에 있습니다.
액션, 저장 위치와 보안
표준 편집 액션을 자동 생성하고 실행할 사용자 또는 그룹을 정할 수 있습니다. 마법사를 나간 뒤에도 액션을 수정하거나 추가할 수 있습니다. 구형 V1에는 이 생성 단계가 없습니다.
객체 유형을 저장할 프로젝트를 선택하고 Create를 누릅니다. Create는 변경을 작업 중 상태에 준비하며 온톨로지에 최종 저장하지는 않습니다.
데이터소스 없는 유형은 객체 보안 정책을 반드시 설정합니다. 생성된 객체를 누가 볼 수 있는지 조건을 정하고 예상한 사용자에게만 접근이 허용되는지 정책의 시험 기능으로 확인합니다. 데이터소스 기반 유형은 기반 데이터소스 위치의 권한을 상속하므로 이 생성 절차에서 별도 정책을 의무로 요구하지 않습니다.
마지막으로 오른쪽 위 Save에서 변경을 검토하고 저장합니다.
마법사를 나간 뒤 수동 완성
설정을 마치기 전에 Create로 나왔다면 유형은 아직 저장되지 않은 상태입니다. 필요한 메타데이터, 데이터 또는 편집 전용 구성, 속성과 키를 완성해야 저장할 수 있습니다.
메타데이터와 그룹
Overview에서 표시 이름, 복수 이름, 별칭(Alias), 설명, 그룹과 초기 ID를 정합니다. 별칭은 검색에서 유형을 찾을 추가 용어입니다. ID는 앱 구성에서 유형을 참조하는 식별자이고 API 이름과 다릅니다. 사이드바 아이콘을 선택하면 아이콘과 색상을 바꿉니다. 데이터소스 없는 유형은 Backing datasource 값이 비어 있습니다.
Groups에서 기존 그룹을 선택하거나 이름을 입력하여 새 그룹을 만들고 필요 없는 그룹을 제거할 수 있습니다.
그룹은 Ontology Manager 검색, 유형 목록의 표시 및 필터와 Object Explorer 홈 탐색에 사용됩니다. 기본 키 속성에 oe_home_page_object_type_group 유형 클래스를 추가하던 이전 방식은 더 이상 제공하지 않습니다.
데이터소스와 속성 연결
Overview의 Properties에서 Create new 또는 유형 Properties 페이지의 Edit property mapping으로 편집기를 엽니다. Add a backing datasource에서 입력을 고릅니다. 이미 다른 객체 유형에 등록된 데이터소스를 중복 등록하지 않습니다.
오른쪽 Properties의 Add로 새 속성을 추가합니다.
열과 속성은 다음 방식으로 매핑할 수 있습니다.
| 방식 | 동작 |
|---|---|
| 열에서 새 속성 생성 | 왼쪽 데이터소스의 열 위에 포인터를 두고 Add as a new property를 선택합니다. 열 정보를 기반으로 속성 ID, 표시 이름과 기본 자료형을 추론합니다. |
| 열을 기존 속성에 연결 | 미매핑 열의 Add as a new property를 선택했을 때 열 이름과 같은 속성 ID가 이미 있으면 기존 속성에 연결합니다. |
| 속성에서 열 선택 | 오른쪽 속성의 Map to a column에서 연결할 열을 고릅니다. |
데이터소스 이름 옆 Add all unmapped columns as new properties를 사용하면 남은 열을 한 번에 속성으로 만들고 ID, 표시 이름과 자료형을 추론합니다. 이미 앱이 참조하는 속성 ID를 바꾸면 해당 참조가 깨집니다.
Struct 열은 속성 편집기에서 Base type을 Struct로 선택하고 원본 구조체 열과 내부 필드를 매핑하는 구성을 사용합니다.
키 지정과 저장
속성 메타데이터에서 기본 키로 사용할 속성의 Primary key, 표시할 속성의 Title key를 선택합니다.
기본 키를 변경하면 기존 편집을 삭제하라는 확인을 요구할 수 있습니다. 편집이 원래 키 값에 연결되기 때문입니다. 새 유형에서는 고유하고 결정적인 키를 먼저 정한 뒤 저장합니다. 수동 설정도 Save 전에는 다른 사용자에게 반영되지 않습니다.
ID와 API 이름
객체 유형 ID는 소문자로 시작하고 소문자, 숫자와 대시를 사용하며 온톨로지의 객체 유형 사이에서 고유해야 합니다. 초기 생성 후에는 ID를 수정할 수 없습니다. 속성 ID는 문자로 시작하고 대소문자, 숫자, 대시와 밑줄을 사용할 수 있으며 같은 객체 유형 안에서 고유해야 합니다.
새 객체 유형과 속성에는 표시 이름에서 추론한 API 이름이 자동 지정됩니다. 유형의 API 이름은 Overview에서, 속성 API 이름은 속성 편집기에서 바꿉니다. 새 이름에는 다음 표기를 권장하며, 길이와 고유성 조건도 충족해야 합니다.
| 대상 | 새 이름의 권장 표기 | 길이와 고유성 |
|---|---|---|
| 객체 유형 | 대문자로 시작하는 영문자와 숫자의 PascalCase, 예: ThisExampleName | 1~100자. 온톨로지의 모든 객체 유형 사이에서 고유 |
| 속성 | 소문자로 시작하는 영문자와 숫자의 camelCase, 예: thisExampleName | 1~100자. 같은 객체 유형의 속성 사이에서 고유 |
API 이름은 유효한 Unicode 문자열이어야 하며 다음 예약어를 사용할 수 없습니다: ontology, object, property, link, relation, rid, primaryKey, typeId, ontologyObject.
저장 조건과 오류
| 구분 | 비어 있으면 안 되는 항목 |
|---|---|
| 객체 유형 | ID, 표시 이름, 복수 표시 이름, API 이름 및 데이터소스 기반 경로의 Backing datasource |
| 속성 및 키 구성 | 속성 ID, 속성 표시 이름, 속성 API 이름, 제목 키와 기본 키 및 데이터소스에서 값을 받을 속성의 Backing column |
액션만으로 채울 속성은 기반 열을 요구하지 않습니다. 데이터소스 없는 유형은 대신 프로젝트 저장과 객체 보안 정책 조건을 충족해야 합니다.
Phonograph2:DatasetAndBranchAlreadyRegistered는 선택한 데이터소스와 브랜치가 다른 객체 유형에 이미 등록되었을 때 나타납니다. 기존 등록과 유형의 기반 데이터소스를 확인하여 중복 등록을 해결합니다.