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, existe 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 vinculada es que reduce la actualización de los 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 API REST (por ejemplo: Amazon Athena y Google BigQuery)
- Fuentes remotas de integración de datos inteligentes
En particular, la función de base de datos vinculada está disponible entre dos sistemas SAP HANA, en la nube u on-premise, como se muestra en la figura.

El concepto de la base de datos vinculada es que se 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
Al acceder a una tabla o vista remota 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, existe 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 un privilegio específico 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 fuente y destino son bases de datos SAP HANA (y 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 es necesario realizar tareas periódicas (no hay tablas virtuales ocultas) ni 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 de forma predeterminada. Para activarla, añada una opción adicional en el string 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 sean necesarios.
Para actualizar los metadatos, puede ejecutar una de las siguientes instrucciones ALTER REMOTE SOURCE:
- 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 vinculado, 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 borra los objetos enlazados de los que no dependen otros objetos de base de datos pero mantiene los objetos enlazados que tienen dependencias.
- Con la opción CASCADE, la sentencia borra todos los objetos enlazados, así como cualquier objeto de base de datos que dependa de ellos.
- Con la opción RESTRICT, la sentencia borra todos los objetos enlazados SOLO si ningún objeto de base de datos depende de ellos. Si existe incluso una dependencia individual en un único objeto enlazado, no se borrará ningún objeto enlazado.