Acceso a tablas remotas mediante la función Base de datos vinculada

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, 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

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

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

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

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

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

Esto es aún más esencial, ya que no hay un objeto virtual (real) en el que los privilegios individuales como SELECT, INSERT, etc., solo se puedan dar 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 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

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 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 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 enlazada, 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 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.