Dauerhaft virtuelle Daten in temporären Tabellen
Eine temporäre Tabelle ist eine Tabelle in einer relationalen Datenbank, die temporäre Zwischendaten speichert. Komplexe Abfragen erfordern allgemein Speicherplatz für große Zwischendatenmengen, z. B. Informationen von Joins. Wenn Sie temporäre Tabellen implementieren, können Business Intelligence-Tools diese Daten aus der temporären Tabelle anstelle des SQL-Datendienstes abrufen. Dies führt zu einer besseren Leistung.
Temporäre Tabellen bieten außerdem auf zweierlei Weise eine höhere Sicherheit. Erstens: Nur der Benutzer der aktiven Sitzung kann auf die Tabellen zugreifen. Außerdem werden die Tabellen beibehalten, wenn eine Sitzung aktiv ist, und die Datenbank löscht die Tabellen, wenn die Verbindung geschlossen wird.
Sie müssen die Verbindungseigenschaft für den Tabellenspeicher des Datenintegrationsdiensts konfigurieren, bevor der Datenbankadministrator eine temporäre Tabelle erstellt.
Temporäre Tabellen für alle SQL-Datendienste in einem Datenintegrationsdienst verwenden die gleiche relationale Datenbankverbindung. Wenn die Verbindung zum SQL-Datendienst aktiv ist, können Sie die Verbindung durch einen JDBC- oder ODBC-Client herstellen. Die relationale Datenbank löscht die temporären Tabellen, wenn die Sitzung beendet wird. Wenn der Datenintegrationsdienst unerwartet heruntergefahren wird, löscht die relationale Datenbank die temporären Tabellen beim nächsten Start des Datenintegrationsdiensts.
Implementierung temporärer Tabellen
Sie können Zwischen-Abfrageergebnissatzdaten in temporären Tabellen speichern, wenn komplexe Abfragen große Mengen an temporären Daten erstellen. Beispiel: Temporäre Tabellen können häufig verwendete Join-Ergebnisse speichern. Business Intelligence-Tools können die temporäre Tabelle anstelle des SQL-Datendiensts abfragen, wodurch die Leistung verbessert wird.
Zum Implementieren von temporären Tabellen führen der Informatica Administrator und Business Intelligence-Tool-Benutzer die folgenden Aufgaben durch:
- Schritt 1. Der Informatica Administrator erstellt eine Verbindung für den Datenintegrationsdienst.
- Im Administrator-Tool erstellen Sie eine Verbindung zum SQL-Datendienst. Bearbeiten Sie die SQL-Eigenschaften des Datenintegrationsdiensts und wählen Sie eine relationale Datenbankverbindung für die Eigenschaft Tabellenspeicherverbindung. Verwenden Sie den Dateninformationsdienst wieder.
- Schritt 2. Der Business Intelligence-Tool-Benutzer erstellt eine Verbindung für den SQL-Datendienst.
- In einem Business Intelligence-Tool erstellen Sie eine Verbindung zum SQL-Datendienst. Die Verbindung verwendet die Informatica ODBC- oder JDBC-Treiber.
- Schritt 3. Abfragen aus dem Business Intelligence-Tool erstellen und verwenden temporäre Tabellen.
- Während die Verbindung aktiv ist, gibt das Business Intelligence-Tool Abfragen zum SQL-Datendienst aus. Diese Abfragen erstellen und verwenden temporäre Tabellen für die Speicherung großer Datenmengen, die durch die komplexe Abfrage erzeugt werden. Wenn die Verbindung endet, löscht die Datenbank die temporäre Tabelle.
Vorgänge mit temporären Tabellen
Nach dem Erstellen der SQL-Datendienstverbindung können Sie SQL-Vorgänge verwenden, um eine temporäre Tabelle zu erstellen, zu füllen oder zu entfernen bzw. etwas aus einer temporären Tabelle auszuwählen. Sie können diese Befehle in einer normalen oder gespeicherten SQL-Anweisung ausgeben.
Sie können die folgenden Vorgänge durchführen:
- Temporäre Tabelle erstellen.
- Zum Erstellen einer temporären Tabelle in der relationalen Datenbank verwenden Sie die folgende Syntax:
CREATE TABLE emp (empID INTEGER PRIMARY KEY,eName char(50) NOT NULL,)
- Sie können den Tabellennamen im SQL-Datendienst auswählen.
HINWEIS: Verwenden Sie CREATE TABLE, nicht CREATE TEMPORARY TABLE. Die Verwendung von CREATE TEMPORARY TABLE wird nicht unterstützt.
- Temporäre Tabelle aus einer Quellentabelle erstellen.
- Sie können eine temporäre Tabelle mit oder ohne Daten aus der Quellentabelle erstellen.
Die folgende Syntax wird in der Informatica Data Services-Version 9.5.1 unterstützt:
CREATE TABLE emp.backup as select * from emp
Wobei emp ein vorhandenes Schema im SQL-Datendienst ist, mit dem Sie verbunden sind.
Die folgende Syntax wird in der Informatica Data Services-Version 9.6.0 und 9.6.1 unterstützt:
CREATE TABLE emp.backup as select * from emp [ [LIMIT n] ]
Wobei emp ein vorhandenes Schema im SQL-Datendienst ist, mit dem Sie verbunden sind.
Wenn Sie eine temporäre Tabelle mit Daten erstellen, befüllt der Datenintegrationsdienst die Tabelle mit den Daten. Der Operator CREATE AS kopiert die Spalten aus einer Datenbank-Tabelle in die temporäre Tabelle.
Sie können die Beschränkungen des Fremd- oder Primärschlüssels nicht beibehalten, wenn Sie CREATE AS verwenden.
Sie können eine Anfrage jederzeit abbrechen, ehe der Datenintegrationsdienst alle Daten kopiert hat.
HINWEIS: Der Informatica Administrator muss eine Verbindung erstellen und diese anschließend in SQL-Eigenschaften als Tabellenspeicherverbindung konfigurieren, bevor Sie die temporäre Tabelle erstellen.
- Daten in eine temporäre Tabelle einfügen.
- Zum Einfügen von Daten in eine temporäre Tabelle verwenden Sie die Anweisung INSERT INTO <temp_table>. Es lassen sich Literaldaten und Abfragedaten in eine temporäre Tabelle einfügen.
Die folgende Tabelle enthält Beispiele von SQL-Anweisungen, die Sie zum Einfügen von Literaldaten und Abfragedaten in eine temporäre Tabelle verwenden können:
Typ | Beschreibung |
|---|
Literaldaten | Literale sind von einem Benutzer oder System gelieferte Zeichenketten, bei denen es sich nicht um einen Bezeichner oder ein Schlüsselwort handelt. Sie können Strings, Zahlen, Datumsangaben oder boolesche Werte verwenden, wenn Sie Literale in eine temporäre Tabelle einfügen. Verwenden Sie die folgende Anweisung, um Literaldaten in eine temporäre Tabelle einzufügen: INSERT INTO <TABLENAME> <OPTIONAL COLUMN LIST> VALUES (<VALUE LIST>), (<VALUE LIST>) Zum Beispiel: INSERT INTO temp_dept (dept_id, dept_name, location) VALUES (2, 'Marketing', 'Los Angeles'). |
Abfragedaten | Sie können einen SQL-Datendienst abfragen und die Daten aus der Abfrage in eine temporäre Tabelle einfügen. Verwenden Sie das folgende Anweisungsformat, um Abfragedaten in eine temporäre Tabelle einzufügen: INSERT INTO <TABLENAME> <OPTIONAL COLUMN LIST> <SELECT QUERY> Zum Beispiel: INSERT INTO temp_dept(dept_id, dept_name, location) SELECT dept_id, dept_name, location from dept where dept_id = 99. Sie können auch einen Mengenoperator wie UNION in der SQL-Anweisung verwenden, wenn Sie Abfragedaten in eine temporäre Tabelle einfügen. Verwenden Sie das folgende Anweisungsformat, wenn Sie einen Mengenoperator benutzen: INSERT INTO <TABLENAME> <OPTIONAL COLUMN LIST> (<SELECT QUERY> <SET OPERATOR> <SELECT QUERY>) Zum Beispiel: INSERT INTO temp_dept select * from north_america_dept UNION select * from asia_dept. |
- Daten aus temporärer Tabelle auswählen
Sie können die temporäre Tabelle mit der Anweisung SELECT ... von <Tabelle> abfragen.
- Temporäre Tabelle löschen.
Um eine temporäre Tabelle aus der relationalen Datenbank zu entfernen, verwenden Sie die folgende Syntax:
DROP TABLE <tableName>
Wenn die Tabelle nicht aus der physischen Datenbank entfernt wurde, löscht der SQL-Datendienst diese beim nächsten Start des Datenintegrationsdienst, sofern sie noch vorhanden ist.
Regeln und Richtlinien für temporäre Tabellen
Berücksichtigen Sie die folgenden Regeln und Richtlinien bei der Erstellung und Verwendung von temporären Tabellen:
- •Sie können die Schemas und das Standardschema für eine temporäre Tabelle angeben.
- •Sie können den Primärschlüssel, NULL-, NOT NULL- und DEFAULT-Beschränkungen in einer temporären Tabelle definieren.
- •Sie können keine Fremdschlüssel oder CHECK- und UNIQUE-Beschränkungen in einer temporären Tabelle platzieren.
- •Sie können keine Abfrage gegen eine temporäre Tabelle ausführen, die einen allgemeinen Tabellenausdruck enthält oder eine korrelierte Unterabfrage gegen eine temporäre Tabelle starten.
- •CREATE AS-Anweisungen dürfen keine korrelierte Unterabfrage enthalten.