Skip To Content

Manifest udostępniania plików dużych zbiorów danych

Notatka:

W przypadku oprogramowania ArcGIS Enterprise 10.9.1 lub nowszej wersji zalecane jest, aby dodawanie lub edycję udostępnionych plików dużych zbiorów danych przeprowadzać z poziomu strony zasobów portalu zamiast w aplikacji ArcGIS Server Manager. Więcej informacji o dodawaniu udostępnionych plików dużych zbiorów danych w portalu.

Udostępnione pliki dużych zbiorów danych są rejestrowane jako magazyn danych na stronie portalu. Udostępnione pliki dużych zbiorów danych wymagają manifestu do określenia schematu danych i pól reprezentujących geometrię oraz czas w zestawie danych. Manifest jest generowany automatycznie podczas rejestrowania udostępnionych plików dużych zbiorów danych, ale może zaistnieć konieczność wprowadzenia modyfikacji. Może się tak stać w przypadku zmiany danych lub jeśli podczas generowania manifestu nie można było określić wszystkich wymaganych informacji (jeśli na przykład w automatycznie wygenerowanym manifeście nie zostało zaznaczone poprawne pole dla geometrii lub czasu).

Notatka:

Edycja udostępnionych plików dużych zbiorów danych za pomocą manifestu jest opcją zaawansowaną. Aby dowiedzieć się więcej o stosowaniu zmian do pojedynczych zestawów danych w udostępnionych plikach dużych zbiorów danych, zapoznaj się z sekcją Zarządzanie udostępnionymi plikami dużych zbiorów danych w portalu. Więcej informacji na temat stosowania pliku wskazówek dla plików rozdzielanych zawiera sekcja Plik wskazówek.

Manifest składa się z zestawów danych. Liczba zestawów danych zależy od liczby folderów w ramach udostępnionych plików dużych zbiorów danych. W następującym przykładzie istnieje pięć zestawów danych:

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

W ramach każdego zestawu danych istnieje pięć obiektów najwyższego poziomu, które można zastosować. Z tych obiektów następujące obiekty są wymagane: name, format i schema.

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

Nazwa

Obiekt name jest wymagany i definiuje nazwę zestawu danych. Musi być ona niepowtarzalna w obrębie manifestu.

Format

Obiekt format jest wymagany i definiuje typ zestawu danych oraz jego format.

SkładniaPrzykład
"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 >"
}

Przykład z użyciem pliku shape:

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

Przykład z użyciem pliku rozdzielanego:

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

Opis

  • type — wymagana właściwość, która definiuje dane źródłowe. Może to być delimited, shapefile, parquet lub orc.
  • extension — wymagana właściwość wyznaczająca rozszerzenie nazwy pliku. W przypadku plików shape jest to właściwość shp, natomiast pliki rozdzielane korzystają z rozszerzenia nazwy pliku danych (na przykład csv lub tsv), pliki ORC korzystają z rozszerzenia orc, a pliki parkietowe korzystają z rozszerzenia parquet.
  • fieldDelimiter — wymagane tylko wtedy, gdy type to delimited. To pole reprezentuje element rozdzielający pola w pliku rozdzielanym.
  • recordTerminator — jest wymagane tylko wtedy, gdy type ma wartość delimited. To pole określa element kończący obiekty w pliku rozdzielanym.
  • quoteChar — jest wymagane tylko wtedy, gdy type ma wartość delimited. Ten znak wskazuje sposób określania cudzysłowu w pliku rozdzielanym.
  • hasHeaderRow — jest wymagane tylko wtedy, gdy type ma wartość delimited. Ta właściwość wskazuje, czy pierwszy wiersz w pliku rozdzielanym powinien być traktowany jako nagłówek, czy jako pierwszy obiekt.
  • encoding — jest wymagane tylko wtedy, gdy type ma wartość delimited. Ta właściwość określa typ używanego kodowania.

Schemat

Obiekt schema jest wymagany i definiuje pola zestawu danych oraz ich typy.

SkładniaPrzykład
"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"
  }
 ]
}

Opis

  • fields — wymagana właściwość, która definiuje pola w schemacie.
  • name — wymagana właściwość wyznaczająca nazwę pola. Nazwa pola musi być unikalna w zestawie danych i może zawierać tylko znaki alfanumeryczne i znaki podkreślenia.
  • type — jest to właściwość wymagana, która definiuje typ pola. Dostępne są między innymi następujące opcje:
    • esriFieldTypeInteger — dla liczb całkowitych.
    • esriFieldTypeSmallInteger — dla liczb całkowitych.
    • esriFieldTypeBigInteger — dla liczb całkowitych. Pola z dużymi liczbami całkowitymi będą przechowywane w usłudze obiektowej jako pola podwójnej długości.
    • esriFieldTypeString — dla ciągów znakowych.
    • esriFieldTypeDouble — dla liczb zmiennoprzecinkowych lub podwójnej precyzji.
    • esriFieldTypeDate — dla plików shape z polami danych. W zestawach danych rozdzielanych, ORC i parkietowych z polami reprezentującymi daty muszą być one reprezentowane przez pole esriFieldTypeString.
    • esriFieldTypeSingle — dla wartości pojedynczych.
    • esriFieldTypeBlob — dla wartości binarnych. Pola Blob będą przechowywane w usłudze obiektowej jako pola znakowe.
Notatka:

Gdy udostępnione pliki dużych zbiorów danych są analizowane za pomocą GeoAnalytics Tools i zapisywane w postaci usługi obiektowej, typy mogą się zmieniać. Na przykład pole esriFieldTypeBigInteger w udostępnionym pliku dużych zbiorów danych stanie się polem esriFieldTypeDouble w usłudze obiektowej.

Geometria

Obiekt geometry jest opcjonalny. Jest on wymagany, jeśli zestaw danych ma reprezentację przestrzenną, taką jak punkt, polilinia lub poligon.

SkładniaPrzykład
"geometry" : {
 "geometryType" : "< esriGeometryType >",
 "spatialReference" : {
  "wkid": <wkidNum>,
  "latestwkid" : <latestWkidNum>
  },
 "fields": [
 {
  "name": "<fieldName1>",
  "formats": ["<fieldFormat1>"]
 },
 {
  "name": "<fieldName2>",
  "formats": ["<fieldFormat2>"]
 }
 ]
}

Przykład z użyciem pliku rozdzielanego z wartościami x i y:

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

Przykład z użyciem pliku rozdzielanego z wartościami x, y i z:

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

Przykład z użyciem pliku .tsv:

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

Opis

Notatka:

Ponieważ obiekt geometry jest opcjonalny, następujące właściwości są podane jako wymagane lub opcjonalne przy założeniu, że używana jest geometria:

  • geometryType — właściwość wymagana. Dostępne są między innymi następujące opcje:
    • esriGeometryPoint
    • esriGeometryPolyline
    • esriGeometryPolygon
  • spatialReference — wymagana właściwość oznaczająca odniesienie przestrzenne zestawu danych.
    • wkid — pole oznaczające odniesienie przestrzenne, gdzie wymagana jest właściwość wkid lub latestWkid dla zestawu danych z geometrią.
    • latestWkid — pole oznaczające odniesienie przestrzenne w danej wersji oprogramowania, gdzie wymagana jest właściwość wkid lub latestWkid dla zestawu danych z geometrią.
  • fields — wymagana właściwość dla rozdzielanych zestawów danych z reprezentacją przestrzenną. Oznacza nazwę pola lub nazwy i formaty geometrii.
    • name — wymagana właściwość dla rozdzielanych zestawów danych z reprezentacją przestrzenną. Oznacza nazwę pola używanego do reprezentowania geometrii. Może występować wiele instancji tego elementu.
    • formats — wymagana właściwość dla rozdzielanych zestawów danych z reprezentacją przestrzenną. Oznacza format pola używanego do reprezentowania geometrii. Może występować wiele instancji tego elementu.
  • dropSourceFields — opcjonalna właściwość zestawów danych z polami reprezentującymi geometrię. Decyduje ona o tym, czy pola, które zostały użyte do wyznaczenia geometrii, będą używane jako pola w analizie. Jeśli zostanie skonfigurowana wartość prawda (true), pola użyte do wyznaczenia geometrii nie będą widoczne jako pola analizy (takie jak statystyka sumaryczna) i zostaną usunięte podczas uruchamiania narzędzi. Domyślna wartość to fałsz (false). Tej właściwości nie można skonfigurować dla zestawów danych plików shape.

Czas

Obiekt time jest opcjonalny. Jest on wymagany, jeśli zestaw danych ma reprezentację czasową.

SkładniaPrzykład
"time" : {
 "timeType" : "< instant | interval >",
 "timeReference" : {
  "timeZone" : "<timeZone >"
  },
  "fields": [
  {
   "name": "<fieldName1>",
   "formats": ["<fieldFormat1>"]
   "role": "< start | end >"
  }
 ]
}

Przykład z użyciem momentu z wieloma formatami w polach czasu:

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

Przykład z użyciem odstępu z wieloma polami używanymi dla 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"
  }
 ]
}

Opis

Notatka:

Ponieważ obiekt time jest opcjonalny, następujące właściwości są podane jako wymagane lub opcjonalne przy założeniu, że użyto time:

  • timeType — typ czasu jest wymagany, jeśli czas jest zawarty w zestawie danych. Dostępne są między innymi następujące opcje:
    • instant — dla jednego momentu czasu
    • interval — dla odstępu czasu reprezentowanego przez czas rozpoczęcia i zakończenia
  • timeReference — pole wymagane, jeśli zestaw danych zawiera dane czasowe, oznaczające strefę czasową (timeZone).
    • timeZone — pole wymagane należące do pola timeReference, które oznacza format strefy czasowej danych. Strefy czasowe są oparte na standardzie Joda-Time. Aby uzyskać informacje o formatach Joda-Time zapoznaj się z dokumentem Joda-Time Available Time Zones (Joda-Time - dostępne strefy czasowe). Można użyć następującego formatu timeZone:
      • Użycie pełnej nazwy strefy czasowej: Pacific Standard Time.
      • Użycie przesunięcia strefy czasowej wyrażonego w godzinach: -0100 lub -01:00.
      • Można używać tylko następujących skrótów nazw stref czasowych: UTC lub GMT. W pozostałych przypadkach należy używać pełnej nazwy lub przesunięcia godzinowego.
  • fields — wymagane pole służące do wskazywania nazw pól i formatów czasu. Wymagane właściwości dla fields są następujące:
    • name — wymagane pole wskazujące nazwę pola używanego do reprezentowania czasu. Może występować wiele instancji tego obiektu.
    • formats — wymagane pole wskazujące format pola używanego do reprezentowania czasu. Dla jednego pola może występować wiele formatów (jak pokazano powyżej). Może występować wiele instancji tego obiektu. Więcej informacji o możliwościach formatowania pól zawiera temat Formaty czasu.
    • role — pole wymagane, gdy timeType to interval. Może reprezentować wartości startTime lub endTime odstępu czasu.
  • dropSourceFields — opcjonalna właściwość zestawów danych z polami reprezentującymi czas. Decyduje ona o tym, czy pola, które zostały użyte do wyznaczenia czasu, będą używane jako pola w analizie. Jeśli zostanie skonfigurowana wartość prawda (true), pola użyte do wyznaczenia czasu nie będą widoczne jako pola analizy (takie jak statystyka sumaryczna) i zostaną usunięte podczas uruchamiania narzędzi. Domyślna wartość to fałsz (false).