데이터 테이블 API
호출 방법은 Open API 문서의 호출 방법 설명을 참고하십시오.
기능 소개
-
데이터 테이블 API로 화면에서 하는 데이터 테이블 작업 일부를 수행할 수 있어, 데이터 테이블 작업을 자동화하려는 요구를 충족할 수 있습니다.
-
데이터 테이블 API로 데이터 테이블에 대해 다음 작업을 수행할 수 있습니다.
- 데이터 테이블 생성
- 기존 데이터 테이블 업데이트
- 데이터 테이블과 주 속성 연관
- 데이터 테이블과 주 속성의 연관 해제
-
데이터 테이블 생성:
아직 없는 데이터 테이블을 생성하고 처음으로 파일을 업로드하며, 데이터 테이블의 각 필드 이름과 타입을 지정할 수 있습니다.
- 기존 데이터 테이블 업데이트:
데이터 테이블 내용의 업데이트만 지원하며, 데이터 테이블 필드의 추가·삭제나 타입 변경은 지원하지 않습니다.
테이블 전체 내용의 대체 업데이트 또는 기존 데이터를 기반으로 한 증분 업데이트를 할 수 있습니다.
- 데이터 테이블과 주 속성 연관:
기존 데이터 테이블을 주 속성과 연관하여 차원 속성을 생성할 수 있습니다.
- 데이터 테이블과 주 속성의 연관 해제:
연관된 데이터 테이블과 주 속성의 연관을 해제하고, 생성된 차원 속성을 삭제할 수 있습니다.
- 데이터 테이블에 대한 자세한 내용: 데이터 테이블
- 차원 속성에 대한 자세한 내용: 가상 속성과 차원 테이블 속성
1. 데이터 테이블 생성
데이터 테이블 생성은 두 단계로 나뉩니다.
- 파일 업로드
- 업로드한 파일로 데이터 테이블 생성
1.1 파일 업로드
업로드할 수 있는 파일 크기는 최대 100M이며, 지원하는 파일 형식은 excel과 csv입니다
인터페이스 URL
/open/datatable/uploadFile
요청 방식
POST
Content-Type
multipart/form-data
요청 Query 파라미터
| 파라미터 이름 | 예시 | 파라미터 타입 | 필수 여부 | 파라미터 위치 | 파라미터 설명 |
|---|---|---|---|---|---|
| token | xxx | String | 예 | 조회 키 | |
| projectId | 0 | number | 예 | query | 생성할 데이터 테이블이 속한 프로젝트 ID. |
| file | "/path/to/my_datatable.xls" | file | 예 | body | multipart/form-data; 업로드할 표의 csv/excel, 첫 번째 열은 기본 키 |
curl --location --request POST 'http://xxx.com/xxx/open/datatable/uploadFile?projectId=390' \
--form 'file=@"/path/to/my_datatable.xls"'
출력 파라미터
fileId(이 fileId는 다음 단계인 데이터 테이블 생성에 사용)
1.2 데이터 테이블 생성
인터페이스 URL
/open/datatable/createDatatable
요청 방식
POST
Content-Type
application/json
요청 Query 파라미터
| 파라미터 이름 | 파라미터 타입 | 필수 여부 | 파라미터 위치 | 설명 |
| token | String | 예 | 조회 키 | |
| projectId | number | 예 | query | 생성할 데이터 테이블이 속한 프로젝트 ID. |
| fileId | string | 예 | body | 업로드한 파일의 id |
| datatableName | string | 예 | body | 데이터 테이블 이름 소문자로 시작하며 소문자, 숫자, 밑줄을 포함할 수 있음 |
datatableColumns | array | 예 | body | 각 열의 열 이름과 대응하는 데이터 타입 열 이름은 문자로만 시작할 수 있고 문자, 숫자, 밑줄 "_"을 포함할 수 있으며, 최대 길이는 50자 |
| columnName | string | 예 | 열 이름 | |
| dataType | string | 예 | 열 데이터 타입 |
코드 예시
curl --location --request POST 'http://xxx.com/xxx/open/datatable/createDatatable?projectId=390' \
--header 'Content-Type: application/json' \
--data-raw '{
"fileId": "xxxxxxx",
"datatableName": "xxx",
"datatableColumns": [
{
"columnName": "aaa",
"dataType": "string"
}
]
}'
출력 파라미터
| 파라미터 이름 | 데이터 타입 | 설명 |
|---|---|---|
| succeededRowCount | number | 성공 행 수 |
| failedRowCount | number | 실패 행 수 |
2. 기존 데이터 테이블 업데이트
인터페이스 URL
/open/datatable/updateDatatable
요청 방식
POST
Content-Type
application/json
요청 Query 파라미터
| 파라미터 이름 | 데이터 타입 | 필수 여부 | 파라미터 위치 | 설명 |
|---|---|---|---|---|
| token | String | 예 | 조회 키 | |
| projectId | number | 예 | query | 생성할 데이터 테이블이 속한 프로젝트 ID. |
| datatableName | string | 예 | query | 데이터 테이블 이름 |
| updateType | enum(INCR_UPDATE/REPL_UPDATE) | 예 | query | 업데이트 타입, INCR_UPDATE는 증분 업데이트, REPL_UPDATE는 테이블 전체 내용을 대체하는 대체 업데이트 |
| file | file | 예 | body | multipart/form-data; 업로드할 표의 csv/excel, 첫 번째 열은 기본 키 |
코드 예시
curl -X POST 'http://xxx.com/open/datatable/updateDatatable?projectId=11&token=YOUR_TOKEN&datatableName=city_dim&updateType=INCR_UPDATE'\
--form "file=@/path/to/file"
3. 데이터 테이블과 주 속성 연관
인터페이스 URL
/open/datatable/bindAssociatedProperty
요청 방식
POST
Content-Type
application/json
요청 Query 파라미터
| 파라미터 이름 | 데이터 타입 | 필수 여부 | 파라미터 위치 | 설명 |
|---|---|---|---|---|
| token | String | 예 | 조회 키 | |
| projectId | Number | 예 | query | 생성할 데이터 테이블이 속한 프로젝트 ID. |
| datatableName | String | 예 | body | 데이터 테이블 이름 |
| associatedPropertyName | String | 예 | body | 연관 속성 이름 |
| associatedPropertyTableType | String(user/event) | 예 | body | 연관 속성 타입 |
| timestampJoinFormat | Enum | 아니요 | body | 주 속성이 시간 타입(timestamp)이면 타임스탬프로 단위 계산을 한 후 차원 속성을 바인딩하는 것을 지원합니다 |
timestampJoinFormat은 다음 단위 타입을 지원합니다.
| 값 | 설명 |
|---|---|
| DATE_STR_YEAR | 속성을 "yyyy" 문자열로 포맷한 후 차원 속성을 바인딩 |
| DATE_STR_MONTH | 속성을 "yyyy-MM"으로 포맷한 후 차원 속성을 바인딩 |
| DATE_STR_DAY | 속성을 "yyyy-MM-dd"로 포맷한 후 차원 속성을 바인딩 |
| DATE_STR_HOUR | 속성을 "yyyy-MM-dd HH"로 포맷한 후 차원 속성을 바인딩 |
| DATE_STR_MINUTE | 속성을 "yyyy-MM-dd HH:mm"으로 포맷한 후 차원 속성을 바인딩 |
| DATE_STR_SECOND | 속성을 "yyyy-MM-dd HH:mm:ss"로 포맷한 후 차원 속성을 바인딩 |
| DATE_STR_MILLISECOND | 속성을 "yyyy-MM-dd HH:mm:ss.SSS"로 포맷한 후 차원 속성을 바인딩 |
코드 예시
curl --location --request POST 'http://xxx.com/xxx/open/datatable/bindAssociatedProperty?projectId=390' \
--header 'Content-Type: application/json' \
--data-raw '{
"datatableName": "xxxxxxx",
"associatedPropertyName": "aaa",
"associatedPropertyTableType": "user",
"timestampJoinFormat": "DATE_STR_YEAR"
}'
출력 파라미터
| 파라미터 이름 | 데이터 타입 | 설명 |
|---|---|---|
| dimensionProperties | Array | |
| columnName | String | 차원 속성 이름 |
| selectType | String | 차원 테이블 데이터 타입 |
4. 데이터 테이블과 주 속성의 연관 해제
인터페이스 URL
/open/datatable/unbindAssociatedProperty
요청 방식
POST
Content-Type
application/json
요청 Query 파라미터
| 파라미터 이름 | 데이터 타입 | 필수 여부 | 파라미터 위치 | 설명 |
|---|---|---|---|---|
| token | String | 예 | 조회 키 | |
| projectId | Number | 예 | query | 생성할 데이터 테이블이 속한 프로젝트 ID. |
| datatableName | String | 예 | body | 데이터 테이블 이름 |
| associatedPropertyName | String | 예 | body | 연관 속성 이름 |
| associatedPropertyTableType | String(user/event) | 예 | body | 연관 속성 타입 |
코드 예시
curl --location --request POST 'http://xxx.com/xxx/open/datatable/unbindAssociatedProperty?projectId=390' \
--header 'Content-Type: application/json' \
--data-raw '{
"datatableName": "xxxxxxx",
"associatedPropertyName": "aaa",
"associatedPropertyTableType": "user"
}'

