Skip To Content

Manifiesto de recursos compartidos de archivos de big data

Nota:

En ArcGIS Enterprise 10.9.1 o posterior, se recomienda que agregue o edite recursos compartidos de archivos de big data a través de la página de contenido de su portal en lugar de ArcGIS Server Manager.

Más información sobre cómo agregar recursos compartidos de archivos de big data en el portal

Los recursos compartidos de archivos de big data se registran como data store mediante la página de contenido del portal. Los recurso compartido de archivos de big data exigen un manifiesto en el que se describa el esquema de los datos, así como los campos que representan la geometría y el tiempo en el dataset. El manifiesto se genera automáticamente al registrar un recurso compartido de archivos de big data, pero puede que necesite realizar modificaciones si se produce algún cambio en los datos o si la generación del manifiesto no pudo determinar toda la información necesaria (por ejemplo, si el manifiesto generado automáticamente no seleccionó el campo correcto para la geometría o el tiempo).

Nota:

La edición del recurso compartido de archivos de big data a través del manifiesto es una opción avanzada. Para obtener más información sobre cómo aplicar cambios a datasets individuales del recurso compartido de archivos de big data, consulte Administrar recursos compartidos de archivos de big data en el portal. Para obtener información sobre cómo aplicar un archivo de sugerencias a los archivos delimitados, consulte Archivo de sugerencias.

El manifiesto está compuesto por datasets. La cantidad de datasets depende de la cantidad de carpetas que contenga el uso compartido de archivos de Big Data. En el ejemplo siguiente existen cinco datasets:

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

Dentro de cada dataset, existen cinco objetos de nivel superior que pueden ser aplicables. De estos objetos, name, format y schema y son necesarios.

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

Nombre

El objeto name es necesario y define el nombre del dataset. Debe ser único en el manifiesto.

Formato

El objeto format es obligatorio y define el tipo de dataset y su formato.

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

Ejemplo utilizando un shapefile:

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

Ejemplo utilizando un archivo delimitado:

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

Descripción

  • type: una propiedad requerida que define la fuente de datos. Puede ser delimited, shapefile, parquet o orc.
  • extension: una propiedad requerida que indica la extensión del archivo. Para shapefiles, es shp; los archivos delimitados utilizan la extensión del archivo de los datos (por ejemplo, csv o tsv), los archivos ORC usan orc; y los archivos de parquet utilizan parquet.
  • fieldDelimiter: es necesario cuando type es delimited. Este campo representa qué es lo que separa a los campos en el archivo delimitado.
  • recordTerminator: solo es necesario cuando type es delimited. Este campo especifica qué es lo que finaliza las entidades en el archivo delimitado.
  • quoteChar: solo es necesario cuando type es delimited. El carácter indica cómo se especifican las comillas en el archivo delimitado.
  • hasHeaderRow: solo es necesario cuando type es delimited. Esta propiedad especifica si la primera fila de un archivo delimitado se debe tratar como un encabezado o como la primera entidad.
  • encoding: solo es necesario cuando type es delimited. Esta propiedad especifica el tipo de codificación utilizado.

Esquema

El objeto schema es necesario; define los campos del dataset y el tipo de campo.

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

Descripción

  • fields: una propiedad requerida que define los campos en el esquema.
  • name: una propiedad requerida que indica el nombre de campo. El nombre del campo debe ser único en el dataset y solo puede contener caracteres alfanuméricos y guiones bajos.
  • type: es una propiedad requerida que define el tipo de campo. Entre las opciones se incluyen las siguientes:
    • esriFieldTypeInteger: para enteros.
    • esriFieldTypeSmallInteger: para enteros.
    • esriFieldTypeBigInteger: para enteros. Los campos de enteros grandes se almacenarán como campos dobles en un servicio de entidades.
    • esriFieldTypeString: para cadenas de caracteres.
    • esriFieldTypeDouble: para dobles o flotantes.
    • esriFieldTypeDate: para shapefiles con campos de fecha. Los datasets delimitados, ORC y de parquet con campos que representan una fecha deben tener fechas representadas mediante un campo esriFieldTypeString.
    • esriFieldTypeSingle: para valores únicos.
    • esriFieldTypeBlob: para valores binarios. Los campos de BLOB se almacenarán como campos de cadena de caracteres en un servicio de entidades.
Nota:

Cuando los recursos compartidos de archivos de big data se analizan a través de GeoAnalytics Tools y se guardan como un servicio de entidades, los tipos pueden cambiar. Por ejemplo, un esriFieldTypeBigInteger en un recurso compartido de archivos de big data se convertirá en un campo esriFieldTypeDouble en un servicio de entidades.

Geometría

El objeto geometry es opcional. Es necesario si un dataset tiene una representación espacial como, por ejemplo, un punto, polilínea o polígono.

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

Ejemplo utilizando un archivo delimitado con valores x e y:

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

Ejemplo utilizando un archivo delimitado con valores x, y y z:

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

Ejemplo utilizando un archivo .tsv:

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

Descripción

Nota:

Dado que el objeto geometry es opcional, las siguientes propiedades se enumeran como necesarias u opcionales, suponiendo que se utiliza una geometría:

  • geometryType: es necesaria. Entre las opciones se incluyen las siguientes:
    • esriGeometryPoint
    • esriGeometryPolyline
    • esriGeometryPolygon
  • spatialReference: una propiedad requerida que indica la referencia espacial del dataset.
    • wkid: un campo que indica la referencia espacial, donde wkid o latestWkid es necesario para un dataset con una geometría.
    • latestWkid: un campo que indica la referencia espacial en una versión de software determinada, donde wkid o latestWkid es necesario para un dataset con geometría.
  • fields: una propiedad requerida para datasets delimitados con una representación espacial. Esto indica los formatos y los nombres o el nombre del campo de la geometría.
    • name: una propiedad requerida para datasets delimitados con una representación espacial. Indica el nombre del campo utilizado para representar la geometría. Puede haber varias instancias de estos elementos.
    • formats: una propiedad requerida para datasets delimitados con una representación espacial. Indica el formato del campo utilizado para representar la geometría. Puede haber varias instancias de estos elementos.
  • dropSourceFields: una propiedad opcional para datasets con campos que representan la geometría. Indica si los campos usados para especificar la geometría se usarán como campos en el análisis. Si se configura como true, los campos usados para la geometría no serán visibles como campos de análisis (como las estadísticas de resumen) y se eliminarán al ejecutar herramientas. El valor predeterminado es falso. Esta propiedad no se puede configurar en datasets de shapefile.

Tiempo

El objeto time es opcional. Es necesario si un dataset tiene una representación temporal.

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

Ejemplo con un instante, con varios formatos en los campos de tiempo:

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

Ejemplo con un intervalo, con varios campos utilizados para startTime:

"time": {
 "timeType": "interval",
 "timeReference": {"timeZone": "-0900"},
 "dropSourceFields" : true,
 "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"
  }
 ]
}

Descripción

Nota:

Dado que el objeto time es opcional, las siguientes propiedades se enumeran como necesarias u opcionales, suponiendo que se utiliza time:

  • timeType: el tipo de tiempo es necesario si el tiempo se incluye en el dataset. Entre las opciones se incluyen las siguientes:
    • instant: para un único momento en el tiempo
    • interval: para un intervalo de tiempo representado con un tiempo inicial y final
  • timeReference: un campo requerido si el dataset tiene la función de tiempo habilitada, lo cual indica la zona horaria (timeZone).
    • timeZone: un campo requerido de timeReference que indica el formato de la zona horaria de los datos. Las zonas horarias se basan en Joda-Time. Para obtener más información sobre formatos de Joda-Time, consulte Zonas horarias con disponibilidad para Joda-Time. timeZone puede tener el siguiente formato:
      • Con el nombre completo de la zona horaria: Pacific Standard Time.
      • Con el desplazamiento de zona horaria expresado en horas: -0100 o -01:00.
      • Puede usar abreviaturas de zonas horarias solamente para UTC o GMT; de lo contrario, use el nombre completo o el desplazamiento de horas.
  • fields: un campo requerido para indicar los nombres y formatos de los campos de tiempo. Estas son las propiedades requeridas defields:
    • name: un campo requerido que indica el nombre del campo utilizado para representar el tiempo. Puede haber varias instancias de este objeto.
    • formats: un campo requerido que indica el formato del campo utilizado para representar la hora. Puede haber varios formatos para un único campo (como se muestra arriba). Puede haber varias instancias de este objeto. Para obtener más información sobre cómo se pueden formatear los campos, consulte Formatos de tiempo.
    • role: un campo obligatorio si timeType es interval. Puede representar el startTime o el endTime de un intervalo de tiempo.
  • dropSourceFields: una propiedad opcional para datasets con campos que representan el tiempo. Indica si los campos utilizados para especificar el tiempo se usarán como campos en el análisis. Si se configura como true, los campos usados para el tiempo no serán visibles como campos de análisis (como las estadísticas de resumen) y se eliminarán al ejecutar herramientas. El valor predeterminado es falso.