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 – для чисел с плавающей запятой или двойной точности
    • 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 времени. Подробнее о форматах времени Joda см. Часовые пояса доступные в формате времени Joda. timeZone может иметь следующий формат:
      • Использование полного имени часового пояса: Pacific Standard Time.
      • Использование смещения часового пояса, выраженного в часах: -0100 или -01:00.
      • Вы можете использовать сокращения часовых поясов только для UTC или GMT; в противном случае используйте полное имя или смещение часов.
  • fields – обязательное поле, описывающее имена и форматы полей со временем. Необходимые параметры fields указаны ниже:
    • name – обязательное поле, которое описывает имя поля, в котором хранится время. Может быть несколько экземпляров этого объекта.
    • formats – обязательное поле, которое описывает формат поля, в котором хранится время. Для одного поля может быть несколько форматов (как это показано выше). Может быть несколько экземпляров этого объекта. Информацию о форматах полей см. в разделе Форматы времени в манифесте файлового хранилища больших данных.
    • role – обязательное поле, когда timeType является interval. Может представлять как startTime, так и endTime интервала времени.
  • dropSourceFields – необязательное свойство для наборов данных с полями, представляющими время. Оно задает, будут ли поля, используемые для задания времени, участвовать в качестве полей для анализа. Если задано значение true, поля, используемые для времени, не будут отображаться как поля анализа (например, итоговая статистика) и будут пропускаться при запуске инструментов. Значением по умолчанию является false.