Skip To Content

了解大数据文件共享清单

大数据文件共享通过 ArcGIS Server Manager 注册为数据存储,需要一个清单来概述数据的模式以及概述表示数据集中的几何和时间的字段。注册大数据文件共享时,将自动生成该清单,但如果数据发生更改或清单生成无法确定所需的所有信息(例如,自动生成的清单未选择正确的几何或时间字段),则可能需要进行修改。

注:

编辑大数据文件共享是一个高级选项。要了解有关将更改内容应用于清单中各个数据集的详细信息,请参阅在 Manager 中编辑大数据文件共享清单。要了解如何将提示文件应用于分隔的文件,请参阅了解提示文件

清单由数据集组成 数据集的数量取决于大数据文件共享中包含的文件夹数。在下面的示例中,有 5 个数据集:

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

在每个数据集中,有 5 个可能适用的顶级对象。在这些对象中,nameformatschema 是必需项。

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

Name

需要 name 对象来定义数据集的名称。该名称在清单中必须唯一。

Format

需要 format 对象来定义输入数据的类型及其格式。

语法示例
"format" : {
 "type" :  "< delimited | shapefile>",
 "extension" : "< csv | tsv | shp >",
 "fieldDelimiter" : "< delimiter >",
 "recordTerminator: "< terminator >",
 "quoteChar":  "< character for quotes>",
 "hasHeaderRow" :  < true | false >, 
 "encoding" : "< encoding format >"
}

使用 shapefile 的示例:

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

使用分隔的文件的示例:

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

说明

  • type - 用于定义源数据的必要属性。可以为 delimitedshapefile
  • extension - 用于表示文件扩展名的必要属性。对于 shapefile,此项为 shp,而分隔的文件使用数据的文件扩展名(例如,csvtsv)。
  • fieldDelimiter - 当 typedelimited 时需要此项。此字段表示用于分隔分隔文件中的各个字段的内容。
  • recordTerminator - 仅当 typedelimited 时需要此项。此字段表示用于终止分隔文件中的要素的内容。
  • quoteChar - 仅当 typedelimited 时需要此项。该字符表示如何在分隔文件中指定引号。
  • hasHeaderRow - 仅当 typedelimited 时需要此项。此项指定应该将分隔文件中的第一行视为标题还是第一个要素。
  • encoding - 仅当 typedelimited 时需要此项。此项指定所用的编码类型。

方案

需要 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 - 用于双精度或浮点型
    • esriFieldTypeBigInteger - 用于整数
    • esriFieldTypeDate - 用于具有日期字段的 shapefile。具有表示日期的字段的分隔数据集必须通过 esriFieldTypeString 字段表示日期。

Geometry

geometry 对象为可选项。如果数据集具有空间表示(如点、线、或面),则需要该项。

语法示例
"geometry" : {
 "geometryType" : "< esriGeometryType >",
 "spatialReference" : {
  "wkid": <wkidNum>,
  "latestwkid" : <latestWkidNum>
  },
 "fields": [
 {
  "name": "<fieldName1>",
  "formats": ["<fieldFormat1>"]
 },
 {
  "name": "<fieldName2>",
  "formats": ["<fieldFormat2>"]
 }
 ]
}

使用 .csv 文件的示例:

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

使用 .tsv 文件的示例:

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

说明

注:

由于 geometry 对象是可选项,因此将以下属性列为必需项或可选项(假定使用几何):

  • geometryType - 此为必需项。选项包括以下内容:
    • esriGeometryPoint
    • esriGeometryPolyline
    • esriGeometryPolygon
  • spatialReference - 用于表示数据集的空间参考的必要属性。
    • wkid - 用于表示空间参考的字段,其中包含几何的数据集需要 wkidlatestWkid
    • latestWkid - 表示位于给定软件版本的空间参考的字段,其中 wkidlatestWkid 是包含几何的数据集的必需项。
  • fields - 包含空间表示的分隔数据集的必要属性。此项表示字段名称或几何的名称和格式。
    • name - 包含空间表示的分隔数据集的必要属性。此项表示用于表示几何的字段名称。此项可以有多个实例。
    • formats - 包含空间表示的分隔数据集的必要属性。此项表示用于表示几何的字段格式。此项可以有多个实例。

时间

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"}, "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 的必填字段。timeZone 可将格式设置如下:
      • 使用时区的全称:Pacific Standard Time
      • 使用时区的缩写:PST
  • fields - 用于表示字段名称和时间格式的必填字段。fields 的必要属性如下:
    • name - 用于表示代表时间的字段名称的必填字段。可能存在此对象的多个实例。
    • formats - 用于表示代表时间的字段格式的必填字段。单个字段可能具有多种格式(如上所示)。可能存在此对象的多个实例。要了解可以如何设置字段的格式,请参阅:大数据文件共享清单中的时间格式
    • role - 当 timeTypeinterval 时需要此项。它可以表示时间间隔的 startTimeendTime