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 전반을 익힐 수 있어요.