Skip To Content

Entendendo um manifesto de compartilhamento de arquivo big data

Compartilhamentos de arquivo big data são registrados como Data Store pelo ArcGIS Server Manager, e exigem um manifesto para esboçar o esquema dos dados como também os campos que representam a geometria e o tempo em um conjunto de dados. O manifesto é automaticamente gerado quando você registrar um compartilhamento de arquivo big data, mas você pode precisar fazer modificações se houver qualquer alteração nos seus dados ou se a geração do manifesto não foi capaz de determinar todas as informações necessárioas (por exemplo, o manifesto gerado automaticamente não selecionou o campo correto da geometria ou do tempo).

Anotação:

A edição de seu compartilhamento de arquivo big data é uma opção avançada. Para aprender mais sobre aplicar alterações para o conjunto de dados individual em seu manifesto, consulte Editar manifestos de compartilhamento de arquivo big data no Manager. Para aprender sobre como aplicar um arquivo de sugestões para arquivos delimitados, consulte Entendendo o arquivo de sugestões.

O manifesto é composto de conjunto de dados. O número de conjunto de dados depende do número de pastas que seu compartilhamento de arquivo big data contém. No exemplo seguinte, há cinco conjunto de dados:

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

Dentro de cada conjunto de dados, há cinco objetos de níveis superiores que podem ser aplicáveis. Destes objetos, name, format e schema são exigidos.

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

Nome

O objeto name é exigido e define o nome do conjunto de dados. Este deve ser único dentro do manifesto.

Formato

O objeto format é exigido e define o tipo de dados de entrada e seu formato.

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

Exemplo utilizando um shapefile:

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

Exemplo utilizando um arquivo delimitado:

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

Descrição

  • type—Uma propriedade exigida que define a fonte de dados. Isto pode ser delimited ou shapefile.
  • extension—Uma propriedade exigida denotando a extensão do arquivo. Para shapefiles, isto é shp, enquanto que arquivos delimitados utilizam a extensão do arquivo dos dados (por exemplo, csv ou tsv).
  • fieldDelimiter—Isto é exigido quando type for delimited. Este campo representa o que separa os campos no arquivo delimitado.
  • recordTerminator—Isto é somente exigido quando type for delimited. Este campo representa o que finaliza as feições no arquivo delimitado.
  • quoteChar—Isto é somente exigido quando type for delimited. O caractere denota como aspas são especificadas no arquivo delimitado.
  • hasHeaderRow—Isto é somente exigido quando type for delimited. Isto especifica se a primeira linha em um arquivo delimitado deve ser tratada como um cabeçalho ou como a primeira feição.
  • encoding—Isto é somente exigido quando type for delimited. Isto especifica o tipo de codificação utilizada.

Esquema

O objeto schema é exigido e define o campos e o tipo de campo dos dados de entrada.

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

Descrição

  • fields—Uma propriedade exigida que define os campos no esquema.
  • name—Uma propriedade exigida que denota o nome do campo. O nome de campo deve ser único para o conjunto de dados e somente conter caracteres alfanuméricos e underscores.
  • type—Esta é uma propriedade exigida que define o tipo do campo. As opções incluem o seguinte:
    • esriFieldTypeString—Para strings
    • esriFieldTypeDouble—Para duplos ou flutuantes
    • esriFieldTypeBigInteger—Para inteiros
    • esriFieldTypeDate—Para shapefiles com campos de data. Conjuntos de dados delimitados com campos que representam data devem ter datas representadas por um campo esriFieldTypeString.

Geometria

O objeto geometry é opcional. É exigido se um conjunto de dados tiver uma representação espacial, tais como, ponto, polilinha ou polígono.

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

Exemplo utilizando um arquivo .csv:

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

Exemplo utilizando um arquivo .tsv:

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

Descrição

Anotação:

Já que o objeto geometry é opcional, as seguintes propriedades são listadas como exigido ou opcionalmente assumindo que uma geometria será utilizada.

  • geometryType—Isto é exigido. As opções incluem o seguinte:
    • esriGeometryPoint
    • esriGeometryPolyline
    • esriGeometryPolygon
  • spatialReference—Uma propriedade exigida que denota a referência espacial do conjunto de dados.
    • wkid—Um campo que denota a referência espacial, onde wkid ou latestWkid é exigido para um conjunto de dados com uma geometria.
    • latestWkid—Um campo que denota a referência espacial em um lançamento de software fornecido, onde wkid ou latestWkid exigido para um conjunto de dados com geometria.
  • fields—Uma propriedade exigida para o conjunto de dados delimitado com uma representação espacial. Isto denota o nome de campo ou nomes e formatos da geometria.
    • name—Uma propriedade exigida para o conjunto de dados delimitado com uma representação espacial. Isto denota o nome do campo utilizado para representar a geometria. Pode haver instâncias múltiplas disto.
    • formats—Uma propriedade exigida para o conjunto de dados delimitado com uma representação espacial. Isto denota o formato do campo utilizado para representar a geometria. Pode haver instâncias múltiplas disto.

Tempo

O objeto time é opcional. É exigido se um conjunto de dados tiver uma representação temporal.

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

Exemplo utilizando um momento com formatos múltiplos nos campos de tempo:

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

Exemplo utilizando um intervalo, com campos múltiplos utilizado para 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"
  }
 ]
}

Descrição

Anotação:

Já que o objeto time é opcional, as seguintes propriedades são listadas como exigido ou opcionalmente assumindo que uma time será utilizada.

  • timeType—O tipo de tempo é exigido se houver tempo incluído no conjunto de dados. As opções incluem o seguinte:
    • instant—Para um momento único no tempo
    • interval—Por um intervalo de tempo representado por um tempo inicial e final
  • timeReference—Um campo exigido se o conjunto de dados tiver tempo habilitado, denotando o fuso horário (timeZone).
    • timeZone—Um campo exigido de timeReference que denota o formato do fuso horário dos dados. timeZone pode ser formatado como segue:
      • Utilizando o nome completo do fuso horário: Pacific Standard Time
      • Utilizando a abreviação do fuso horário: PST
  • fields—Um campo exigido para denotar os nomes de campo e formatos do tempo. Propriedades exigidas de fields são como seguem:
    • name—Um campo exigido que denota o nome do campo para representar o tempo. Pode haver instâncias múltiplas deste objeto.
    • formats—Um campo exigido que denota o formato do campo utilizado para representar o tempo. Pode haver formatos múltiplos para um campo único (como mostrado acima). Pode haver instâncias múltiplas deste objeto. Para aprender como os campos podem ser formatados consulte: Formatos de tempo em um manifesto de compartilhameno do arquivo de grandes dados.
    • role—Um campo exigido quando o timeType for interval. Pode representar o startTime ou endTime de um intervalo de tempo.