Uso de Cloud SQL con Big Data

Puede utilizar Oracle Cloud SQL con Oracle Big Data.

Nota:

Cloud SQL no se incluye con Big Data. Debe pagar un cargo adicional por el uso de Cloud SQL. Consulte Adición de Cloud SQL.

Visión general de Cloud SQL

Oracle Cloud SQL soporta consultas de datos no relacionales almacenados en varios orígenes de datos grandes, incluidos Apache Hive, HDFS, Oracle NoSQL Database, Apache Kafka, Apache HBase y otros almacenes de objetos (Oracle Object Store y S3). Permite la consulta unificada de datos distribuidos y, por lo tanto, la capacidad de ver y analizar datos de almacenes de datos diferentes sin problemas, como si todos estuvieran almacenados en una base de datos Oracle.

Cloud SQL proporciona un servidor de consultas que permite ejecutar sentencias SQL de Oracle complejas con respecto a los datos del ecosistema de Hadoop, ya sea manualmente o a través de sus aplicaciones.

Cloud SQL proporciona mejoras en las tablas externas de Oracle especialmente diseñadas para el procesamiento de ampliación. Una tabla externa es un objeto de Oracle Database que identifica y describe la ubicación de los datos fuera de una base de datos. Puede consultar una tabla externa con la misma sintaxis SELECT de SQL que utiliza para cualquier otra tabla de base de datos.

Las tablas externas utilizan controladores de acceso para analizar los datos fuera de la base de datos. Cada tipo de datos externos necesita un controlador de acceso exclusivo. Cloud SQL incluye tres controladores de acceso para Big Data. Existen controladores para:

  • Datos con metadatos definidos en Apache Hive

  • Datos de acceso almacenados en HDFS, con los metadatos especificados solo por un administrador de datos de Oracle

  • Acceso a los datos almacenados en los almacenes de objetos, de nuevo con los metadatos especificados solo por un administrador de datos de Oracle

Cloud SQL define automáticamente las tablas externas para los metadatos definidos en Hive Metastore. Los esquemas de Oracle Database se crean para las bases de datos de Hive, y las tablas externas se crean para las tablas de Hive.

Si el cluster de Big Data utiliza Cloudera Distribution con Hadoop, se utilizan las políticas de autorización Sentry de Cloudera para controlar el acceso a los datos.

Componentes de un despliegue de Cloud SQL

La arquitectura de Cloud SQL consta de Cloud SQL Query Server, un motor de consultas compatible con Oracle Database 19c que funciona conjuntamente con los procesos de Cloud SQL (conocidos como celdas de Cloud SQL), que se ejecuta en los nodos de trabajador del cluster de Big Data Service. El servidor de consultas se instala en su propio nodo de Big Data Service.

Puesto que los datos de HDFS se almacenan en un formato indeterminado, las consultas SQL necesitan que algunas construcciones analicen e interpreten datos para que se procesen en filas y columnas. Cloud SQL aprovecha las construcciones de Hadoop disponibles para hacerlo, especialmente las clases InputFormat y SerDe de Java, opcionalmente mediante las definiciones de metadatos de Hive. Las celdas de procesamiento de Cloud SQL de los nodos de datos son una capa superior de esta infraestructura de Hadoop genérica. Hay tres funciones clave proporcionadas por las celdas: exploración inteligente, índices de almacenamiento y descarga de agregación. Consulte Procesamiento de consultas de Cloud SQL para obtener más información sobre ellas.

Acerca del servidor de consultas de Cloud SQL

Oracle Cloud SQL Query Server es una instancia de Oracle Database que se proporciona cuando instala Cloud SQL en Oracle Big Data Service.

Puede utilizar el servidor de consultas de Cloud SQL para consultar los datos almacenados en el cluster (en los formatos HDFS y Hive) con las tablas externas de Oracle. Esto permite aprovechar las capacidades de SQL completas que proporciona Oracle Database.

El servidor de consultas define automáticamente las tablas externas en función de los metadatos de Hive Metastore. También puede definir tablas externas adicionales con los controladores de acceso ORACLE_HDFS, ORACLE_HIVE u ORACLE_BIGDATA. En el caso anterior, las bases de datos de Hive se asignan a esquemas de Oracle Database y las tablas de Hive correspondientes se definen como tablas externas de Oracle en dichos esquemas. Todas las autorizaciones de datos se basan en reglas de autorización de Hadoop, como Apache Sentry para clusters que utilizan Cloudera Distribution de Hadoop (CDH) o las listas de control de acceso (ACL) de HDFS.

El servidor de consultas de Cloud SQL soporta la definición de tablas y vistas externas; no soporta el almacenamiento de datos. Al reiniciar el servidor de consultas, se restaura la base de datos a un estado limpio. Conserva las tablas externas (tipos ORACLE_HIVE, ORACLE_HDFS y ORACLE_BIGDATA), las estadísticas asociadas, las vistas definidas por el usuario y las credenciales. Un reinicio suprime las tablas normales que contienen datos de usuario.

Para instalar el servidor de consultas, debe especificar Cloud SQL como una opción en Big Data Service mediante la consola de servicio. El servidor de consultas crea automáticamente las tablas externas de Oracle correspondientes a las tablas de las bases de datos de Hive Metastore a fin de que estén listas para la realización de consultas. El juego de tablas externas de Query Server se puede actualizar automáticamente con las tablas de Hive Metastore correspondientes ejecutando los comandos Restart this Cloud SQL Query Server o Synchronize Hive Databases en el software de gestión Apache Ambari o Cloudera Manager. También puede utilizar el procedimiento de paquete de la API de PL/SQL dbms_bdsqs.sync_hive_databases.

Términos y conceptos importantes

Es útil saber un poco sobre los nodos de límite, los nodos de celda y la integración de cluster de Hadoop. Estos términos son fundamentales para comprender Oracle Cloud SQL Query Server.

Nodos de límite
Un nodo de límite en un cluster de Hadoop es la interfaz entre el cluster de Hadoop y la red externa. Normalmente, los nodos de límite se utilizan para ejecutar aplicaciones cliente. Los nodos de límite pueden actuar como un gateway de datos al proporcionar acceso a HDFS mediante NFS o HttpFS, o mediante la ejecución de servidores de REST. El nodo de servidor de consultas se puede considerar como un nodo de límite para Oracle Big Data Service. Los datos Hadoop no se almacenan ni el procesamiento tiene lugar en este nodo.
Nodos de celda

Las celdas de Cloud SQL se ejecutan en nodos de datos y permiten que algunas partes del procesamiento de consultas se transfieran a los nodos de datos del cluster de Hadoop en el que residen los datos. Esto garantiza tanto la distribución de la carga como la reducción del volumen de datos que se deben enviar a la base de datos para su procesamiento. Esto puede mejorar significativamente el rendimiento en las cargas de trabajo de Big Data.

Integración con cluster de Hadoop

Cloud SQL incluye los siguientes tres roles de servicio que puede gestionar en Apache Ambari o Cloudera Manager:

  • Servidor de consultas de Cloud SQL: permite ejecutar consultas SQL en el cluster de Hadoop. Las aplicaciones se conectan a este servidor mediante JDBC o SQL*Net.
  • Agente de Cloud SQL: gestiona la instalación de Cloud SQL.
  • Servidor de Cloud SQL: también se conoce como las celdas de Cloud SQL y permite que algunas partes del procesamiento de consultas se transfieran a los nodos DataNodes del cluster de Hadoop en los que residen los datos.

Especificación de las bases de datos de Hive que se van a sincronizar con Query Server

Puede controlar las bases de datos de Hive que se sincronizarán con Oracle Cloud SQL Query Server. Esto puede ser especialmente importante si tiene un gran número de bases de datos y tablas de Hive, pero solo necesita acceso SQL a algunas de ellas. Si hay menos bases de datos y tablas, la sincronización de metadatos de Hive es más rápida con el servidor de consultas.

Nota

Cloud SQL Query Server no tiene como objetivo almacenar datos internos en tablas de Oracle. Cada vez que se reinicia el servidor de consultas, se restablece al estado inicial y limpio. Esto elimina un mantenimiento normal de la base de datos, como la gestión de almacenamiento, la configuración de la base de datos, etc. El objetivo del servidor de consultas es proporcionar un front-end SQL para los datos en Hadoop, almacenes de objetos, Kafka y bases de datos NoSQL. El servidor de consultas no es un RDBMS de uso general.
Uso de Apache Ambari

En Apache Ambari, actualice el parámetro de configuración Synchronized Hive Databases con una lista separada por comas de bases de datos de Hive. Se recomienda si no planea acceder a todas las bases de datos de Hive desde el servidor de consultas. Para sincronizar todas las bases de datos de Hive en Metastore con Query Server, utilice el carácter comodín *.

Puede actualizar la lista de bases de datos de Hive para sincronizarla con Query Server mediante el parámetro de configuración Synchronized Hive Databases en Apache Ambari de la siguiente manera.

  1. Inicie sesión en Apache Ambari con sus credenciales de conexión.

  2. En Apache Ambari, haga clic en Cloud SQL en Services en la barra de herramientas lateral.

  3. Haga clic en el separador Configs.

  4. Amplíe el separador Advanced metadata-sync.

  5. En el cuadro de texto Synchronized Hive Databases, introduzca los nombres de las bases de datos de Hive separadas por comas. Por ejemplo: htdb0,htdb1

  6. Haga clic en Guardar.

Uso de Cloudera Manager

En Cloudera Manager, actualice el parámetro de configuración sync_hive_db_list con una lista separada por comas de bases de datos de Hive. Se recomienda si no planea acceder a todas las bases de datos de Hive desde el servidor de consultas. Para sincronizar todas las bases de datos de Hive en Metastore con el servidor de consultas, utilice el carácter comodín *.

Puede actualizar la lista de bases de datos de Hive para sincronizarla con el servidor de consultas con el parámetro de configuración sync_hive_db_list en Cloudera Manager de la siguiente manera.

  1. Conéctese a Cloudera Manager con sus credenciales de conexión.

  2. En Cloudera Manager, utilice el campo Buscar para buscar el parámetro de configuración Bases de datos de Hive sincronizadas. Introduzca /Synchronized Hive Databases (o introduzca parte del nombre hasta que se muestre en la lista) en el campo Search y, a continuación, pulse Intro.

  3. Haga clic en Cloud SQL: Bases de datos de Hive sincronizadas.

  4. En el cuadro de texto Bases de datos de Hive sincronizadas, introduzca los nombres de las bases de datos de Hive separadas por comas, como htdb0,htdb1; a continuación, haga clic en Guardar cambios. Solo estas dos bases de datos de Hive se sincronizarán con el servidor de consultas.