Artículo
· 18 hr atrás Lectura de 3 min

Crear tablas externas usando SQL a través de JDBC

Hola a todos. De nuevo, me gustaría compartir lo que estoy estudiando recientemente: crear tablas externas usando SQL a través de JDBC.

Como estoy aprendiendo sobre IRIS BI al mismo tiempo, empecé con este entorno docker de Sample-BI.

https://github.com/intersystems/Samples-BI

 

Después de iniciar el entorno, iniciad sesión en el portal de administración en http://localhost:52773/csp/sys/UtilHome.csp con el usuario Superuser.

Cambiad el namespace a IRISAPP.

 

😀 Veremos que todos los datos de ejemplo están almacenados en este namespace IRISAPP. Busquemos una tabla sencilla para probar la función de Foreign Table 🤣

System Explorer > SQL

 

Probemos la tabla HoleFoods.Outlet ejecutando la siguiente consulta SQL en la pestaña Execute Query.

SELECT
ID, City, Country, Latitude, Longitude, Population, Type
FROM HoleFoods.Outlet

 

Genial!! 😉 Hay 35 registros en esta tabla. Usemos esta.

 


Paso 1 - Configurar la conexión JDBC

Estudiando el siguiente documento, la base de datos InterSystems IRIS puede conectarse por JDBC de la siguiente manera:

Using the SQL Gateway as a JDBC Data Source

Así que usemos el namespace IRISAPP como la base de datos origen JDBC para las pruebas y configuremos una conexión para ello.

Añadid una nueva conexión en System > Configuration > SQL Gateway Connections

 

Introducid lo siguiente:

Connection name  testjdbc
User superuser
Password {vuestra propia contraseña}
Driver name com.intersystems.jdbc.IRISDriver
URL  jdbc:IRIS://127.0.0.1:1972/IRISAPP

Dejad Class path en blanco en este caso, porque estáis conectando a la base de datos InterSystems IRIS. Si os conectáis a una base de datos de terceros, recordad descargar el archivo del controlador JDBC (.jar) y especificar la ruta del controlador en el campo Class path.

Guardad y probad la conexión. Debería conectarse correctamente. 😁

¡Sí! 🎉 Hemos terminado el primer paso.

 


Paso 2 - Crear la Foreign Table

Ahora cambiad al namespace USER, que no contiene la tabla HoleFoods.Outlet. 😉

Aquí queremos consultar esta tabla externa HoleFoods.Outlet utilizando la función de Foreign Table. (En InterSystems IRIS, distintos namespaces pueden configurarse para apuntar a bases de datos diferentes. En este ejemplo, el namespace IRISAPP y el namespace USER apuntan a bases de datos distintas. Como resultado, no podemos consultar la tabla del namespace IRISAPP directamente desde el namespace USER).

 

Estudiando el siguiente documento, podemos crear directamente una foreign table mediante SQL. 😁👍

Foreign Tables

Así que volvamos a la página de ejecución SQL: System Explorer > SQL

 

1. Definir un Foreign Server

Ahora vamos a definir un Foreign Server llamado Sample.testDB con el siguiente SQL. testjdbc es el nombre que definimos en la conexión JDBC del SQL Gateway en el paso anterior.

CREATE FOREIGN SERVER Sample.testDB FOREIGN DATA WRAPPER JDBC CONNECTION 'testjdbc'

 

 

2. Definir una Foreign Table

Ahora vamos a definir una Foreign Table llamada demo.outlet, que apunta a la tabla HoleFoods.Outlet a través del gateway JDBC.

 

CREATE FOREIGN TABLE demo.outlet SERVER Sample.testDB TABLE 'HoleFoods.Outlet'

Comprobemos el resultado en la lista de tablas.

¡Sí! 🎉 Se ha creado la Foreign Table demo.outlet. Oooh, y el esquema se ha leído y creado automáticamente 😂 Qué alegría.

 


Finalmente, probad la Foreign Table ejecutando el siguiente SQL

SELECT * FROM demo.outlet

 

 

¡Se devuelven 35 Outlets! ¡Sí! Lo conseguimos. 🤣

 


Solo para vuestra referencia:

Eliminar la Foreign Table demo.outlet

DROP FOREIGN TABLE demo.outlet

 

 

Eliminar el Foreign Server Sample.testDB

DROP FOREIGN SERVER Sample.testDB CASCADE

 

¡Eso es todo lo que quería compartir! ¡Gracias por leer! 😘

Comentarios (0)1
Inicie sesión o regístrese para continuar