Skip To Content

빅데이터 파일 공유 매니페스트 이해

빅데이터 파일 공유는 ArcGIS Server Manager를 통해 데이터 저장소로 등록됩니다. 빅데이터 파일 공유에는 데이터셋의 지오메트리와 시간을 나타내는 필드를 비롯하여 데이터의 스키마가 요약된 매니페스트가 필요합니다. 매니페스트는 빅데이터 파일 공유를 등록할 때 자동으로 생성되지만 데이터가 변경되었거나 매니페스트 생성 시 필요한 모든 정보를 확인할 수 없는 경우(예시: 자동 생성된 매니페스트가 지오메트리 또는 시간에 대해 올바른 필드를 선택하지 않은 경우)에는 매니페스트를 수정해야 할 수 있습니다.

비고:

빅데이터 파일 공유 편집은 고급 옵션입니다. 매니페스트의 개별 데이터셋에 변경 사항을 적용하는 방법에 대한 자세한 내용은 Manager에서 빅데이터 파일 공유 매니페스트 편집을 참고하세요. 구분된 파일에 대해 힌트 파일을 적용하는 방법에 대한 자세한 내용은 힌트 파일 이해를 참고하세요.

매니페스트는 데이터셋으로 구성됩니다. 데이터셋의 수는 빅데이터 파일 공유에 포함된 폴더의 수에 따라 달라집니다. 다음 예시에는 데이터셋 5개가 있습니다.

"datasets":[
  {.. dataset1 ..},
  {.. dataset2 ..},
  {.. dataset3 ..},
  {.. dataset4 ..},
  {.. dataset5 ..},
]

각 데이터셋에는 적용할 수 있는 최상위 개체 5개가 있습니다. 이러한 개체 중 name, format, schema이(가) 필수 항목입니다.

{
 "name": "dataset1", "format": {}, "schema": {}, "geometry": {}, "time": {}
}

이름

name 개체는 데이터셋 이름을 정의하며 필수 항목입니다. 이 개체는 매니페스트 내에서 고유해야 합니다.

형식

format 객체는 데이터셋의 유형과 형식을 정의하는 필수 항목입니다.

구문사례
"format" : {
 "type" :  "< delimited | shapefile | orc | parquet >",
 "extension" : "< csv | tsv | shp | orc | parquet >",
 "fieldDelimiter" : "< delimiter >",
 "recordTerminator: "< terminator >",
 "quoteChar":  "< character for quotes>",
 "hasHeaderRow" :  < true | false >, 
 "encoding" : "< encoding format >"
}

쉐이프파일을 사용하는 예시:

"format" : {
 "type": "shapefile", "extension": "shp"
}

구분된 파일을 사용하는 예시:

"format" : {
 "type": "delimited", "extension": "csv", "fieldDelimiter": ",", "recordTerminator": "\n",  "quoteChar" "\"",
 "hasHeaderRow": true, "encoding" : "UTF-8"
}

설명

  • type - 원본 데이터를 정의하는 필수 등록정보입니다. delimited, shapefile, parquet 또는 orc일 수 있습니다.
  • extension - 파일 확장자를 나타내는 필수 등록정보입니다. 쉐이프파일에는 shp, 구분된 파일에는 데이터의 파일 확장자(예시: csv 또는 tsv), ORC 파일에는 orc, parquet 파일에는 parquet가 사용됩니다.
  • fieldDelimiter - type이(가) delimited(이)면 필수 항목입니다. 이 필드는 구분된 파일에서 필드를 구분하는 항목을 나타냅니다.
  • recordTerminator - type이(가) delimited일 때만 필수 항목입니다. 이 필드는 구분된 파일에서 피처를 종료하는 항목을 지정합니다.
  • quoteChar - type이(가) delimited일 때만 필수 항목입니다. 문자는 구분된 파일에서 따옴표를 지정하는 방법을 나타냅니다.
  • hasHeaderRow - type이(가) delimited일 때만 필수 항목입니다. 이 등록정보는 구분된 파일의 첫 행을 헤더로 처리할지 아니면 첫 번째 피처로 처리할지를 지정합니다.
  • encoding - type이(가) delimited일 때만 필수 항목입니다. 이 등록정보는 사용되는 인코딩의 유형을 지정합니다.

스키마

schema 객체는 데이터셋 필드와 필드 유형을 정의하는 필수 항목입니다.

구문사례
"schema" : {
 "fields" : {
  "name": "< fieldName >",
  "type" : "< esriFieldTypeString | 
     esriFieldTypeBigInteger | 
     esriFieldTypeDouble >"
 }
}
"schema" : {
 "fields":[  {
   "name": "trackid",   "type": "esriFieldTypeString"
  },  {
   "name": "x",   "type": "esriFieldTypeDouble"
  },  {
   "name": "y",   "type": "esriFieldTypeDouble"
  },  {
   "name": "time",   "type": "esriFieldTypeBigInteger"
  },  {
   "name": "value",   "type": "esriFieldTypeBigInteger"
  }
 ]
}

설명

  • fields - 스키마의 필드를 정의하는 필수 등록정보입니다.
  • name - 필드 이름을 나타내는 필수 등록정보입니다. 필드 이름은 데이터셋에서 고유해야 하며 영숫자 문자와 밑줄만 포함할 수 있습니다.
  • type - 필드의 유형을 정의하는 필수 등록정보입니다. 다음과 같은 방법을 사용할 수 있습니다.
    • esriFieldTypeString - 문자열의 경우
    • esriFieldTypeDouble - 더블(double) 또는 플로팅의 경우
    • esriFieldTypeBigInteger - 정수의 경우
    • esriFieldTypeDate - 데이터 필드가 있는 쉐이프파일의 경우 날짜를 나타내는 필드가 있는 구분된, ORC 및 parquet 데이터셋에는 esriFieldTypeString 필드로 표시한 날짜가 있어야 합니다.

지오메트리

geometry 객체는 선택 사항입니다. 데이터셋에 포인트, 폴리라인, 폴리곤 등의 공간 표현이 있는 경우 이 객체는 필수 항목입니다.

구문사례
"geometry" : {
 "geometryType" : "< esriGeometryType >",
 "spatialReference" : {
  "wkid": <wkidNum>,
  "latestwkid" : <latestWkidNum>
  },
 "fields": [
 {
  "name": "<fieldName1>",
  "formats": ["<fieldFormat1>"]
 },
 {
  "name": "<fieldName2>",
  "formats": ["<fieldFormat2>"]
 }
 ]
}

x값과 y값을 가진 구분된 파일이 사용된 예시:

"geometry" : {
 "geometryType" : "esriGeometryPoint", "spatialReference" : {
  "wkid": 3857 }, "fields": [ {
  "name": "XValue",  "formats": ["x"] }, {
  "name": "YValue",  "formats": ["y"] }
 ]
}

x값, y값, z값을 가진 구분된 파일이 사용된 예시:

"geometry" : {
 "geometryType" : "esriGeometryPoint", "spatialReference" : {
  "wkid": 4326 }, "fields": [ {
  "name": "Longitude",  "formats": ["x"] }, {
  "name": "Latitude",  "formats": ["y"] }, {
  "name": "Height",  "formats": ["z"] }
 ]
}

.tsv 파일이 사용된 예시:

"geometry" : {
 "geometryType" : "esriGeometryPolygon", "dropSourceFields": true, "spatialReference" : {
  "wkid": 3857 }, "fields": [ {
  "name": "Shapelocation",  "formats": ["WKT"] }
 ]
}

설명

비고:

geometry 객체는 선택 사항이므로 아래에 나와 있는 등록정보는 지오메트리를 사용한다는 가정하에 필수 또는 선택 사항입니다.

  • geometryType - 필수 항목입니다. 다음과 같은 방법을 사용할 수 있습니다.
    • esriGeometryPoint
    • esriGeometryPolyline
    • esriGeometryPolygon
  • spatialReference - 데이터셋의 공간 참조를 나타내는 필수 등록정보입니다.
    • wkid - 공간 참조를 나타내는 필드입니다. 지오메트리가 포함된 데이터셋의 경우 wkid 또는 latestWkid은(는) 필수 항목입니다.
    • latestWkid - 지정된 소프트웨어 릴리스의 공간 참조를 나타내는 필드입니다. 지오메트리가 포함된 데이터셋의 경우 wkid 또는 latestWkid은(는) 필수 항목입니다.
  • fields - 공간 표현이 있는 구분된 데이터셋의 필수 등록정보입니다. 하나 이상의 필드 이름과 지오메트리의 형식을 나타냅니다.
    • name - 공간 표현이 있는 구분된 데이터셋의 필수 등록정보입니다. 지오메트리를 표현하는 데 사용되는 필드의 이름을 나타냅니다. 이 항목의 여러 인스턴스가 있을 수 있습니다.
    • formats - 공간 표현이 있는 구분된 데이터셋의 필수 등록정보입니다. 지오메트리를 표현하는 데 사용되는 필드의 형식을 나타냅니다. 이 항목의 여러 인스턴스가 있을 수 있습니다.
  • dropSourceFields - 지오메트리를 나타내는 필드가 있는 데이터셋의 선택적 등록정보입니다. 이 등록정보는 지오메트리를 지정하는 데 사용된 필드가 분석에서 필드로 사용되는지 여부를 나타냅니다. True로 설정되어 있으면 지오메트리에 사용되는 필드가 요약 통계와 같은 분석 필드로 보이지 않으며 도구를 실행할 때 삭제됩니다. 기본값은 false입니다. 이 등록정보는 쉐이프파일 데이터셋에서 설정할 수 없습니다.

시간

time 객체는 선택 사항입니다. 데이터셋에 시간 표현이 있는 경우에는 필수 항목입니다.

구문사례
"time" : {
 "timeType" : "< instant | interval >",
 "timeReference" : {
  "timeZone" : "<timeZone >"
  },
  "fields": [
  {
   "name": "<fieldName1>",
   "formats": ["<fieldFormat1>"]
   "role": "< start | end >"
  }
 ]
}

시간 필드에서 여러 형식의 인스턴트를 사용하는 예시:

"time": {
 "timeType": "instant", "timeReference": {"timeZone": "UTC"}, "fields": [ {
  "name": "iso_time",  "formats": [   "yyyy-MM-dd HH:mm:ss",   "MM/dd/yyyy HH:mm"
   ]  }
 ]
}

간격을 사용하는 예시(startTime에 여러 필드가 사용됨):

"time": {
 "timeType": "interval", "timeReference": {"timeZone": "-0900"}, "dropSourceFields" : true, "fields": [ {
  "name": "time_start",  "formats": ["HH:mm:ss"],  "role" : "start"
  }, {
  "name": "date_start",  "formats": ["yyyy-MM-dd"],  "role" : "start"
  }, {
  "name": "datetime_ending",  "formats": ["yyyy-MM-dd HH:mm:ss"],  "role" : "end"
  }
 ]
}

설명

비고:

time 객체는 선택 사항이므로 아래에 나와 있는 등록정보는 time을 사용한다는 가정하에 필수 또는 선택 사항입니다.

  • timeType - 데이터셋에 시간이 포함되어 있는 경우 시간 유형은 필수 항목입니다. 다음과 같은 방법을 사용할 수 있습니다.
    • instant - 시간의 단일 시점
    • interval - 시작 시간과 중지 시간으로 표현되는 시간 간격
  • timeReference - 데이터셋에서 시간이 활성화된 경우 필수 필드이며, 표준 시간대(timeZone)를 나타냅니다.
    • timeZone - 데이터의 표준 시간대 형식을 나타내는 timeReference의 필수 필드입니다. 표준 시간대는 Joda-Time을 기반으로 합니다. Joda-Time 형식에 대한 자세한 내용은 Joda-Time 사용 가능 표준 시간대를 참고하세요. timeZone 다음과 같이 형식을 지정할 수 있습니다.
      • 표준 시간대의 전체 이름 사용: Pacific Standard Time
      • 시간으로 표현된 표준 시간대 오프셋 사용: -0100 또는 -01:00
      • UTC 또는 GMT에 대한 표준 시간대 약어만 사용할 수 있습니다. 그 외의 경우에는 전체 이름 또는 시간 오프셋을 사용하세요.
  • fields - 시간의 형식과 필드 이름을 나타내는 필수 필드입니다. fields의 필수 등록정보는 다음과 같습니다.
    • name - 시간을 표현하는 데 사용되는 필드의 이름을 나타내는 필수 필드입니다. 이 개체의 여러 인스턴스가 있을 수 있습니다.
    • formats - 시간을 표현하는 데 사용되는 필드의 형식을 나타내는 필수 필드입니다. 위에 나와 있는 것처럼 단일 필드에 여러 형식이 있을 수 있습니다. 이 개체의 여러 인스턴스가 있을 수 있습니다. 필드의 형식을 지정하는 방법은 빅데이터 파일 공유 매니페스트의 시간 형식을 참고하세요.
    • role - timeType이(가) interval일 때 필수 필드입니다. 시간 간격의 startTime 또는 endTime을(를) 나타낼 수 있습니다.
  • dropSourceFields - 시간을 나타내는 필드가 있는 데이터셋의 선택적 등록정보입니다. 이 등록정보는 시간을 지정하는 데 사용된 필드가 분석에서 필드로 사용되는지 여부를 나타냅니다. True로 설정되어 있으면 시간에 사용되는 필드가 요약 통계와 같은 분석 필드로 보이지 않으며 도구를 실행할 때 삭제됩니다. 기본값은 false입니다.