Sie können einen Layer für eine relationale Datenbank in die Karte ziehen, sodass automatisch ein Abfrage-Layer erstellt wird. Alternativ können Sie die Schaltfläche Daten hinzufügen auf der Registerkarte Karte verwenden, um in einer Karte in ArcGIS AllSource einen Abfrage-Layer zu erstellen.
Tipp:
Auf dieser Seite wird erklärt, wie ein Abfrage-Layer für eine Tabelle in einer relationalen Datenbank erstellt wird. Wenn Sie auf Daten in einem Cloud Data Warehouse zugreifen möchten, finden Sie dazu im Abschnitt Erstellen eines Abfrage-Layers für Daten in einem Cloud Data Warehouse entsprechende Informationen.
Abfrage-Layer mit Zugriff auf Geodatabase-Systemtabellen werden nicht unterstützt.
Voraussetzungen und Workflows
Lesen Sie den Abschnitt Datenbank- und Client-Konfigurationen für Abfrage-Layer, bevor Sie einen Abfrage-Layer erstellen.
Lesen Sie als Nächstes die folgenden Unterabschnitte, um den Workflow besser zu verstehen, der beim Erstellen eines Abfrage-Layers für eine relationale Datenbank mithilfe des Dialogfeldes Neuer Abfrage-Layer zu befolgen ist.
Herstellen einer Verbindung zu einer relationalen Datenbank
Bevor Sie einen Abfrage-Layer definieren können, müssen Sie eine Verbindung zu der Datenbank herstellen, die abgefragt werden soll.
Sie können eine Datenbankverbindung im Bereich Katalog (siehe hierzu Verbindungen zu relationalen Datenbanken in ArcGIS AllSource) erstellen, dem Projekt hinzufügen und über das Dialogfeld Neuer Abfrage-Layer dort hin wechseln. Alternativ können Sie die Datenbankverbindung über das Dialogfeld Neuer Abfrage-Layer erstellen.
Definieren einer SQL-Abfrage
Geben Sie im Textfeld Abfrage eine SQL-Abfrage an, um auf die benötigten Daten in der Tabelle oder Sicht zuzugreifen.
Sie können eine SQL-Abfrage in das Textfeld Abfrage einfügen oder, wenn Sie keine SQL-Abfrage vorbereitet haben und eine Tabellenliste angezeigt werden soll, das Feld Liste der Tabellen aktivieren. Sie können auf die in der Liste angezeigten Tabellen und Spalten doppelklicken, um eine SQL-Abfrage zu erstellen, oder diese aus dem Tabellenlistenfenster in das Textfeld Abfrage ziehen.
Jede Spalte in einer Datenbank hat einen bestimmten Datentyp. ArcGIS kann mit den gebräuchlichsten Datenbanktypen arbeiten. Einige seltenere Datenbanktypen werden jedoch nicht unterstützt. Wenn der Attributspaltentyp unbekannt ist, bedeutet dies, dass ArcGIS diesen Datentyp nicht unterstützt. Wenn Sie eine Abfrage angeben, müssen alle Spalten mit einem unbekannten Datentyp entweder ausgeschlossen werden oder in der Abfrage in einen Datentyp umgewandelt werden, der von ArcGIS unterstützt wird. Unter In ArcGIS unterstützte Datenbankdatentypen finden Sie eine Liste der unterstützten Datentypen pro Datenbank.
Tipp:
In ArcGIS AllSource wurde Unterstützung für die folgenden Datentypen hinzugefügt:
- Big Integer
- Nur Datum
- Nur Zeit
- Zeitstempelversatz
Die Unterstützung für die neuen Datentypen variiert je nach Datenbank- und Cloud-Data-Warehouse-Plattform. Weitere Informationen finden Sie unter In ArcGIS unterstützte Datenbank-Datentypen.
Beim Erstellen eines Abfrage-Layers sollte eine für die Datenbank spezifische SQL-Syntax verwendet werden. Ein allgemeines Beispiel wäre wie folgt: SELECT * FROM Test.myuser.US_States. Dies führt zu einem Abfrage-Layer, der alle Zeilen von der Tabelle "US_States" enthält. In der Karte zeigt dies die gesamte USA an.
Weitere Informationen zum Verwenden von Variablen in SQL-Abfragen finden Sie unter Definieren von Parametern in einem Abfrage-Layer.
Überprüfen der SQL-Anweisung
Überprüfen Sie die SQL-Abfrage nach ihrer Definition. Während der Überprüfung verwendet ArcGIS die Eigenschaften der ersten in der Tabelle zurückgegebenen Zeile, um die Gültigkeit der Abfrage zu bestimmen.
ArcGIS verwendet auch die Eigenschaften der ersten von der Abfrage zurückgegebenen Zeile, um zu filtern, welche anderen Zeilen in der Karte angezeigt werden, um die ArcGIS-Anforderungen zu erfüllen. ArcGIS unterstützt zum Beispiel nur einen Raumbezug in einer räumlichen Tabelle. Wenn die Features in Ihrer Feature-Class unterschiedliche Raumbezugs-IDs (SRID) verwenden, gibt der Abfrage-Layer standardmäßig nur die Zeilen zurück, die dieselbe SRID haben wie das erste von der Abfrage zurückgegebene Feature. In ähnlicher Weise unterstützt ArcGIS nur einen Geometrietyp pro Tabelle. Standardmäßig werden nur Features mit dem gleichen Geometrietyp wie die erste von der Abfrage zurückgegebene Zeile auf der Karte angezeigt. Um eine andere SRID oder einen anderen Geometrietyp zu verwenden, definieren Sie die räumlichen Eigenschaften des Abfrage-Layers.
Angeben eines eindeutigen Identifikators
Die eindeutige Kennung besteht aus einem oder mehreren Spalten, die von ArcGIS zur Identifizierung der einzelnen Zeilen in der Tabelle verwendet werden.
Während der Überprüfung versucht ArcGIS, eine einzige eindeutige Identifikatorspalte für die Tabelle zu ermitteln. Wenn es eine entsprechende Spalte gibt, können Sie diese für den Abfrage-Layer verwenden. Wenn kein eindeutiger Identifikator gefunden wird oder Sie einen anderen eindeutigen Identifikator verwenden möchten, können Sie diesen im nächsten Bereich des Dialogfeldes festlegen.
Das eindeutige Identifikatorfeld muss eine einzelne, eindeutige, in der Datenbank verwaltete Spalte ohne NULL-Werte sein, wenn Sie einen Feature-Layer veröffentlichen möchten, der den Abfrage-Layer enthält.
Definieren räumlicher Eigenschaften (optional)
Für Feature-Classes oder Sichten mit einer räumlichen Spalte können Sie die im Folgenden aufgeführten Eigenschaften festlegen. Falls verfügbar, können Sie auch die von ArcGIS ermittelten Standardeinstellungen verwenden.
- Geometrietyp: Dieser bestimmt, ob in dem Layer Punkt-, Multipoint-, Linien- oder Polygon-Features gespeichert werden.
- Z- und M-Werte: Mit diesen Optionen wird festgelegt, ob der Layer Features mit Z- oder M-Koordinaten enthält.
- Raumbezug: Dieser besteht aus dem Koordinatensystem und anderen zugehörigen räumlichen Eigenschaften für den Layer.
Es kann vorkommen, dass ArcGIS den Raumbezug nicht basierend auf dem aktuellen SRID-Wert ermitteln kann, der für die Features in der Datenbank festgelegt wurde. In diesem Fall weist der Abfrage-Layer einen unbekannten Raumbezug auf, sodass Sie einen Raumbezug angeben müssen. Dies gilt nicht für Cloud Data Warehouses, für die Sie keinen Raumbezug definieren können.
Hinweis:
Durch das Festlegen eines Raumbezugs für den Abfrage-Layer werden die Daten nicht neu projiziert. Es wird lediglich der Raumbezug definiert, der beim Zuordnen der Abfrageergebnisse in ArcGIS verwendet werden soll. - SRID: Dies ist die Raumbezugskennung des Layers, anhand derer sichergestellt wird, dass von der Abfrage nur Geometrien mit der gleichen Raumbezugskennung zurückgegeben werden. Der SRID-Wert ist leer, wenn der Abfrage-Layer nicht über ein räumliches Feld verfügt. Wenn dieser Wert festgelegt wird, werden alle Features, die nicht über den festgelegten Geometrie-SRID-Wert verfügen, aus dem Ergebnis ausgeschlossen. Wenn die Daten in Ihrer Datenbank eine benutzerdefinierte SRID verwenden, müssen Sie die SRID in den räumlichen Eigenschaften für den Abfrage-Layer angeben. Dies gilt nicht für Cloud Data Warehouses.
Erstellen eines Abfrage-Layers für eine Tabelle in einer relationalen Datenbank
Wenn die Tabelle, die Sie abfragen möchten, nicht Hunderttausende von Datensätzen enthält, können Sie die Tabelle auf die Karte ziehen, sodass automatisch ein Abfrage-Layer erstellt wird (siehe im Folgenden ersten Abschnitt). Bei größeren Datasets sollten Sie das Dialogfeld Neuer Abfrage-Layer verwenden, um den Abfrage-Layer zu definieren.
Ziehen Sie die Tabelle auf die Karte.
Wenn Sie eine Datenbank-Feature-Class, -tabelle oder -sicht aus einer Datenbankverbindung (.sde) im Bereich Katalog auf die Karte ziehen, wird von ArcGIS AllSource automatisch ein Abfrage-Layer erstellt, mit dem alle Zeilen und Felder der jeweiligen Feature-Class, Tabelle oder Sicht ausgewählt werden. Dies gilt jedoch nur für Datenbanken, nicht für Enterprise-Geodatabases.
ArcGIS AllSource berechnet die Ausdehnung des Layers, wenn Sie diesen auf die Karte ziehen. Wenn Sie eine Tabelle mit einer großen Anzahl von Features hinzufügen, kann die Berechnung der Ausdehnung relativ lange dauern. Sie können in diesem Fall die Ausdehnung der Daten, sofern bekannt, angeben oder die Ausdehnung des Raumbezugs der Feature-Class verwenden, anstatt auf die Berechnung zu warten. Klicken Sie auf die entsprechende Schaltfläche im Dialogfeld Ausdehnung berechnen. Wenn Sie auf Eingabeausdehnung klicken, müssen Sie eine gültige Ausdehnung eingeben, die alle Features in der Tabelle einschließt.
ArcGIS AllSource identifiziert zudem die räumlichen Eigenschaften der ersten Zeile und legt diese als räumliche Eigenschaften für den Abfrage-Layer fest. Nur Features mit den gleichen Eigenschaften werden auf der Karte dargestellt.
Nachdem Sie der Karte einen Layer hinzugefügt haben, können Sie den Abfrage-Layer bei Bedarf ändern.
Definieren einer Abfrage im Dialogfeld "Neuer Abfrage-Layer"
Führen Sie die folgenden Schritte aus, um einen Abfrage-Layer in einer Karte in einem ArcGIS AllSource-Projekt über das Dialogfeld Neuer Abfrage-Layer zu definieren:
- Öffnen Sie in ArcGIS AllSource die Karte, der Sie den Abfrage-Layer hinzufügen möchten.
- Klicken Sie auf die Schaltfläche Daten hinzufügen in der Gruppe Layer auf dem Menüband Karte, und wählen Sie Abfrage-Layer aus dem Dropdown-Menü aus.
Das Dialogfeld Neuer Abfrage-Layer wird angezeigt.
- Geben Sie mit einer der folgenden Vorgehensweisen eine Verbindung an:
- Wenn die Verbindungsdatei (.sde) im Projekt vorhanden ist, wählen Sie sie aus der Dropdown-Liste aus.
- Wenn die Verbindung nicht im Projekt vorhanden ist, wählen Sie die Schaltfläche für die neue Datenbankverbindung () aus, und erstellen Sie eine neue Verbindung. Nachdem Sie die Verbindung erstellt haben, wählen Sie sie in der Dropdown-Liste aus.
- Geben Sie im Textfeld Name einen Namen für den Abfrage-Layer an, der erstellt werden soll.
Dies ist der Name, der im Bereich Inhalt der Karte angezeigt wird.
- Geben oder fügen Sie eine SQL-Abfrage in das Textfeld Abfrage ein.
Um eine Liste der Tabellen und zugehörigen Spalten anzuzeigen, aktivieren Sie das Kontrollkästchen Tabellenliste. Sie können im Abschnitt Tabellenliste auf eine Tabelle doppelklicken, um alle Spalten in der Tabelle dem Textfeld Abfrage hinzuzufügen und die Abfrage im Textfeld Abfrage zu bearbeiten. Sie können zum Beispiel nicht benötigte Spalten aus der Abfrage löschen und der Abfrage Klauseln hinzufügen, um die im Abfrage-Layer enthaltenen Daten einzuschränken.
- Wählen Sie aus, wie die räumlichen Eigenschaften des Layers definiert werden sollen.
- Wählen Sie Die Erkennung räumlicher Eigenschaften für den Layer durch ArcGIS Pro zulassen (Standardeinstellung), damit ArcGIS AllSource die räumlichen Eigenschaften der ersten von der Abfrage zurückgegebenen Zeile verwenden kann. ArcGIS AllSource erkennt diese Eigenschaften, wenn Sie die SQL-Anweisung validieren.
- Wählen Sie Räumliche Eigenschaften für den Layer definieren, wenn der Layer Features mit räumlichen Eigenschaften enthalten soll, die sich von denen der ersten Zeile unterscheiden.
- Klicken Sie auf Überprüfen, um sicherzustellen, dass die Abfragesyntax korrekt ist und ArcGIS die Abfrage verwenden kann.
Die Abfrage wird im Rahmen des Überprüfungsvorgangs in der Datenbank ausgeführt, um sicherzustellen, dass die von der Abfrage zurückgegebenen Ergebnisse den von ArcGIS erforderten Datenmodellierungsstandards entspricht. Ein Abfrage-Layer wird der Karte erst dann hinzugefügt, wenn die Karte gültig ist.
Die Regeln für die Validierung sind wie folgt:
- Der Ergebnissatz darf höchstens über ein räumliches Feld verfügen.
- Der Ergebnissatz darf höchstens über einen Raumbezug verfügen.
- Der Ergebnissatz darf nur einen Shape-Typ haben.
- Der Ergebnissatz darf nur von ArcGIS unterstützte Feldtypen enthalten.
Wenn die Überprüfung aus irgendeinem Grund fehlschlägt, wird eine Fehlermeldung zurückgegeben, damit Sie die Abfrage ändern können.
Beim Arbeiten mit Daten in Spatial-Databases, die nicht die gleichen Standards wie ArcGIS erfordern, ist die Überprüfung besonders wichtig.
- Wenn die Überprüfung der Abfrage positiv ausfällt, klicken Sie auf Weiter.
- Wählen Sie das eindeutige Kennungsfeld für den Abfrage-Layer aus, oder verwenden Sie das von ArcGIS AllSource ausgewählte Feld.
Alle Features in der Karte müssen eine eindeutige Kennung haben. Aus diesem Grund muss der Abfrage-Layer ein eindeutiges Kennungsfeld aufweisen, das für jedes Feature einen Wert enthält. Weitere Informationen zum Auswählen eines eindeutigen Kennungsfeldes für einen Abfrage-Layer
- Wählen Sie den Geometrietyp und den Raumbezug aus.
Diese Parameter sind möglicherweise bereits definiert, wenn Sie festgelegt haben, dass die räumlichen Eigenschaften von ArcGIS AllSource bestimmt werden.
- Wählen Sie aus dem Dropdown-Menü den Geometrietyp aus.
- Klicken Sie auf die Schaltfläche Koordinatensystem , um das Koordinatensystem des von den Daten verwendeten Raumbezugs auszuwählen, oder importieren Sie den Raumbezug aus einem vorhandenen Dataset. Die Daten werden dadurch nicht neu projiziert.
- Wenn in Schritt 6 die räumlichen Eigenschaften von ArcGIS AllSource definiert wurden, klicken Sie auf Fertig stellen, um den Abfrage-Layer zur Karte hinzufügen.
Die nächsten beiden Schritte entfallen, wenn die räumlichen Eigenschaften von ArcGIS AllSource definiert wurden.
- Wenn Sie die räumlichen Eigenschaften des Layers in Schritt 6 definiert haben, ist im oben gezeigten Dialogfeld ein zusätzlicher Abschnitt zu sehen. Geben Sie in diesem Abschnitt (Eigenschaften der Layer-Ausdehnung) die räumliche Ausdehnung des Abfrage-Layers an, indem Sie eine der folgenden Optionen wählen:
- Eingabeausdehnung: Wenn Sie auf Weiter klicken, müssen Sie die Ausdehnung eingeben. Die angegebene Ausdehnung muss gültig sein und alle Features in der Tabelle umfassen.
- Kartenausdehnung verwenden: Die Ausdehnung der aktuellen Karte wird für die Ausdehnung des Abfrage-Layers verwendet. Klicken Sie auf Weiter, um die Kartenausdehnungswerte zu überprüfen.
- Ausdehnung des Raumbezugs verwenden: Die Ausdehnung des Raumbezugs der Daten wird für die Ausdehnung des Abfrage-Layers verwendet. Bei manchen Raumbezügen ist dies der gesamte Globus. Klicken Sie auf Weiter, und prüfen Sie die Raumbezug-Ausdehnungswerte.
- Wenn Sie das Festlegen oder Überprüfen der Layer-Ausdehnung beendet haben, klicken Sie auf Fertig stellen, um den Abfrage-Layer der Karte hinzuzufügen.
Weitere Informationen zum Ändern der Eigenschaften von Abfrage-Layern finden Sie unter Ändern eines Abfrage-Layers.