Consumir tablas remotas o vistas con la función Base de datos vinculada
Con las conexiones de acceso a datos inteligentes de SAP HANA basadas en adaptadores ODBC, hay una forma de consumir tablas y vistas remotas que no requiere la creación de tablas virtuales. Se denomina base de datos vinculada.
Una ventaja de la función de base de datos enlazada es que reduce la actualización de objetos de base de datos en el sistema local. Puede consumir directamente tablas o vistas remotas, por ejemplo, en consultas SQL, sin crear una tabla virtual para cada una de ellas.
La base de datos vinculada solo funciona en escenarios de virtualización de datos. En una configuración en la que debe implementar la replicación de datos, debe crear tablas virtuales de la forma clásica.
Atención
- Fuentes remotas de acceso a datos inteligentes con adaptadores de API REST (por ejemplo: Amazon Athena y Google BigQuery)
- Fuentes remotas de integración de datos inteligente
En concreto, la función de base de datos vinculada está disponible entre dos sistemas SAP HANA, ya sea en la nube o local, como se muestra en la figura.

El concepto de la base de datos enlazada es que accede a un objeto (tabla o vista) en el sistema remoto haciendo referencia a él directamente en una sentencia SQL.
En esta sentencia SQL, como se muestra en la figura, la notación clásica "<schema_name>"."<object_name>" se sustituye por una notación de tres partes: "remote_source"."remote_schema"."remote_object".
Nota
Cuando accede a una tabla remota o vista con la función de base de datos vinculada, SAP HANA crea una tabla virtual oculta ubicada en el esquema _SYS_LDB.
Esta tabla virtual oculta se utiliza para almacenar los metadatos del objeto remoto y no está pensada para consultarse.
Nota
Sin embargo, hay un modo optimizado disponible para la función de base de datos vinculada cuando se despliega entre dos sistemas SAP HANA. Este modo no requiere tablas virtuales ocultas.
Cómo utilizar la función de base de datos vinculada
Para utilizar la función de base de datos vinculada, se debe conceder una autorización específica LINKED DATABASE en la fuente remota al consumidor de objetos remotos.
Nota
Inicie este vídeo para aprender a acceder a tablas y vistas remotas mediante la función de base de datos vinculada.
Base de datos vinculada: modo optimizado
En escenarios en los que los sistemas de origen y destino son bases de datos de SAP HANA (y están conectadas mediante una fuente remota de acceso a datos inteligentes de SAP HANA), es posible utilizar una versión optimizada de la función de base de datos vinculada.
En comparación con la función de base de datos vinculada estándar, esta NO crea tablas virtuales ocultas, sino que almacena en caché localmente los metadatos de los objetos remotos de los que selecciona datos. Por lo tanto, no se necesita limpieza (no hay tablas virtuales ocultas) y no es necesario actualizar las estadísticas de los objetos remotos: se obtienen automáticamente cuando es necesario.
Existen algunas limitaciones a las funciones de SAP HANA con la base de datos vinculada: modo optimizado. Consulte la nota SAP 2605574.
Cómo activar la base de datos vinculada – Modo optimizado
El modo optimizado está desactivado por defecto. Para activarla, añada una opción adicional en la cadena de configuración de su fuente remota: linkeddatabase_mode=optimized.
Este es un ejemplo de una definición de fuente remota
1234CREATE REMOTE SOURCE MY_HANA1
ADAPTER "hanaodbc"
CONFIGURATION 'Driver=libodbcHDB.so;ServerNode=myserver:30115;linkeddatabase_mode=optimized'
WITH CREDENTIAL TYPE 'PASSWORD' USING 'user=user1;password=Test1234';Actualización de artefactos de base de datos vinculados
En las fuentes remotas que NO utilizan el modo optimizado, las tablas virtuales ocultas se pueden actualizar con sentencias SQL. El objetivo es actualizarlos para mantener los metadatos sincronizados con el estado de los objetos remotos o eliminarlos cuando ya no se necesiten.
Para actualizar los metadatos, puede ejecutar una de las siguientes ALTER REMOTE SOURCEsentencias:
- Para actualizar los metadatos de todos los objetos vinculados:Code Snippet1ALTER REMOTE SOURCE <remote_source> REFRESH LINKED OBJECTS;
- Para actualizar los metadatos de un objeto individual:Code Snippet12ALTER REMOTE SOURCE <remote_source> REFRESH LINKED TABLE <remote_source>.<remote_schema>.<table_name>;
Nota
Para borrar los objetos generados internamente asociados con el acceso a la base de datos enlazada, ejecute una sentencia ALTER REMOTE SOURCE de la siguiente manera:
12ALTER REMOTE SOURCE <remote_source_name>
DROP LINKED OBJECTS [CASCADE | RESTRICT];- La sentencia sin opción elimina los objetos vinculados de los que no dependen otros objetos de base de datos, pero mantiene los objetos vinculados que tienen dependencias.
- Con la opción CASCADE, la sentencia borra todos los objetos vinculados, así como cualquier objeto de base de datos que dependa de ellos.
- Con la opción RESTRICT, la sentencia borra todos los objetos vinculados SOLO si ningún objeto de base de datos depende de ellos. Si incluso hay una dependencia individual en un único objeto vinculado, no se borrará ningún objeto vinculado.