WebHCat Reference - PutTable
WebHCat Reference - PutTable (PUT Table)
WebHCat은 HCatalog가 제공하는 RESTful 웹 서비스예요. PutTable 엔드포인트는 테이블을 생성(CREATE)하는 기능을 제공합니다.
출처: 문서
본문
새 HCatalog 테이블을 생성합니다. 자세한 내용은 Hive의 CREATE TABLE 문서를 참고하세요.
URL
http://www.myserver.com/templeton/v1/ddl/database/:db/table/:table
매개변수 (Parameters)
| 이름 | 설명 | 필수? | 기본값 |
|---|---|---|---|
| :db | 데이터베이스 이름 | 필수 | 없음 |
| :table | 새 테이블 이름 | 필수 | 없음 |
| group | 테이블 생성 시 사용할 사용자 그룹 | 선택 | 없음 |
| permissions | 테이블 생성 시 사용할 권한 문자열 | 선택 | 없음 |
| external | Hive가 기본 위치를 사용하지 않도록 위치를 지정할 수 있게 함 | 선택 | false |
| ifNotExists | true이면 테이블이 이미 존재해도 오류가 나지 않음 | 선택 | false |
| comment | 테이블 주석 | 선택 | 없음 |
| columns | 이름, 타입, 선택적 주석을 포함한 컬럼 설명 목록 | 선택 | 없음 |
| partitionedBy | 테이블을 파티셔닝하는 데 사용하는 컬럼 설명 목록 | 선택 | 없음 |
| clusteredBy | columnNames, sortedBy, numberOfBuckets를 포함한 클러스터링 방식 설명 | 선택 | 없음 |
| format | rowFormat, storedAs, storedBy를 포함한 저장 포맷 설명 | 선택 | 없음 |
| location | HDFS 경로 | 선택 | 없음 |
| tableProperties | 테이블 속성 이름과 값(키/값 쌍)의 목록 | 선택 | 없음 |
표준 매개변수(standard parameters)도 지원됩니다.
결과 (Results)
| 이름 | 설명 |
|---|---|
| table | 새 테이블 이름 |
| database | 데이터베이스 이름 |
예제 (Example)
Curl 명령:
% curl -s -X PUT -HContent-type:application/json -d '{
"comment": "Best table made today",
"columns": [
{ "name": "id", "type": "bigint" },
{ "name": "price", "type": "float", "comment": "The unit price" } ],
"partitionedBy": [
{ "name": "country", "type": "string" } ],
"format": { "storedAs": "rcfile" } }' \
'http://localhost:50111/templeton/v1/ddl/database/default/table/test_table?user.name=ctdean'
% curl -s -X PUT -HContent-type:application/json -d '{
"comment": "Best table made today",
"columns": [
{ "name": "id", "type": "bigint"},
{ "name": "price", "type": "float", "comment": "The unit price" } ],
"partitionedBy": [
{ "name": "country", "type": "string" } ],
"clusteredBy": {
"columnNames": ["id"],
"sortedBy": [
{ "columnName": "id", "order": "ASC" } ],
"numberOfBuckets": 10 },
"format": {
"storedAs": "rcfile",
"rowFormat": {
"fieldsTerminatedBy": "\u0001",
"serde": {
"name": "org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe",
"properties": {
"key": "value" } } } }
} ' \
'http://localhost:50111/templeton/v1/ddl/database/default/table/test_table_c?user.name=ctdean'
결과(응답) 예:
{
"table": "test_table",
"database": "default"
}
{
"statement": "use default; create table test_table_c(id bigint, price float comment ...",
"error": "unable to create table: test_table_c",
"exec": {
"stdout": "",
"stderr": "WARNING: org.apache.hadoop.metrics.jvm.EventCounter is deprecated...
Hive history file=/tmp/ctdean/hive_job_log_ctdean_201204051335_2016086186.txt
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in ...
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
OK
Time taken: 0.448 seconds
FAILED: Error in semantic analysis: Operation not supported. HCatalog doesn't allow Clustered By in create table.
",
"exitcode": 10
}
}
이전: GET ddl/database/:db/table/:table 다음: POST ddl/database/:db/table/:table
더 알아보기 (Learn more)
- WebHCat의 테이블 관련 REST 엔드포인트(조회 GET, 생성 PUT, 삭제 DELETE 등)를 함께 공부하면 HCatalog HTTP API 전반을 익힐 수 있어요.