Erstellen eines Abfrage-Layers für Daten in einer Dokumentdatenbank

Sie können eine räumliche Tabelle aus einer Datenbankverbindung (.dbconn) im Bereich Katalog auf die Karte ziehen, um automatisch einen Abfrage-Layer zu erstellen, mit dem auf Daten in einer Dokumentendatenbank zugegriffen wird. Erstellen Sie alternativ mit der Schaltfläche Daten hinzufügen Daten hinzufügen auf der Registerkarte Karte einen Abfrage-Layer in einer Karte in ArcGIS Pro.

Tipp:

Im Folgenden werden Anweisungen zum Erstellen eines Abfrage-Layers für eine Tabelle in einer unterstützten Dokumentendatenbank beschrieben. Unter Erstellen eines Abfrage-Layers für Daten in einer relationalen Datenbank und Erstellen eines Abfrage-Layers für Daten in einem Cloud Data Warehouse finden Sie Anweisungen zum Erstellen eines Abfrage-Layers für den Zugriff auf diese Quellentypen.

Workflow-Übersicht

Nachfolgend finden Sie eine Zusammenfassung der Schritte, die Sie durchführen müssen, um einen Abfrage-Layer von Daten aus unterstützten Dokumentendatenbanken zu erstellen:

  • Verbindung zur Datenbank herstellen: Sie können eine Datenbankverbindung im Bereich Katalog erstellen, sie zum Projekt hinzufügen und im Dialogfeld Neuer Abfrage-Layer zu dieser navigieren. Alternativ können Sie die Datenbankverbindung über das Dialogfeld Neuer Abfrage-Layer erstellen. Anweisungen finden Sie unter Verbinden mit Elasticsearch in ArcGIS Pro und Verbinden mit OpenSearch in ArcGIS Pro.
  • Definieren der Abfrage: Wählen Sie die Tabelle und die Felder aus, die in die Abfrage aufgenommen werden sollen. Abfrage-Layer verwenden SQL-Anweisungen. Da es sich bei Elasticsearch und OpenSearch jedoch nicht um relationale Datenbanken handelt, wird beim Erstellen eines Abfrage-Layers aus Daten in diesen Datenbanken nur eine Teilmenge von SQL-Anweisungen unterstützt. Sie können keine Join- oder Relate-Klauseln einfügen, und WHERE-Klauseln sind begrenzt.
  • Überprüfen der Abfrage: Der Überprüfungsprozess überprüft die Syntax der Abfrageanweisung. Außerdem werden die Eigenschaften der ersten in der Tabelle zurückgegebenen Zeile verwendet, um die Gültigkeit der Abfrage zu bestimmen. Ein Abfrage-Layer kann nur hinzugefügt werden, wenn die Abfrageanweisung gültig ist.
  • Angeben einer eindeutigen Kennung: Alle Features in der Karte müssen über eine eindeutige Kennung verfügen. Der Abfrage-Layer muss ein eindeutiges Kennungsfeld aufweisen, das für jedes Feature einen Wert enthält. Standardmäßig verwendet der Abfrage-Layer ein System-ID-Feld als eindeutiges Kennungsfeld für jedes Feature. Wenn Sie es vorziehen, ein anderes ID-Feld zu verwenden, können Sie dieses auswählen. Wenn Sie ein Feld auswählen, muss es sich um ein ganzzahliges Feld handeln, das eindeutige Werte enthält.
  • Definieren des Geometrietyps: Der Geometrietyp des Layers gibt an, ob der Layer Punkt-, Multipoint-, Linien- oder Polygon-Features speichert. Standardmäßig wird der Geometrietyp der ersten Zeile verwendet, um festzustellen, welcher Geometrietyp in der Tabelle vorhanden ist. Da ArcGIS nur einen Geometrietyp pro Tabelle unterstützt, werden nur Features dieses Geometrietyps auf der Karte dargestellt. Sie können einen anderen Geometrietyp angeben als den, der in der ersten vom Abfrage-Layer zurückgegebenen Zeile enthalten ist.

    Wenn zum Beispiel die erste von der Abfrage zurückgegebene Zeile ein Linien-Feature ist, werden nur Linien-Features auf der Karte dargestellt. Wenn die Tabelle Polygon-Features enthält, können Sie den Geometrietyp des Layers auf Polygone festlegen, und nur die von der Abfrage zurückgegebenen Polygon-Features werden auf der Karte dargestellt.

    Verschachtelte Geometriefelder werden nicht unterstützt.

Formate der unterstützten WHERE-Klauseln

Bei der Abfrage einer Dokumentendatenbank über ArcGIS werden nicht alle WHERE-SQL-Anweisungen unterstützt. Die folgende Syntax kann in Abfrage-Layern verwendet werden, die auf Dokumentendatenbanken zugreifen:

  • <FIELD_NAME | LITERAL>'<='<FIELD_NAME | LITERAL>
  • <FIELD_NAME | LITERAL>'>='<FIELD_NAME | LITERAL>
  • <FIELD_NAME | LITERAL>'<'<FIELD_NAME | LITERAL>
  • <FIELD_NAME | LITERAL>'>'<FIELD_NAME | LITERAL>
  • <FIELD_NAME | LITERAL>'='<FIELD_NAME | LITERAL>
  • <FIELD_NAME | LITERAL>'<>'<FIELD_NAME | LITERAL>
  • <BOOLEAN EXPRESSION> AND | OR <BOOLEAN EXPRESSION>
  • NOT <BOOLEAN EXPRESSION>
  • <FIELD_NAME> LIKE <STRING>
  • <FIELD_NAME> NOT LIKE <STRING>
  • <FIELD_NAME> IN ( <LITERAL>, <LITERAL>, ... )
  • <FIELD_NAME> NOT IN ( <LITERAL>, <LITERAL>, ... )
  • <FIELD_NAME> BETWEEN <FIELD_NAME | LITERAL> AND <FIELD_NAME | LITERAL>
  • <FIELD_NAME> NOT BETWEEN <FIELD_NAME | LITERAL> AND <FIELD_NAME | LITERAL>

Die nachstehende Syntax wird ebenfalls unterstützt. Da die unterstützten Dokumentdatenbanken jedoch keine Nullwerte in Feldern unterstützen, unterscheidet sich deren Verwendung geringfügig von der Verwendung der gleichen Klausel, wenn diese für eine Tabelle in einer relationalen Datenbank oder einem Data Warehouse definiert wird.

  • <FIELD_NAME> IS NULL: Gibt Zeilen zurück, in denen ein Wert für das angegebene Feld fehlt
  • <FIELD_NAME> IS NOT NULL: Gibt Zeilen zurück, die über einen Wert für das angegebene Feld verfügen

Erstellen eines Abfrage-Layers für eine Tabelle in Elasticsearch oder OpenSearch

Um einer Karte einen Abfrage-Layer hinzuzufügen, der auf Daten in ElasticsearchElasticsearch oder OpenSearch zugreift, ziehen Sie entweder die Tabelle auf die Karte, oder definieren Sie einen Abfrage-Layer im Dialogfeld Neuer Abfrage-Layer.

Ziehen Sie die Tabelle auf die Karte.

Wenn Sie eine Tabelle aus einer Datenbankverbindungsdatei (.dbconn) im Bereich Katalog auf die Karte ziehen, erstellt ArcGIS Pro automatisch einen Abfrage-Layer, der alle Zeilen und Felder aus dieser Tabelle auswählt. Außerdem wird das von dem System verwaltete Feld _id als eindeutiges Kennungsfeld für den Layer festgelegt.

ArcGIS Pro berechnet die Ausdehnung des Layers, wenn Sie diesen auf die Karte ziehen. ArcGIS Pro identifiziert auch den Geometrietyp der ersten Zeile und legt diesen als Geometrietyp für den Abfrage-Layer fest. Nur Features dieses Geometrietyps werden in 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 Pro-Projekt über das Dialogfeld Neuer Abfrage-Layer zu definieren:

  1. Öffnen Sie die Karte in ArcGIS Pro, wo Sie den Abfrage-Layer hinzufügen möchten.
  2. Klicken Sie auf den Pfeil der Schaltfläche Daten hinzufügen Daten hinzufügen in der Gruppe Layer auf dem Menüband Karte, und wählen Sie Abfrage-Layer Abfrage-Layer hinzufügen aus dem Dropdown-Menü aus.

    Blenden Sie das Menü "Daten hinzufügen" ein, und wählen Sie einen Abfrage-Layer aus.

    Das Dialogfeld Neuer Abfrage-Layer wird angezeigt.

  3. Geben Sie mit einer der folgenden Vorgehensweisen eine Verbindung an:
    • Wenn die Verbindungsdatei (.dbconn) bereits 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 (Neue Geodatabase-Verbindung) aus, und erstellen Sie eine neue Verbindung. Nachdem Sie die Verbindung erstellt haben, wählen Sie sie in der Dropdown-Liste aus.
  4. 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.

  5. Geben oder fügen Sie eine SQL-Abfrage in das Textfeld Abfrage ein.

    Um eine Liste der Tabellen (Indizes) und zugehörigen Felder anzuzeigen, aktivieren Sie das Kontrollkästchen Liste der Tabellen. Sie können im Abschnitt Liste der Tabellen auf eine Tabelle doppelklicken, um alle Felder dem Textfeld Abfrage hinzuzufügen und die Abfrage im Textfeld Abfrage zu bearbeiten. Sie können zum Beispiel nicht benötigte Felder aus der Abfrage löschen und der Abfrage WHERE-Klauseln hinzufügen, um die im Abfrage-Layer enthaltenen Daten einzuschränken.

    Sie können eine WHERE-Klausel wie im Abschnitt oben beschrieben verwenden, aber andere Klauseln werden nicht unterstützt.

  6. 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 Pro die räumlichen Eigenschaften der ersten von der Abfrage zurückgegebenen Zeile verwenden kann. ArcGIS Pro 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.
  7. 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 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 Datenbanken, die nicht die gleichen Standards wie ArcGIS durchsetzen, ist die Überprüfung besonders wichtig.

  8. Wenn die Überprüfung der Abfrage positiv ausfällt, klicken Sie auf Weiter.
  9. Um ein anderes eindeutiges Kennungsfeld als das interne ID-Feld des Features auszuwählen, aktivieren Sie das Kontrollkästchen neben einem ganzzahligen Feld, das eindeutige Werte enthält, die ArcGIS als ID für jedes Feld verwenden kann.

    Sie müssen kein eindeutiges Kennungsfeld auswählen. Wenn Sie kein Feld angeben, wird ein System-ID-Feld verwendet.

  10. Hinweis:

    M- und Z-Werte werden nicht unterstützt.

    Sie können keinen Raumbezug für den Layer definieren; es wird immer SRID 4326, GCS WGS 1984 verwendet.

  11. Wählen Sie aus dem Dropdown-Menü den Geometrietyp aus.

    Dies kann bereits festgelegt worden sein, wenn Sie die Option Die Erkennung räumlicher Eigenschaften für den Layer durch ArcGIS zulassen ausgewählt haben.

  12. Wenn Sie die Option Die Erkennung räumlicher Eigenschaften für den Layer durch ArcGIS Pro zulassen in Schritt 6 ausgewählt haben, klicken Sie auf Fertig stellen, um den Abfrage-Layer der Karte hinzufügen.
  13. Die nächsten beiden Schritte gelten nur, wenn Sie die Option Räumliche Eigenschaften für den Layer definieren ausgewählt haben.

  14. Legen Sie im Abschnitt Eigenschaften der Layer-Ausdehnung die räumliche Ausdehnung des Abfrage-Layers fest, indem Sie eine der folgenden Optionen auswä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.
  15. 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.