Accessing Remote Tables using the Linked Database Feature

Objective

After completing this lesson, you will be able to acceda a tablas remotas sin crear tablas virtuales.

Base de datos vinculada

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

NO se admiten los siguientes casos de uso:
  • 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.

Esta diapositiva explica la función de la base de datos vinculada.

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

En comparación con el identificador de cuatro partes de una tabla virtual, no hay ninguna parte "<database_name>" en el identificador de objeto remoto.

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

Esto es tanto más esencial cuanto que no hay un objeto virtual (real) en el que se puedan conceder privilegios individuales como SELECT, INSERT, etc., solo a los usuarios que necesitan acceso.

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

Code Snippet
1234
CREATE 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 Snippet
    1
    ALTER REMOTE SOURCE <remote_source> REFRESH LINKED OBJECTS;
  • Para actualizar los metadatos de un objeto individual:
    Code Snippet
    12
    ALTER REMOTE SOURCE <remote_source> REFRESH LINKED TABLE <remote_source>.<remote_schema>.<table_name>;

Nota

El privilegio LINKED DATABASE es necesario para ejecutar estas sentencias.

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:

Code Snippet
12
ALTER 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.