Automatización de la carga de datos en un almacén de datos mediante una aplicación sin servidor
Oracle Functions es una plataforma de funciones como servicio sin servidor, altamente escalable y totalmente gestionada, creada en Oracle Cloud Infrastructure y basada en el motor de Fn Project de código abierto. Los desarrolladores pueden utilizar Oracle Functions para escribir y desplegar código que proporcione valor empresarial sin preocuparse por el aprovisionamiento o la gestión de la infraestructura subyacente. Oracle Functions es de contenedor, con funciones empaquetadas como imágenes de contenedor Docker.
Arquitectura
Esta arquitectura de referencia muestra cómo puede utilizar una función sin servidor para automatizar el proceso de extraer datos de archivos generados por varias bases de datos o aplicaciones y cargarlos en un almacén de datos para su análisis.
El diagrama de arquitectura muestra el flujo de datos. Cuando se cargan archivos CSV comprimidos en un cubo específico de Oracle Cloud Infrastructure Object Storage, se dispara el servicio Events. El evento emitido llama a una función, que extrae los datos de los archivos cargados y carga los datos en una instancia de Oracle Autonomous Data Warehouse. Después de cargar los datos en el almacén de datos, los archivos CSV procesados se mueven a un cubo diferente de Oracle Cloud Infrastructure Object Storage.

Descripción de la ilustración autoload-adw.png
La arquitectura tiene los siguientes componentes:
- Región
Una región de Oracle Cloud Infrastructure es un área geográfica localizada que contiene uno o más centros de datos, denominados dominios de disponibilidad. Las regiones son independientes de otras regiones y las grandes distancias pueden separarlas (entre países e incluso continentes).
- Dominios de disponibilidad
Los dominios de disponibilidad son centros de datos independientes e independientes dentro de una región. Los recursos físicos de cada dominio de disponibilidad están aislados de los recursos de los otros dominios de disponibilidad, lo que proporciona tolerancia a fallos. Los dominios de disponibilidad no comparten infraestructura, como alimentación o refrigeración, ni la red interna del dominio de disponibilidad. Por lo tanto, un fallo en un dominio de disponibilidad es poco probable que afecte a los otros dominios de disponibilidad de la región.
- Red virtual en la nube (VCN) y subredes
Una VCN es una red personalizable y definida por software que se configura en una región de Oracle Cloud Infrastructure. Al igual que las redes del centro de datos tradicionales, las VCN le proporcionan un control total de su entorno de red. Una VCN puede tener varios bloques CIDR no solapados que puede cambiar después de crear la VCN. Puede segmentar una VCN en subredes, que se pueden acotar a una región o a un dominio de disponibilidad. Cada subred consta de un rango de direcciones contiguas que no se solapan con las otras subredes de VCN. Puede cambiar el tamaño de una subred después de la creación. Una subred puede ser pública o privada.
En esta arquitectura de referencia, la función se despliega en una subred regional privada.
- Eventos y funciones
Los servicios de Oracle Cloud Infrastructure generan eventos estructurados que describen los cambios en los recursos. Los eventos se emiten para operaciones de creación, lectura, actualización o supresión (CRUD), cambios en el estado del ciclo de vida de los recursos y eventos del sistema que afectan a los recursos en la nube.
Oracle Functions permite desplegar el código, llamarlo directamente o dispararlo en respuesta a eventos. Oracle Functions utiliza contenedores de Docker alojados en Oracle Cloud Infrastructure Registry.
En esta arquitectura, cuando se carga un archivo en un cubo de Oracle Cloud Infrastructure Object Storage, se emite un evento. El evento llama a una función basada en Python, que extrae datos del archivo y los carga en Oracle Autonomous Data Warehouse. El archivo procesado se mueve a otro cubo.
- Almacenamiento de objetos
El almacenamiento de objetos proporciona acceso rápido a grandes cantidades de datos estructurados y no estructurados de cualquier tipo de contenido, incluidas copias de seguridad de bases de datos, datos analíticos y contenido enriquecido, como imágenes y vídeos. Puede almacenar y, a continuación, recuperar los datos de manera segura directamente desde Internet o desde la plataforma en la nube. Puede escalar el almacenamiento sin problemas sin experimentar ninguna degradación en el rendimiento o la fiabilidad del servicio. Utilice el almacenamiento estándar para el almacenamiento "caliente" al que necesita acceder de forma rápida, inmediata y frecuente. Utilice el almacenamiento de archivos para el almacenamiento "en frío" que conserva durante largos períodos de tiempo y que rara vez tiene acceso.
- Autonomous Data Warehouse
Oracle Autonomous Data Warehouse es un servicio de base de datos de autogestión, autoprotección y autorreparación que se optimiza para las cargas de trabajo de almacenes de datos. No es necesario configurar ni gestionar ningún hardware, o instalar ningún software. Oracle Cloud Infrastructure gestiona la creación de la base de datos, así como la copia de seguridad, la aplicación de parches, la actualización y el ajuste de la base de datos.
Recomendaciones
Los requisitos pueden ser diferentes de la arquitectura que se describe aquí. Utilice las siguientes recomendaciones como punto de partida.
- VCN
Al crear una VCN, determine el número de bloques CIDR necesarios y el tamaño de cada bloque según el número de recursos que planea asociar a subredes de la VCN. Utilice bloques CIDR que estén dentro del espacio de direcciones IP privadas estándar.
Seleccione bloques CIDR que no se superpongan con ninguna otra red (en Oracle Cloud Infrastructure, su centro de datos local u otro proveedor en la nube) a la que desee configurar conexiones privadas.
- Funciones
La función utilizada en esta arquitectura de referencia se codifica mediante Python. Oracle Functions también admite Java, Node, Go y Ruby. Utilice el lenguaje de programación que desee.
- Oracle Autonomous Data Warehouse
En la arquitectura de referencia, la función accede al almacén de datos mediante Simple Oracle Document Access (SODA). Puede implementar otros métodos de acceso, como SQL con
cx_oracle
y bibliotecas de cliente de Oracle, modificando la función.En la arquitectura de referencia, la función y el almacén de datos están en la misma subred. Puede desplegarlas en subredes independientes si es necesario.
Consideraciones
- Escalabilidad
- Base de Datos
Puede ampliar o reducir el número de núcleos de CPU de la base de datos en cualquier momento. La función de escala automática de bases de datos autónomas permite que la base de datos utilice hasta tres veces el número base actual de núcleos de CPU en cualquier momento. A medida que la demanda aumenta, la escala automática aumenta automáticamente el número de núcleos en uso. Las bases de datos autónomas le permiten ampliar la capacidad de almacenamiento en cualquier momento sin afectar a la disponibilidad ni al rendimiento.
- Funciones
Oracle Functions crea y elimina contenedores de funciones automáticamente según la carga de solicitud. Solo paga cuando se invocan las funciones y durante el tiempo que ejecutan.
- Base de Datos
- Seguridad
- Utilice las políticas de Oracle Cloud Infrastructure Identity and Access Management (IAM) para controlar quién puede acceder a sus recursos en la nube y qué operaciones se pueden realizar.
Puede asignar solo permisos de llamada a funciones o permisos de gestión de funciones y de llamada a funciones a grupos específicos.
Puede utilizar políticas de IAM para controlar también el acceso de Oracle Functions a Oracle Cloud Infrastructure Object Storage.
- En Oracle Cloud Infrastructure Object Storage, el cifrado está activado por defecto y no se puede desactivar.
- Esta arquitectura de referencia muestra el almacén de datos y la función en la misma subred. Para un aislamiento mejorado, puede utilizar una subred independiente para el almacén de datos.
- Para proteger las contraseñas de la base de datos o cualquier otro secreto, considere utilizar el servicio Oracle Cloud Infrastructure Vault.
- Utilice las políticas de Oracle Cloud Infrastructure Identity and Access Management (IAM) para controlar quién puede acceder a sus recursos en la nube y qué operaciones se pueden realizar.
Desplegar
El código de Terraform para esta arquitectura de referencia está disponible en GitHub. Puede obtener el código en Oracle Cloud Infrastructure Resource Manager con un solo clic, crear la pila y desplegarla. También puede descargar el código de GitHub en su computadora, personalizar el código y desplegar la arquitectura mediante la interfaz de línea de comandos (CLI) de Terraform.
- Realice el despliegue con Oracle Cloud Infrastructure Resource Manager:
- Haga clic en
.
Si aún no ha iniciado sesión, introduzca las credenciales de arrendamiento y usuario.
- Revise y acepte las condiciones.
- Seleccione la región en la que desea desplegar la pila.
- Siga las indicaciones de la pantalla y las instrucciones para crear la pila.
- Después de crear la pila, haga clic en Acciones de Terraform y seleccione Plan.
- Espere a que termine el trabajo y revise el plan.
Para realizar cambios, vuelva a la página Detalles de pila, haga clic en Editar pila y realice los cambios necesarios. A continuación, vuelva a ejecutar la acción Plan.
- Si no es necesario realizar más cambios, vuelva a la página Detalles de pila, haga clic en Acciones de Terraform y seleccione Aplicar.
- Haga clic en
- Realice el despliegue con la CLI de Terraform:
- Vaya a GitHub.
- Descargue o clone el código en su equipo local.
- Siga las instrucciones del README (Léame).
Log de Cambios
Este log sólo muestra los cambios significativos:
6 de diciembre de 2021 |
|
27 de julio de 2021 |
|