Skip To Content

Présentation d'un manifeste de partage de fichiers Big Data

Les partages de fichiers Big Data sont inscrits en tant que stockage des données via ArcGIS Server Manager. Ils requièrent un manifeste indiquant la structure des données, ainsi que les champs qui représentent la géométrie et le temps dans un jeu de données. Le manifeste est automatiquement généré lorsque vous inscrivez un partage de fichiers Big Data, mais vous pouvez être amené à apporter des modifications si vos données viennent à changer ou si la génération du manifeste n'a pas permis de déterminer toutes les informations requises (par exemple, le manifeste généré automatiquement n'a pas sélectionné le champ approprié pour la géométrie ou le temps).

Remarque :

Une option avancée vous permet de mettre à jour votre partage de fichiers Big Data. Pour savoir comment appliquer des modifications à des jeux de données individuels dans votre manifeste, reportez-vous à la rubrique Mettre à jour les manifestes de partage de fichiers Big Data dans Manager. Pour savoir comment appliquer un fichier d'astuces à des fichiers délimités, reportez-vous à la rubrique Présentation du fichier d'astuces.

Le manifeste se compose de jeux de données. Le nombre de jeux de données dépend du nombre de dossiers que renferme votre partage de fichiers Big Data. L'exemple suivant compte cinq jeux de données :

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

Au sein de chaque jeu de données, cinq objets de niveau supérieur peuvent être applicables. Sur ces objets, name, format et schema sont obligatoires.

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

Nom

L'objet name est obligatoire et définit le nom du jeu de données. Il doit être unique au sein du manifeste.

Format

L'objet format est obligatoire et définit le type de données en entrée et le format.

SyntaxeExemple
"format" : {
 "type" :  "< delimited | shapefile>",
 "extension" : "< csv | tsv | shp >",
 "fieldDelimiter" : "< delimiter >",
 "recordTerminator: "< terminator >",
 "quoteChar":  "< character for quotes>",
 "hasHeaderRow" :  < true | false >, 
 "encoding" : "< encoding format >"
}

Exemple d'utilisation d'un fichier de formes :

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

Exemple d'utilisation d'un fichier délimité :

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

Description

  • type : propriété obligatoire définissant les données source. Il peut s'agir de delimited ou de shapefile.
  • extension : propriété obligatoire indiquant l'extension de fichier. Pour les fichiers de formes, il s'agit de shp, tandis que les fichiers délimités utilisent l'extension de fichier des données (par exemple, csv ou tsv).
  • fieldDelimiter : ce paramètre est obligatoire lorsque type est défini sur delimited. Ce champ représente ce qui sépare les champs dans le fichier délimité.
  • recordTerminator : ce paramètre est obligatoire uniquement lorsque type est défini sur delimited. Ce champ représente ce qui termine les entités dans le fichier délimité.
  • quoteChar : ce paramètre est obligatoire uniquement lorsque type est défini sur delimited. Le caractère indique comment les guillemets sont spécifiés dans le fichier délimité.
  • hasHeaderRow : ce paramètre est obligatoire uniquement lorsque type est défini sur delimited. Ceci indique si la première ligne d'un fichier délimité doit être traitée comme un en-tête ou comme la première entité.
  • encoding : ce paramètre est obligatoire uniquement lorsque type est défini sur delimited. Ce paramètre identifie le type de codage utilisé.

structure

L'objet schema est obligatoire et définit les champs et le type de champ des données en entrée.

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

Description

  • fields : propriété obligatoire définissant les champs dans la structure.
  • name : propriété obligatoire indiquant le nom de champ. Le nom de champ doit être unique dans le jeu de données et ne contenir que des caractères alphanumériques et des traits de soulignement.
  • type : propriété obligatoire définissant le type du champ. Les options sont notamment les suivantes :
    • esriFieldTypeString : pour les chaînes
    • esriFieldTypeDouble : pour les valeurs doubles ou flottantes
    • esriFieldTypeBigInteger : pour les valeurs entières
    • esriFieldTypeDate : pour les fichiers de formes comportant des champs de date. Pour les jeux de données délimités comportant des champs de date, les dates doivent être représentées par un champ esriFieldTypeString.

Géométrie

L'objet geometry est facultatif. Il est obligatoire si un jeu de données comprend une représentation spatiale, telle qu'un point, une polyligne ou un polygone.

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

Exemple d'utilisation d'un fichier .csv :

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

Exemple d'utilisation d'un fichier .tsv :

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

Description

Remarque :

L'objet geometry étant facultatif, les propriétés ci-dessous sont identifiées comme obligatoires ou facultatives en supposant qu'une géométrie est utilisée :

  • geometryType : ceci est obligatoire. Les options sont notamment les suivantes :
    • esriGeometryPoint
    • esriGeometryPolyline
    • esriGeometryPolygon
  • spatialReference : propriété obligatoire indiquant la référence spatiale du jeu de données.
    • wkid : champ indiquant la référence spatiale, où wkid ou latestWkid est obligatoire pour un jeu de données avec une géométrie.
    • latestWkid : champ indiquant la référence spatiale dans une version logicielle donnée, où wkid ou latestWkid est obligatoire pour un jeu de données avec géométrie.
  • fields : propriété obligatoire pour les jeux de données délimités avec une représentation spatiale. Ce paramètre indique le ou les noms de champ et les formats de la géométrie.
    • name : propriété obligatoire pour les jeux de données délimités avec une représentation spatiale. Ceci indique le nom du champ qui permet de représenter la géométrie. Il peut en exister plusieurs instances.
    • formats : propriété obligatoire pour les jeux de données délimités avec une représentation spatiale. Ceci indique le format du champ qui permet de représenter la géométrie. Il peut en exister plusieurs instances.

Temps

L'objet time est facultatif. Il est obligatoire si un jeu de données possède une représentation temporelle.

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

Exemple d'utilisation d'un instant avec plusieurs formats dans les champs temporels :

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

Exemple d'utilisation d'un intervalle avec plusieurs champs pour 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"
  }
 ]
}

Description

Remarque :

Puisque l'objet time est facultatif, les propriétés suivantes sont identifiées comme étant obligatoires ou facultatives si le paramètre time est utilisé :

  • timeType : le type temporel est obligatoire si le temps est inclus dans le jeu de données. Les options sont notamment les suivantes :
    • instant : pour un seul moment dans le temps
    • interval : pour un intervalle temporel représenté par une heure de début et de fin
  • timeReference : champ obligatoire si le jeu de données est de type temporel, indiquant le fuseau horaire (timeZone).
    • timeZone : champ obligatoire de timeReference indique le format du fuseau horaire des données. timeZone peut être formaté comme suit :
      • A l'aide du nom complet du fuseau horaire : Pacific Standard Time
      • A l'aide de l'abréviation du fuseau horaire : PST
  • fields : champ obligatoire indiquant le nom et le format des champs temporels. Les propriétés obligatoires de fields sont les suivantes :
    • name : champ obligatoire indiquant le nom du champ qui permet de représenter le temps. Plusieurs instances de cet objet peuvent être présentes.
    • formats : champ obligatoire indiquant le format du champ qui permet de représenter le temps. Plusieurs formats peuvent être présents pour un seul champ (comme illustré ci-dessus). Plusieurs instances de cet objet peuvent être présentes. Pour savoir quel formatage appliquer aux champs, reportez-vous à la rubrique : Formats d'heure dans un manifeste de partage de fichiers Big Data.
    • role : champ obligatoire lorsque timeType correspond à interval. Il peut représenter la valeur startTime ou endTime d'un intervalle temporel.