안녕하세요 씨앤텍 시스템즈입니다.
이번 포스트는 DataSet 등록 시 사용된 테이블 대해서 정리해 보았습니다.
DB 리버스와 QueryLog 를 활용하여 CKAN에서 DataSet 등록 시
데이터가 어느 테이블에 어떻게 저장되는지 분석하였습니다.
1) Query Log 파일 분석
DataSet 등록 후 QueryLog 파일을 확인하여
insert 된 테이블 확인
2) insert된 데이터를 확인하여 테이블 관계 분석
최초 insert된 테이블을 확인 후
해당 테이블의 PK값이 다른 테이블의 FK로 저장되었는지 확인
3) DB 리버스 모델과 Query 분석 내용을 종합하여
테이블간 관계 파악
분석 결과
1) 최초로 데이터가 insert되는 테이블은 revision table!
Query Log 분석 결과 revision table이 제일 먼저 insert 되고 이때 생성된 PK 값이 여러 테이블의 FK로 활용되는 것을
확인하였습니다.
2) 모든 작업의 정의를 내리는 table은 revision table /
DataSet 등록시 사용자가 작성한 내용은 package table /
파일 업로드시 사용자가 작성한 내용 및 파일의 정보는 resource table 이 사용!
■ revision table
PK인 id(revision_id)의 값이 다른 테이블의 FK로 사용됩니다.
■ package table
title,version,url,notes,license_id,author...등 DataSet 등록 시 사용자가 입력한 값들이 저장되어 있습니다.
■ resource table
url,format,description,name 등 파일 업로드 시 사용자가 작성한 내용이 저장되어 있습니다.
3) 분석한 내용 정리
CKAN에서 어떠한 이벤트(등록,삭제,수정 등등)가 발생하면 revision table에 어떠한 이벤트가 발생했는지 저장 되고,
이 때 생성된 revision_id를 가지고 해당 이벤트에 사용 되는 table의 FK로 저장됩니다. 이 포스트에서는 DataSet 등록 시 사용된 table을 분석하였기 때문에 package, resource table이 사용 되었음을 확인하였습니다. 다른 작업을 분석 하게 되면 다른 테이블의 FK로 사용 될 것으로 추측됩니다.
'OpenDataPlatform > CKAN 분석' 카테고리의 다른 글
03. CKAN 프레임워크 - Pandas (1) | 2019.07.01 |
---|---|
02. CKAN 프레임워크 - Solr (0) | 2019.05.31 |
01. CKAN 프레임워크 - 준비 (0) | 2019.05.09 |
Postgresql Query Log 분석 (0) | 2019.05.09 |
CKAN DB 리버스 모델링 (0) | 2019.05.09 |