Conservación de datos virtuales en tablas temporales
Una tabla temporal es una tabla de una base de datos relacional que almacena datos temporales e intermedios. Las consultas complejas con frecuencia requieren almacenamiento para grandes cantidades de datos intermedios, como información de combinaciones. Al implementar tablas temporales, las herramientas de inteligencia empresarial pueden recuperar estos datos de la tabla temporal en lugar del servicio de datos SQL. De esta forma, aumenta el rendimiento.
Las tablas temporales también proporcionan una mayor seguridad de dos maneras. En primer lugar, solo el usuario de la sesión activa puede acceder a las tablas. Asimismo, las tablas persisten mientras una sesión está activa, y la base de datos elimina las tablas cuando la conexión se cierra.
Debe configurar la propiedad de conexión de almacenamiento de tablas del servicio de integración de datos antes de que el administrador de la base de datos cree una tabla temporal.
Las tablas temporales para todos los servicios de datos SQL en un servicio de integración de datos utilizan la misma conexión de base de datos relacional. Cuando la conexión con el servicio de datos SQL está activa, puede conectarse al servicio de datos SQL mediante un cliente JDBC u ODBC. La base de datos relacional elimina las tablas temporales cuando la sesión finaliza. Si el servicio de integración de datos se cierra inesperadamente, la base de datos relacional elimina las tablas temporales la siguiente vez que se inicia el servicio de integración de datos.
Implementación de tablas temporales
Puede almacenar datos de conjuntos de resultados de consulta intermedios en tablas temporales cuando consultas complejas produzcan grandes cantidades de datos intermedios. Por ejemplo, las tablas temporales pueden almacenar resultados de combinación de uso frecuente. Las herramientas de inteligencia empresarial pueden consultar la tabla temporal en lugar del servicio de datos SQL, lo que mejora el rendimiento.
Para implementar las tablas temporales, el administrador de Informatica y el usuario de la herramienta de inteligencia empresarial realizan las siguientes tareas independientes:
- Paso 1. El administrador de Informatica crea una conexión para el servicio de integración de datos.
- En la Herramienta del administrador, cree una conexión al servicio de datos SQL. Edite las Propiedades de SQL del Servicio de integración de datos y seleccione una conexión de base de datos relacional para la propiedad Conexión de almacenamiento de tablas. Recicle el servicio de información de datos.
- Paso 2. El usuario de la herramienta de inteligencia empresarial crea una conexión para el servicio de datos SQL.
- En una herramienta de inteligencia empresarial, cree una conexión al servicio de datos SQL. La conexión utiliza el controlador ODBC o JDBC de Informatica.
- Paso 3. Las consultas de la herramienta de inteligencia empresarial crean y utilizan tablas temporales.
- Mientras la conexión está activa, la herramienta de inteligencia empresarial realiza consultas al servicio de datos SQL. Estas consultas crean y utilizan tablas temporales para almacenar las grandes cantidades de datos que genera la consulta compleja. Cuando la conexión finaliza, la base de datos quita la tabla temporal.
Operaciones de tablas temporales
Después de crear la conexión al servicio de datos SQL, puede utilizar operaciones de SQL para crear, rellenar, seleccionar o quitar una tabla temporal. Puede emitir estos comandos en una instrucción SQL almacenada o normal.
Puede realizar las siguientes operaciones:
- Crear una tabla temporal.
- Para crear una tabla temporal en la base de datos relacional, utilice la siguiente sintaxis:
CREATE TABLE emp (empID INTEGER PRIMARY KEY,eName char(50) NOT NULL,)
- Puede especificar el nombre de tabla en el servicio de datos SQL.
Nota: Use CREATE TABLE, en lugar de CREATE TEMPORARY TABLE. El uso de CREATE TEMPORARY TABLE no se admite.
- Crear una tabla temporal a partir de una tabla de origen.
- Puede crear una tabla temporal con o sin datos a partir de una tabla de origen.
La siguiente sintaxis se admite en la versión 9.5.1 de Informatica Data Services:
CREATE TABLE emp.backup as select * from emp
Donde emp es un esquema existente en el servicio de datos SQL al que está conectado.
La siguiente sintaxis se admite en las versiones 9.6.0 y 9.6.1 de Informatica Data Services:
CREATE TABLE emp.backup as select * from emp [ [LIMIT n] ]
Donde emp es un esquema existente en el servicio de datos SQL al que está conectado.
Cuando se crea una tabla temporal con datos, el Servicio de integración de datos rellena la tabla con los datos. El operador CREATE AS copia las columnas de una tabla de base de datos en la tabla temporal.
No se pueden mantener las restricciones de clave externa o de clave principal cuando se usa CREATE AS.
Puede cancelar una solicitud antes de que el Servicio de integración de datos copie todos los datos.
Nota: El administrador de Informatica debe crear una conexión y, a continuación, configurarla en Propiedades de SQL como Conexión de almacenamiento de tablas antes de crear la tabla temporal.
- Insertar datos en una tabla temporal.
- Para insertar datos en una tabla temporal, utilice la instrucción INSERT INTO <tabla_temp>. Puede insertar datos literales y datos de consulta en una tabla temporal.
En la siguiente tabla se muestran ejemplos de instrucciones SQL que puede usar para insertar datos literales y datos de consulta en una tabla temporal:
Tipo | Descripción |
---|
Datos literales | Describen una cadena de usuario o suministrada por el sistema, o un valor que no es ni un identificador ni una palabra clave. Utilice las cadenas, números, fechas o valores booleanos al insertar datos literales en una tabla temporal. Utilice el siguiente formato de instrucción para insertar datos literales en una tabla temporal: INSERT INTO <TABLENAME> <OPTIONAL COLUMN LIST> VALUES (<VALUE LIST>), (<VALUE LIST>) Por ejemplo, INSERT INTO temp_dept (dept_id, dept_name, ubicación) VALUES (2, 'Márketing', 'Los Ángeles'). |
Datos de la consulta | Puede consultar un servicio de datos SQL e insertar datos de la consulta en una tabla temporal. Utilice el siguiente formato de instrucción para insertar los datos de consulta en una tabla temporal: INSERT INTO <TABLENAME> <OPTIONAL COLUMN LIST> <SELECT QUERY> Por ejemplo, INSERT INTO temp_dept(dept_id, dept_name, ubicación) SELECT dept_id, dept_name, ubicación desde el dept donde dept_id = 99. Puede utilizar un operador de conjunto, como UNION, en la instrucción SQL al insertar los datos de la consulta en una tabla temporal. Utilice el siguiente formato de instrucción cuando utilice un operador de conjunto: INSERT INTO <TABLENAME> <OPTIONAL COLUMN LIST> (<SELECT QUERY> <SET OPERATOR> <SELECT QUERY>) Por ejemplo, INSERT INTO temp_dept select * from north_america_dept UNION select * from asia_dept. |
- Seleccionar de una tabla temporal.
Puede consultar la tabla temporal con la instrucción SELECT ... from <tabla>.
- Quitar una tabla temporal.
Para eliminar una tabla temporal en la base de datos relacional, utilice la siguiente sintaxis:
DROP TABLE <tableName>
Si la tabla no se ha descartado en la base de datos física, el servicio de datos SQL quita la tabla la próxima vez que el Servicio de integración de datos se inicie, si la tabla aún existe.
Reglas y directrices para las tablas temporales
Tenga en cuenta las siguientes reglas y directrices para la creación y el uso de tablas temporales:
- •Puede especificar esquema y esquema predeterminado para una tabla temporal.
- •Puede poner la clave principal, NULL, NOT NULL y restricciones DEFAULT en una tabla temporal.
- •No se puede reemplazar una clave externa o restricciones CHECK y UNIQUE en una tabla temporal.
- •No se puede emitir una consulta que contenga una expresión de tabla común o una subconsulta correlacionada en una tabla temporal.
- •Las instrucciones CREATE AS no pueden contener una subconsulta correlacionada.