Skip To Content

大数据文件共享清单

注:

ArcGIS Enterprise 10.9.1 或更高版本中,建议您通过门户内容页面而非 ArcGIS Server 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 - 用于定义字段类型的必要属性。 具体包括如下选项:
    • esriFieldTypeInteger - 用于整数。
    • esriFieldTypeSmallInteger - 用于整数。
    • esriFieldTypeBigInteger - 用于整数。 大整数字段将作为双精度字段存储在要素服务中。
    • esriFieldTypeString - 用于字符串。
    • esriFieldTypeDouble - 用于双精度或浮点型。
    • esriFieldTypeDate - 用于具有日期字段的 shapefile。 具有表示日期的字段的分隔、ORC 和 parquet 数据集必须通过 esriFieldTypeString 字段表示日期。
    • esriFieldTypeSingle - 用于单精度型。
    • esriFieldTypeBlob - 用于二进制值。 Blob 字段将作为字符串字段存储在要素服务中。
注:

当通过 GeoAnalytics Tools 分析大数据文件共享并将其保存为要素服务时,类型可能会发生变化。 例如,大数据文件共享中的 esriFieldTypeBigInteger 将在要素服务中变为 esriFieldTypeDouble 字段。

几何

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。