Big-Data-Verbindungen (BDCs) werden mithilfe des Werkzeugs Big-Data-Verbindung erstellen erstellt und generieren ein BDC-Element, das Sie durchsuchen und in Geoverarbeitungswerkzeugen verwenden können. BDC-Elementdetails werden in einer .bdc-Datei gespeichert. BDC-Details enthalten den Speicherort der Daten und Informationen zu jedem Dataset. Es wird empfohlen, die BDCs bei Bedarf mithilfe der folgenden Werkzeuge zu ändern:
- Dataset aus Big-Data-Verbindung duplizieren
- Vorschau von Dataset aus Big-Data-Verbindung anzeigen
- Dataset aus Big-Data-Verbindung entfernen
- Big-Data-Verbindung aktualisieren
- Eigenschaften des Big-Data-Verbindungs-Datasets aktualisieren
In einigen Fällen muss die Datei ggf. manuell geändert werden. Zum Ändern der Datei wird Folgendes empfohlen:
- Machen Sie sich mit der JSON-Formatierung vertraut.
- Sichern Sie Ihre aktuelle .bdc-Datei für den Fall, dass Sie Ihre Änderungen rückgängig machen möchten.
- Überprüfen Sie Ihre aktualisierte .bdc-Datei mit dem JSON Validator, der im Internet kostenlos erhältlich ist.
"connection" : {}
"datasets":[]
Die Verbindung enthält den Typ und die Eigenschaften. In den Eigenschaften ist der Pfad zum Quellordner angegeben. Zum Verschieben Ihrer Daten können Sie den Eigenschaftenpfad aktualisieren.
"connection" : {
"type": "filesystem", "properties":{
"path": <path to source folder>
}
}
Die Datasets enthalten ein oder mehrere Datasets in Ihrer BDC. Die Anzahl der Datasets hängt von der Anzahl der Ordner ab, die Ihr BDC enthält. Im folgenden Beispiel sind fünf Datasets verfügbar:
"datasets":[ {.. dataset1 ..}, {.. dataset2 ..}, {.. dataset3 ..}, {.. dataset4 ..}, {.. dataset5 ..}, ]
Jedes Dataset weist fünf Objekte der obersten Ebene auf, die angewendet werden können. Von diesen Objekten sind name, format und schema erforderlich.
{
"name": <dataset name>, "alias": <alias name>, "sourceName": <source name>, "filter": <where clause>, "properties": {}, "fields": {}, "geometry": {}, "time": {}
}
Name
Das name-Objekt ist erforderlich und definiert den Namen des Datasets. Der Name muss in dem Manifest eindeutig sein.
Alias
Das alias-Objekt ist optional; dabei handelt es sich um einen alternativen Namen für das Dataset, der beschreibender ist und Zeichen enthalten kann, die im name-Objekt eingeschränkt sind. Der Alias muss entweder identisch mit dem Dataset-Namen oder in der .bdc-Datei eindeutig sein.
Quellenname
Das sourceName-Objekt ist optional, wenn das name-Objekt dem Quellordnernamen entspricht. Wenn der Name nicht mit dem Namen des Quellordners identisch ist, muss das sourceName-Objekt einbezogen werden und dem Ordnernamen exakt entsprechen. Das sourceName-Objekt ermöglicht es Ihnen, mehrere Datasets mit eindeutigen Namen mithilfe desselben Quellordners zu erstellen. Wenn Sie beispielsweise ein Dataset mit dem Namen "Taxis" haben – mit sourceName als Taxis, kann es Datasets mit dem Namen taxi_pickup und taxi_dropoff mit unterschiedlichen Geometrien und Zeitformatierungen geben. Diese Datasets haben denselben Quellnamen und unterschiedliche Namen. Alle drei Datasets stellen dasselbe ursprüngliche Dataset, nämlich "Taxis" dar.
Filtern
Das filter-Objekt ist optional und wendet einen SQL-Ausdruck auf das Dataset an. Nur Features, die die Filterbedingung erfüllen, werden verwendet. Der Filter wirkt sich auf die Darstellung aus und darauf, welche Features in der Attributtabelle des Layers angezeigt und von Geoverarbeitungswerkzeugen ausgewählt, beschriftet, identifiziert und verarbeitet werden können. Beispielsweise verwendet der Filter "X IS NOT NULL AND Y IS NOT NULL" nur Features, bei denen die X- und Y-Felder nicht NULL sind.
Eigenschaften
Das properties-Objekt ist erforderlich und definiert den Dataset-Typ und dessen Format.
Syntax
"format" : {
"fileformat" : "< delimited | shapefile | orc | parquet >",
"delimited.extension" : "< csv | tsv | txt | other >",
"delimited.fieldDelimiter" : "< delimiter >",
"delimited.recordTerminator: "< terminator >",
"delimited.quoteChar": "< character for quotes>",
"delimited.escapeChar": "< character for escape>",
"delimited.hasHeaderRow" : < true | false >,
"delimited.encoding" : "< encoding format >"
}
Beispiele
Im folgenden Beispiel wird eine Shapefile verwendet:
"format" : {
"type": "shapefile",
}
Im folgenden Beispiel wird eine durch Trennzeichen getrennte Datei verwendet:
"format" : {
"type": "delimited", "delimited.extension": "csv", "delimited.fieldDelimiter": ",", "delimited.recordTerminator": "\n", "delimited.quoteChar" "\"",
"delimited.escapeChar" "\"", "delimited.hasHeaderRow": true, "delimited.encoding" : "UTF-8"
}
Beschreibung
- type: Eine erforderliche Eigenschaft, die die Quelldaten definiert. Hierbei kann es sich um delimited, shapefile, parquet oder orc handeln.
- Die übrigen Objekte werden nur für durch Trennzeichen getrennte Dateien angegeben und sind erforderlich:
- delimited.extension: Eine erforderliche Eigenschaft, die die Dateierweiterung anzeigt (beispielsweise csv oder tsv).
- delimited.quoteChar: Zeigt an, wie Anführungszeichen in der durch Trennzeichen getrennten Datei angegeben werden.
- delimited.escapeChar: Zeigt an, wie umgekehrte Schrägstriche in der durch Trennzeichen getrennten Datei angegeben werden.
- delimited.encoding: Gibt die Art der verwendeten Encodierung an.
- delimited.recordTerminator: Gibt an, wodurch Features in der durch Trennzeichen getrennten Datei beendet werden.
- delimited.fieldDelimiter: Zeigt an, wodurch Felder in der durch Trennzeichen getrennten Datei getrennt werden.
- delimited.hasHeaderRow: Hiermit wird festgelegt, ob die erste Zeile in einer durch Trennzeichen getrennten Datei als Kopfzeile oder als erstes Feature behandelt werden soll.
Felder
Das fields-Objekt ist erforderlich. Es definiert die Dataset-Felder, die Feldtypen und die Sichtbarkeit.
Syntax
"fields" : [{
"name": <fieldName>,
"sourceName": <field name in source>,
"type" : < Int8 | Int16 | Int32 | Int64 | Float32 | Float64 | String |
Binary | Date >,
"visible" : <true | false>
},
{...field 2...},
{...field 3...}
...
{...field n...}
}
Beispiel
"fields" : {
{
"name": "trackid", "type": "String"
}, {
"name": "x", "type": "Float32", "visible" : false }, {
"name": "y", "type": "Float32", "visible" : false }, {
"name": "time", "type": "Int64", "visible" : false }, {
"name": "value", "type": "Float64"
}
]
}
Beschreibung
- name: Eine erforderliche Eigenschaft, die den Feldnamen angibt. Der Feldname muss für das Dataset eindeutig sein und darf nur alphanumerische Zeichen und Unterstriche enthalten.
- sourceName: Eine optionale Eigenschaft, die den Feldnamen im Quellen-Dataset anzeigt. Diese ist nur erforderlich, wenn der Name nicht dem Ordnernamen entspricht.
- visible: Eine optionale Eigenschaft, die anzeigt, ob das Feld in den Geoverarbeitungswerkzeugen sichtbar ist. Die Felder werden mithilfe der Werkzeuge Big-Data-Verbindung erstellen oder Big-Data-Verbindung aktualisieren, bei denen die Sichtbarkeit auf false gesetzt ist, standardmäßig zunächst als Zeit- und Geometriefelder festgelegt. Alle anderen Felder werden standardmäßig auf true gesetzt.
- type: Eine erforderliche Eigenschaft, die den Feldtyp anzeigt. Die folgenden Optionen sind verfügbar:
- Int8: Dargestellt in ArcGIS Pro als kurzes Feld.
- Int16: Dargestellt in ArcGIS Pro als kurzes Feld.
- Int32: Dargestellt in ArcGIS Pro als langes Feld.
- Int64: Dargestellt in ArcGIS Pro als doppeltes Feld.
- Float32: Dargestellt in ArcGIS Pro als Feld mit Gleitkommawerten.
- Float64: Dargestellt in ArcGIS Pro als doppeltes Feld.
- String: Dargestellt in ArcGIS Pro als Zeichenfolgenfeld.
- Binary: Dargestellt in ArcGIS Pro als BLOB-Feld. Nur Parquet- und ORC-Eingaben können binäre Werte enthalten.
- Date: Dargestellt in ArcGIS Pro als Datumsfeld. Nur Shapefiles, ORC- und Parquet-Datasets können über Datumsfelder verfügen.
Geometrie
Das geometry-Objekt ist optional; es ist jedoch erforderlich, wenn ein Dataset eine räumliche Darstellung wie einen Punkt, eine Polylinie oder ein Polygon aufweist.
Syntax
"geometry" : {
"geometryType" : "< esriGeometryType >",
"spatialReference" : {
<spatial reference JSON>
},
"fields": [
{
"name": "<fieldName1>",
"formats": ["<fieldFormat1>"]
},
{
"name": "<fieldName2>",
"formats": ["<fieldFormat2>"]
}
]
}
Beispiele
Im folgenden Beispiel ist die Verwendung einer durch Trennzeichen getrennten Datei mit X- und Y-Werten dargestellt:
Im Folgenden Beispiel ist die Verwendung einer durch Trennzeichen getrennten Datei mit X-, Y- und Z-Werten dargestellt:
"geometry" : {
"geometryType" : "esriGeometryPoint", "spatialReference" : {
"wkt" : "GEOGCS[\"GCS_WGS_1984_Perfect_Sphere\",DATUM[\"D_Sphere\",SPHEROID[\"Sphere\",6371000.0,0.0]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]]"
}, "fields": [ {
"name": "Longitude", "formats": ["x"] }, {
"name": "Latitude", "formats": ["y"] }, {
"name": "Height", "formats": ["z"] }
]
}
Im folgenden Beispiel ist die Verwendung einer .tsv-Datei dargestellt:
"geometry" : {
"geometryType" : "esriGeometryPolygon", "spatialReference" : {
"wkid": 4326 }, "fields": [ {
"name": "Shapelocation", "formats": ["WKT"] }
]
}
Im folgenden Beispiel ist die Verwendung einer durch Trennzeichen getrennten Datei mit X-Werten in einem formatierten Feld und Y-Werten über mehrere Felder dargestellt:
"geometry" : {
"geometryType" : "esriGeometryPoint", "spatialReference" : {
"wkid": 3857 }, "fields": [ {
"name": "XValue", "formats": ["{x:degrees}° {x:minutes}' {x:seconds}" ] }, {
"name": "YDegrees", "formats": ["{y:degrees}"] }, {
"name": "YMinutes", "formats": ["{y:minutes}"] }, {
"name": "YSeconds", "formats": ["{y:seconds}"] }
]
}
Beschreibung
Hinweis:
Da das geometry-Objekt optional ist, sind die folgenden Eigenschaften als erforderlich oder optional aufgeführt, wobei vorausgesetzt wird, dass geometry verwendet wird:
- geometryType: Eine erforderliche Eigenschaft, die den Geometrietyp anzeigt. Die folgenden Optionen sind verfügbar:
- esriGeometryPoint: Der Geometrietyp ist "Punkt".
- esriGeometryPolyline: Der Geometrietyp ist "Polylinie".
- esriGeometryPolygon: Der Geometrietyp ist "Polygon".
- spatialReference: Eine erforderliche Eigenschaft, die den Raumbezug des Datasets angibt. Weist das Dataset Geometrie auf, muss eine WKID angegeben werden, oder es müssen beide (WKID und neueste WKID) oder der WKT angegeben werden.
- wkid: Der Raumbezug mithilfe einer WKID, z. B. 4326.
- latestWkid: Der Raumbezug bei einer bestimmten Softwareversion.
- wkt: Der Raumbezug unter Verwendung einer bekannten Textzeichenfolge.
- fields: Eine erforderliche Eigenschaft für durch Trennzeichen getrennte Datasets mit einer räumlichen Darstellung. Gibt den/die Feldnamen und die Formate der Geometrie an.
- name: Eine erforderliche Eigenschaft für durch Trennzeichen getrennte Datasets mit einer räumlichen Darstellung. Diese zeigt den Namen des Geometriefeldes an. Hiervon können mehrere Instanzen vorhanden sein.
- formats: Eine erforderliche Eigenschaft für durch Trennzeichen getrennte Datasets mit einer räumlichen Darstellung. Dies gibt das Format des Feldes an, das zur Darstellung der Geometrie verwendet wird. Hiervon können mehrere Instanzen vorhanden sein. Ist Ihr Speicherort über mehrere Felder verteilt oder in einer Zeichenfolge formatiert, verwenden Sie die Werte degrees, minutes,seconds, um die Einheiten anzugeben, oder direction, um die Richtung (N, S, W, O) anzugeben.
Zeit
Das time-Objekt ist optional; es ist jedoch erforderlich, wenn ein Dataset eine zeitliche Darstellung aufweist.
Syntax
"time" : {
"timeType" : "< instant | interval >",
"timeReference" : {
"timeZone" : "<timeZone >"
},
"fields": [
{
"name": "<fieldName1>",
"formats": ["<fieldFormat1>"]
"role": "< start | end >"
}
]
}
Beispiele
Im folgenden Beispiel ist die Verwendung einer Instanz mit mehreren Formaten in den Zeitfeldern dargestellt:
"time": {
"timeType": "instant", "timeReference": {"timeZone": "UTC"}, "fields": [ {
"name": "iso_time", "formats": [ "yyyy-MM-dd HH:mm:ss", "MM/dd/yyyy HH:mm"
] }
]
}
Im folgenden Beispiel ist die Verwendung eines Intervalls mit mehreren startTime-Feldern dargestellt:
"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"
}
]
}
Beschreibung
Hinweis:
Da das time-Objekt optional ist, sind die folgenden Eigenschaften als erforderlich oder optional aufgeführt, wobei vorausgesetzt wird, dass time verwendet wird:
- timeType: Eine erforderliche Eigenschaft, wenn das Dataset Zeitangaben enthält. Die folgenden Optionen sind verfügbar:
- instant: Ein einzelner Zeitpunkt
- interval: Ein Zeitintervall mit Start- und Endzeit
- timeReference: Eine erforderliche Eigenschaft (wenn das Dataset zeitaktiviert ist), die die Zeitzone angibt (timeZone).
- timeZone: Eine erforderliche Eigenschaft, die das Zeitzonenformat der Daten angibt. Zeitzonen basieren auf Joda-Time. Weitere Informationen über die Joda-Time-Formate finden Sie unter Joda-Time Available Time Zones. Die timeZone-Eigenschaft kann wie folgt formatiert werden:
- Der vollständige Namen der Zeitzone: Pacific Standard Time.
- Der Zeitzonenversatz, ausgedrückt in Stunden: -0100 oder -01:00.
- Zeitzonenabkürzungen: nur UTC oder GMT.
- timeZone: Eine erforderliche Eigenschaft, die das Zeitzonenformat der Daten angibt. Zeitzonen basieren auf Joda-Time. Weitere Informationen über die Joda-Time-Formate finden Sie unter Joda-Time Available Time Zones. Die timeZone-Eigenschaft kann wie folgt formatiert werden:
- fields: Ein erforderliches Feld für die Feldnamen und -formate der Zeitangabe. Die folgenden Eigenschaften von fields lauten wie folgt:
- name: Eine erforderliche Eigenschaft, die den Namen des Feldes zur Darstellung der Zeit angibt. Dieses Objekt kann mehrmals vorhanden sein.
- formats: Eine erforderliche Eigenschaft, die das Format des Feldes zur Darstellung der Zeit angibt. Es kann mehrere Formate für ein einzelnes Feld (wie oben dargestellt) sowie mehrere Instanzen dieses Objekts geben. Informationen zum Formatieren von Zeitfeldern finden Sie unter Zeitformate. Wenn das Zeitformat den Zeitbezug enthält, legen Sie als timeReference-Eigenschaft UTC fest.
- role: Eine erforderliche Eigenschaft, wenn timeType interval entspricht. Kann die startTime oder die endTime eines Zeitintervalls darstellen.