Teradata und ArcGIS
Sie können eine Verbindung von ArcGIS mit einer Teradata Data Warehouse-Anwendung herstellen, um komplexe räumliche Analysen für Datenteilmengen durchzuführen.
Räumliche Daten werden mithilfe des Teradata-Typs "ST_Geometry" in Teradata gespeichert. ST_Geometry ist Teil der Standardinstallation von Teradata Data Warehouse.
Um eine direkte Verbindung von ArcGIS mit einer Teradata-Datenbank herzustellen, müssen Sie den Teradata GSS-Client, die ICU-Datenbank und den ODBC-Treiber auf dem ArcGIS-Client-Computer installieren. Weitere Informationen finden Sie unter Einrichten einer Verbindung zu Teradata.
Eine Liste der unterstützten Versionen von Teradata Data Warehouse und Client-Bibliotheken finden Sie unter Teradata Data Warehouse Appliance-Anwendungen für ArcGIS.
Arbeiten mit Daten
In den meisten Fällen sind in Teradata sehr große Datenmengen gespeichert. Um Analysen von ArcGIS auszuführen, verwenden Sie eine Teilmenge, die nur die für die Analyse erforderlichen Daten enthält. Sie können diese Teilmenge in einer Abfrage-Layer-Definition definieren oder eine Datenbanksicht erstellen, die nur die Datenteilmenge zurückgibt.
Wenn Sie Abfrage-Layer-Definitionen verwenden möchten, erstellen Sie die Definitionsdateien in ArcMap. Klicken Sie auf Datei > Daten hinzufügen > Abfrage-Layer hinzufügen, um das Dialogfeld Neuer Abfrage-Layer zu öffnen, stellen Sie eine Verbindung zur Datenbank her, und geben Sie die SQL-Anweisung ein, um die Datenteilmenge zu definieren.

Ziehen Sie keine Daten direkt aus der Datenbankverbindung im Fenster Katalog in ArcMap auf die Karte, wenn Sie noch keine Datenteilmenge definiert haben. Es würde extrem lange dauern, die riesigen Datenmengen, die normalerweise in einer Data Warehouse-Anwendung gespeichert sind, auf der Karte anzuzeigen.
Wenn Sie Datenbanksichten verwenden möchten, können Sie das Geoverarbeitungswerkzeug Datenbanksicht erstellen oder SQL verwenden, um die zu analysierenden Datenteilmengen zu definieren.
Richtlinien zum Verwenden von Daten aus Teradata in ArcGIS
Nachfolgend finden Sie eine Liste der Richtlinien für die Verwendung von Teradata mit ArcGIS:
- Den räumlichen Spalten in den Tabellen muss der Name shape bzw. der Alias shape in einer Ansicht zugewiesen werden.
Der zugrunde liegende Speicher für den Teradata-Typ "ST_Geometry" ist CLOB. Daher kann ArcGIS nur anhand des Namens oder Alias der Spalte (shape) feststellen, dass in der Spalte räumliche Daten gespeichert sind.
- Sie müssen die von Teradata bereitgestellten Mosaik-Funktionen verwenden, um einen räumlichen Index in der Teradata-Spalte "ST_Geometry" zu erstellen und zu verwalten.
Der räumliche Mosaik-Index ist für die Verwendung mit einem vordefinierten Interessenbereich vorgesehen. Daher kann der Mosaik-Index nicht von räumlichen ArcGIS-Vorgängen wie Verkleinern, Vergrößern und Schwenken verwendet werden, die auf dynamischen Eingaben basieren. Der Mosaik-Index kann jedoch in einem Abfrage-Layer verwendet werden, wenn die zum Definieren des Abfrage-Layers verwendete SQL-Anweisung den Mosaik-Index explizit verwendet, um eine Teilmenge von Daten auf Grundlage eines Interessenbereichs abzufragen.
- ArcGIS erfordert ein eindeutiges Kennungsfeld zum Rendern von Features in einer Karte. Wenn Sie der Karte eine räumliche Tabelle hinzufügen, werden Sie aufgefordert, dieses eindeutige ID-Feld anzugeben.
ArcGIS-Werkzeuge fügen keine neuen Werte in die eindeutigen ID-Felder einer Datenbank ein, sie sind vielmehr darauf angewiesen, dass die Werte von der Datenbank in das Feld eingefügt werden. Da Teradata über keinen Datentyp oder integrierten Mechanismus verfügt, um ID-Felder mit Werten zu füllen, können ArcGIS-Werkzeuge, die neue Zeilen in einer Datenbanktabelle erstellen, nicht mit Teradata verwendet werden.
- Als Teradata-Benutzer ist Ihnen bekannt, dass der Teradata-Typ "ST_Geometry" nur zweidimensionale räumliche Daten unterstützt. Aus diesem Grund können räumliche Daten, die Z- oder M-Koordinaten enthalten, nicht in Teradata eingefügt werden.
- Wenn Sie ArcGIS verwenden, um der Teradata-Datenbank eine Feature-Class hinzuzufügen, und der von Ihnen angegebene Raumbezug für die Feature-Class nicht in der Teradata-Systemtabelle enthalten ist, fügt ArcGIS der Tabelle "SPATIAL_REF_SYS" einen Datensatz und damit die "GEOMETRY_COLUMNS"-Tabelle hinzu.
Dadurch können Sie mehr Raumbezüge verwenden als standardmäßig von Teradata bereitgestellt werden. Aktualisierungen auf Hauptversionen von Teradata können diese Tabellen jedoch löschen und neu erstellen, wobei sie jedoch lediglich Standardwerte enthalten.
Bevor Sie eine Aktualisierung durchführen, sollten Sie stets eine Sicherungskopie der Datenbank anlegen. Stellen Sie sicher, dass sie die Daten in diesen Tabellen enthält, damit sie nach einer Teradata-Aktualisierung bei Bedarf wiederhergestellt werden können. Sie können die folgenden allgemeinen Schritte ausführen, um die Datensätze "SPATIAL_REF_SYS" und "GEOMETRY_COLUMNS" während einer Datenbankaktualisierung zu sichern und wiederherzustellen:
- Erstellen Sie eine Sicherungskopie der Datenbank.
- Stellen Sie eine Verbindung mit einer Datenbank her, in der Sie Kopien der Tabellen "SPATIAL_REF_SYS" und "GEOMETRY_COLUMNS" ablegen.
In diesem Beispiel lautet der Name der Datenbank mybackupdb.
database mybackupdb;
- Erstellen Sie Sicherungskopien der Tabellen.
In diesem Beispiel befinden sich die Quelltabellen in der Datenbank sysspatial.
CREATE TABLE mybackupdb.spatial_ref_sys AS sysspatial.spatial_ref_sys WITH DATA; CREATE TABLE mybackupdb.geometry_columns AS sysspatial.geometry_columns WITH DATA;
- Aktualisieren Sie die Teradata-Datenbank.
- Stellen Sie eine Verbindung mit der Datenbank her, in die Sie die Tabellen kopiert haben.
- Stellen Sie die Tabellen in der aktualisierten Datenbank wieder her.
--Restore the geometry columns table. INSERT INTO sysspatial.geometry_columns SELECT * FROM mybackupdb.geometry_columns; --Restore the spatial_ref_sys table. INSERT INTO sysspatial.spatial_ref_sys SELECT * FROM mybackupdb.spatial_ref_sys MINUS SELECT * FROM sysspatial.spatial_ref_sys;
- Nachdem Sie den Inhalt der Tabellen wiederhergestellt haben, können Sie die Sicherungskopien der Tabellen löschen.
DROP TABLE mybackupdb.spatial_ref_sys; DROP TABLE mybackupdb.geometry_columns;