Skip To Content

Entendendo um manifesto de compartilhamento do arquivo de grandes dados

Os compartilhamentos do arquivo de dados grandes são registrados como um armazenamento de dados pelo ArcGIS Server Manager. Eles exigem um manifesto para esboçar o esquema dos dados, como também os campos que representam a geometria e o tempo no conjunto de dados. O manifesto é automaticamente gerado quando você registrar um compartilhamento do arquivo de grandes dados, 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árias (por exemplo, o manifesto gerado automaticamente não selecionou o campo correto da geometria ou do tempo).

Anotação:

A edição do seu compartilhamento do arquivo de grandes dados é 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 dos conjuntos de dados depende do número de pastas contidas no seu compartilhamento do arquivo de grandes dados. 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 conjunto de dados e seu formato.

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

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, shapefile, parquet ou orc.
  • extension—Uma propriedade exigida denotando a extensão do arquivo. Para shapefiles, isto é shp, os arquivos delimitados utilizam a extensão do arquivo dos dados (por exemplo, csv ou tsv), arquivos ORC utilizam orc, e arquivos parquet utilizam parquet.
  • 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 especifica 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. Esta propriedade 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. Esta propriedade especifica o tipo de codificação utilizada.

Esquema

O objeto schema é exigido; ele define os campos do conjunto de dados e o tipo de arquivo.

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 ORC e parquet delimitados com campos que representam uma data devem ter as datas representadas por um campo esriFieldTypeString.

Geometria

O objeto geometry é opcional. É exigido se um conjunto de dados tiver uma representação espacial, 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 delimitado com valores x e y:

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

Exemplo utilizando um arquivo delimitado com valores x, y e z:

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

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 múltiplas instâncias 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 múltiplos formatos em 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 múltiplos campos utilizados 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 múltiplas instâncias deste objeto.
    • formats—Um campo exigido que denota o formato do campo utilizado para representar o tempo. Pode haver múltiplos formatos para um campo único (como mostrado acima). Pode haver múltiplas instâncias deste objeto. Para aprender como os campos podem ser formatados consulte: Formatos de tempo em um manifesto de compartilhamento 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.