Skip To Content

了解大数据文件共享清单

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

注:

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

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

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

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

{
 "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 >"
}

使用 shapefile 的示例:

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

使用分隔的文件的示例:

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

说明

  • type - 用于定义源数据的必要属性。可以为 delimitedshapefileparquetorc
  • extension - 用于表示文件扩展名的必要属性。对于 shapefile,此项为 shp,分隔的文件使用数据的文件扩展名(例如,csvtsv),ORC 文件使用 orc,而 parquet 文件则使用 parquet
  • 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。具有表示日期的字段的分隔、ORC 和 parquet 数据集必须通过 esriFieldTypeString 字段表示日期。

Geometry

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 - 用于表示空间参考的字段,其中包含几何的数据集需要 wkidlatestWkid
    • latestWkid - 表示位于给定软件版本的空间参考的字段,其中 wkidlatestWkid 是包含几何的数据集的必需项。
  • fields - 包含空间表示的分隔数据集的必要属性。此项表示字段名称或几何的名称和格式。
    • name - 包含空间表示的分隔数据集的必要属性。此项表示用于表示几何的字段名称。此项可以有多个实例。
    • formats - 包含空间表示的分隔数据集的必要属性。此项表示用于表示几何的字段格式。此项可以有多个实例。
  • dropSourceFields - 此为可选属性,适用于包含表示几何的字段的数据集。指示用于指定几何的字段是否将用作分析中的字段。如果设置为 true,则用于几何的字段不会显示为分析字段(如汇总统计数据),并在运行工具时被删除。默认值为 false。无法在 shapefile 数据集上设置此属性。

时间

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
      • 仅可以针对 UTCGMT 使用时区缩写;否则,使用时区全称或小时偏移量。
  • fields - 用于表示字段名称和时间格式的必填字段。fields 的必要属性如下:
    • name - 用于表示代表时间的字段名称的必填字段。可能存在此对象的多个实例。
    • formats - 用于表示代表时间的字段格式的必填字段。单个字段可能具有多种格式(如上所示)。可能存在此对象的多个实例。要了解可以如何设置字段的格式,请参阅:大数据文件共享清单中的时间格式
    • role - 当 timeTypeinterval 时需要此项。它可以表示时间间隔的 startTimeendTime
  • dropSourceFields - 此为可选属性,适用于包含表示时间的字段的数据集。指示用于指定时间的字段是否将用作分析中的字段。如果设置为 true,则用于时间的字段不会显示为分析字段(如汇总统计数据),并在运行工具时被删除。默认值为 false。