Skip To Content

Informazioni sul file Big Data Manifest di condivisione

Le condivisioni file Big Data vengono registrate come Data Store tramite ArcGIS Server Manager. Richiedono un Manifets per delineare lo schema dei dati e i campi che rappresentano geometria e tempo in un dataset. Il Manifest viene generato automaticamente quando si registra una condivisione file Big Data, ma è necessario apportare delle modifiche se i dati variano o se la generazione del Manifest non ha potuto determinare tutte le informazioni necessarie, (ad esempio se nel Manifest generato automaticamente non era stato selezionato il campo esatto per la geometria o il tempo).

Nota:

La modifica della condivisione file Big Data è un'opzione avanzata. Per ulteriori informazioni sull'applicazione di modifiche ai singoli dataset nel Manifest, consultare Modificare i Manifest delle condivisioni file Big Data in Manager. Per ulteriori informazioni sull'applicazione di un file dei suggerimenti per i file delimitati, consultare Informazioni sul file dei suggerimenti.

Il Manifest è costituito da dataset. Il numero di dataset dipende dal numero di cartelle contenute dalla condivisione file Big Data. Nell'esempio seguente, ci sono cinque dataset:

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

All'interno di ogni dataset, ci sono cinque oggetti di livello superiore applicabili. Di questi oggetti, name, format e schema sono obbligatori.

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

Nome

L'oggetto name è obbligatorio e definisce il nome del dataset. Deve essere univoco nel Manifest.

Formato

L’oggetto format è obbligatorio e definisce il tipo di dataset e il relativo formato.

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

Esempio di utilizzo di uno shapefile:

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

Esempio di utilizzo di un file delimitato:

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

Descrizione

  • type: una proprietà obbligatoria che definisce i dati di origine. Può essere delimited, shapefile, parquet o orc.
  • extension: una proprietà obbligatoria che indica l'estensione del file. Per shapefile, è shp, mentre i file delimitati utilizzano l’estensione del file dei dati (ad esempio, csv o tsv), i file ORC utilizzano orc e i file parquet utilizzano parquet.
  • fieldDelimiter: obbligatoria quando type è delimited. Questo campo rappresenta ciò che separa i campi nel file delimitato.
  • recordTerminator: obbligatoria solo quando type è delimited. Questo campo specifica ciò che termina le feature nel file delimitato.
  • quoteChar: obbligatoria solo quando type è delimited. Il carattere definisce come le virgolette vengono specificate nel file delimitato.
  • hasHeaderRow: obbligatoria solo quando type è delimited. Questa proprietà specifica se la prima riga in un file delimitato deve essere considerata come intestazione o come prima feature.
  • encoding: obbligatoria solo quando type è delimited. Questa proprietà specifica il tipo di codifica utilizzata.

Schema

L’oggetto schema è obbligatorio; definisce i campi di dataset e il tipo di campo.

SintassiEsempio
"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"
  }
 ]
}

Descrizione

  • fields: una proprietà obbligatoria che definisce i campi nello schema.
  • name: una proprietà obbligatoria che indica il nome del campo. Il nome del campo deve essere univoco nel dataset e può contenere solo caratteri alfanumerici e di sottolineatura.
  • type: una proprietà obbligatoria che definisce il tipo di campo. Le opzioni includono le seguenti:
    • esriFieldTypeString: per stringhe
    • esriFieldTypeDouble: per valori doppi o mobili
    • esriFieldTypeBigInteger: per valori interi
    • esriFieldTypeDate: per shapefile con campi data. I dataset delimitati, ORC Dataset e Parquet Dataset, con campi che rappresentano la data devono avere le date rappresentate da un campo esriFieldTypeString.

Geometria

L'oggetto geometry è facoltativo. È obbligatorio se un dataset ha una rappresentazione spaziale come un punto, una polilinea o un poligono.

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

Esempio utilizzando un file delimitato con valori x e y:

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

Esempio utilizzando un file delimitato con valori x, y e z:

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

Esempio di utilizzo di un file .tsv:

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

Descrizione

Nota:

Dal momento che l’oggetto geometry è facoltativo, le seguenti proprietà sono obbligatorie o facoltative presupponendo che è utilizzata una geometria.

  • geometryType: è obbligatoria. Le opzioni includono le seguenti:
    • esriGeometryPoint
    • esriGeometryPolyline
    • esriGeometryPolygon
  • spatialReference: una proprietà obbligatoria che indica il riferimento spaziale del dataset.
    • wkid: un campo che indica il riferimento spaziale, in cui wkid o latestWkid è obbligatoria per un dataset con una geometria.
    • latestWkid: un campo che indica il riferimento spaziale in una determinata versione di software, in cui wkid o latestWkid è obbligatoria per un dataset con una geometria.
  • fields: una proprietà obbligatoria per dataset delimitati con una rappresentazione spaziale. Indica il nome del campo o i nomi e i formati della geometria.
    • name: una proprietà obbligatoria per dataset delimitati con una rappresentazione spaziale. Indica il nome del campo utilizzato per rappresentare la geometria. Potrebbero esserci istanze multiple.
    • formats: una proprietà obbligatoria per dataset delimitati con una rappresentazione spaziale. Indica il formato del campo utilizzato per rappresentare la geometria. Potrebbero esserci istanze multiple.

Tempo

L'oggetto time è facoltativo. Obbligatorio se un dataset ha una rappresentazione temporale.

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

Esempio di utilizzo di un istante con più formati nei campi del tempo:

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

Esempio di utilizzo di un intervallo con più campi utilizzati per 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"
  }
 ]
}

Descrizione

Nota:

Dal momento che l’oggetto time è facoltativo, le seguenti proprietà sono obbligatorie o facoltative presupponendo l’uso di time.

  • timeType: il tipo di tempo è obbligatorio se nel dataset è incluso il tempo. Le opzioni includono le seguenti:
    • instant: per un singolo momento di tempo
    • interval: per un intervallo di tempo rappresentato da un tempo di inizio e uno di fine
  • timeReference: un campo obbligatorio se il dataset è abilitato per variazioni temporali, indicando il fuso orario (timeZone).
    • timeZone: un campo obbligatorio di timeReference che indica il formato del fuso orario dei dati. timeZone può essere formattato come mostrato di seguito:
      • Utilizzo del nome completo del fuso orario: Pacific Standard Time
      • Utilizzo dell'abbreviazione del fuso orario: PST
  • fields: un campo obbligatorio che indica i nomi dei campi e i formati del tempo. Le proprietà obbligatoria di fields sono le seguenti:
    • name: un campo obbligatorio che indica il nome del campo utilizzato per rappresentare il tempo. Potrebbero esserci istanze multiple di questo oggetto.
    • formats: un campo obbligatorio che indica il formato del campo utilizzato per rappresentare il tempo. Potrebbero esserci formati multipli per un singolo campo (come indicato sopra). Potrebbero esserci istanze multiple di questo oggetto. Per ulteriori informazioni sulla formattazione dei campi, consultare Formati del tempo nel Manifest di una condivisione file Big Data.
    • role: un campo obbligatorio quando timeType è interval. Può rappresentare sia la proprietà startTime che endTime di un intervallo di tempo.

In questo argomento
  1. Nome
  2. Formato
  3. Schema
  4. Geometria
  5. Tempo