IT Log

[CKAN] DataStore 본문

Open Source/CKAN

[CKAN] DataStore

newly0513 2021. 4. 9. 16:21
728x90
반응형

전제 조건

Sysadmin : newly0513.tistory.com/205

Test data : newly0513.tistory.com/206


1. PostgreSQL User 및 Database 생성

# User 생성
sudo -u postgres createuser -S -D -R -P -l datastore_default

# Database 생성
sudo -u postgres createdb -O ckan_default datastore_default -E utf-8

2. ckan.ini 설정

2-1. 플러그인 및 URL 설정

sudo vi /etc/ckan/default/ckan.ini
* ckan.plugins
# 수정 전 (plugin 목록은 다를 수 있음)
ckan.plugins = stats text_view image_view recline_view


# 수정 후 (띄어쓰기 후 datastore 추가)
ckan.plugins = stats text_view image_view recline_view datastore


...



* ckan.datastore.write_url / ckan.datastore.read_url
# 수정 전
#ckan.datastore.write_url = postgresql://ckan_default:pass@localhost/datastore_default
#ckan.datastore.read_url = postgresql://datastore_default:pass@localhost/datastore_default

# 수정 후 (주석 제거 후 pass에 각각 알맞은 비밀번호 입력)
ckan.datastore.write_url = postgresql://ckan_default:비밀번호@localhost/datastore_default
ckan.datastore.read_url = postgresql://datastore_default:비밀번호@localhost/datastore_default

3. 권한 설정

ckan -c /etc/ckan/default/ckan.ini datastore set-permissions | sudo -u postgres psql --set ON_ERROR_STOP=1

4. Datastore 테스트

  • 테스트 전에 CKAN을 재시작 후 새로운 터미널을 열고 아래 명령을 실행
  • 실행 후 JSON 형식으로 출력되면 정상
curl -X GET "http://127.0.0.1:5000/api/3/action/datastore_search?resource_id=_table_metadata"

 

 

Resource 생성

 

curl -X POST http://127.0.0.1:5000/api/3/action/datastore_create -H "Authorization: {YOUR-API-KEY}" -d '{"resource": {"package_id": "{PACKAGE-ID}"}, "fields": [ {"id": "a"}, {"id": "b"} ], "records": [ { "a": 1, "b": "xyz"}, {"a": 2, "b": "zzz"} ]}'

※ 이전 글 중 Sysadmin과 Test data를 생성하는 과정을 진행했다면,

  • API_KEY는 sysadmin계정 로그인 후 '우측 상단 톱니바퀴(profile settings)' 클릭 > 하단에 있는 'Regenerate API Key' 클릭 > 우측상단 계정 클릭 or 좌측상단 계정 클릭 > 좌측 하단 API Key 확인
  • package_id는 'ckan -c /etc/ckan/default/ckan.ini dataset list' 를 통해 해당 dataset의 package_id를 확인 또는 CKAN 홈페이지에서 'Datasets > 생성된 데이터 셋 클릭 > Data and Resources 목록 중 아무거나 클릭 > Additional Infomation 구역에서 아래쪽의 Show more 클릭 > Field명 Package id 확인'

 

Resource 검색

# CLI 확인
curl -X get http://127.0.0.1:5000/api/3/action/datastore_search?resource_id={RESOURCE_ID}

# Web page 확인
http://127.0.0.1:5000/api/3/action/datastore_search?resource_id={RESOURCE_ID}
  • RESOURCE_ID는 Resource 생성 과정이 정상적으로 이루어졌다면 출력내용에서 확인 또는 Package_id를 확인하는 방법과 똑같이 진행 (Resource_id는 Field명이 'Id'임)

 

Resource 삭제

curl -X POST http://127.0.0.1:5000/api/3/action/datastore_delete -H "Authorization: {YOUR-API-KEY}" -d '{"resource_id": "{RESOURCE-ID}"}'

참고 URL : docs.ckan.org/en/2.9/maintaining/datastore.html


 

 

728x90
반응형

'Open Source > CKAN' 카테고리의 다른 글

[CKAN] FileSotre  (1) 2021.04.13
[CKAN] Create Test Data  (0) 2021.04.09
[CKAN] Create Sysadmin User  (0) 2021.04.09
[CKAN] Source Install  (0) 2021.04.09
[CKAN] Package Install  (0) 2021.04.08
Comments