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 de données via ArcGIS Server Manager. Ils requièrent un manifeste décrivant le schéma des données, ainsi que les champs et les formats qui représentent la géométrie et le temps dans un jeu de données. Le manifeste est généré automatiquement lorsque vous inscrivez un partage de fichiers Big Data. 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 requis est définit le type de jeu de données et son format.

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

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, shapefile, parquet ou orc.
  • extension : propriété obligatoire indiquant l'extension de fichier. Pour les fichiers de formes, il s'agit de shp, les fichiers délimités utilisent l’extension de fichier des données (par exemple, csv ou tsv), les fichiers ORC utilisent orc et les fichiers Parquet utilisent parquet.
  • 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 précise ce qui délimite 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. Cette propriété précise si la première ligne d'un fichier délimité doit être traité comme une en-tête ou comme la première entité.
  • encoding : ce paramètre est obligatoire uniquement lorsque type est défini sur delimited. Cette propriété précise le type de chiffrement utilisé.

structure

L’objet schema est requis ; il définit les champs de jeu de données et le type de champ.

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 du champ doit être unique pour le jeu de données, et il ne peut 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. Les jeux de données délimités, ORC et Parquet avec des champs représentant une date doivent avoir des dates représentées par un champ esriFieldTypeString.

Géométrie

L'objet geometry est facultatif. Cela est requis si un jeu de données a une représentation spatiale, comme 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 utilisant un fichier délimité avec des valeurs x et y :

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

Exemple utilisant un fichier délimité avec des valeurs x , y et z :

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

Exemple d’utilisation d’un fichier .tsv :

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

Description

Remarque :

Puisque l’objet geometry est facultatif, les propriétés suivantes sont répertoriées comme requis ou facultatives, 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.

Durée

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 répertoriées comme requis ou facultatives, supposant que time est utilisée :

  • 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 en savoir plus sur la manière dont les champs peuvent être formatés, reportez-vous à la rubriqueFormats 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.