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.
.png)
😀 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
.png)
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
.png)
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
.png)
.png)
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. 😁
.png)
¡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).
.png)
Estudiando el siguiente documento, podemos crear directamente una foreign table mediante SQL. 😁👍
Así que volvamos a la página de ejecución SQL: System Explorer > SQL
.png)
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'
.png)
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'
.png)
Comprobemos el resultado en la lista de tablas.
.png)
.png)
¡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
.png)
¡Se devuelven 35 Outlets! ¡Sí! Lo conseguimos. 🤣
Solo para vuestra referencia:
Eliminar la Foreign Table demo.outlet
DROP FOREIGN TABLE demo.outlet
.png)
Eliminar el Foreign Server Sample.testDB
DROP FOREIGN SERVER Sample.testDB CASCADE
.png)
¡Eso es todo lo que quería compartir! ¡Gracias por leer! 😘