Nuevas características

Virtual Buckets sobre S3 en Onesait Platform

En la versión 6.0.0-Vegas de la Plataforma hemos incorporado una nueva funcionalidad que va a permitir que un usuario con rol de tipo «administrador» pueda segmentar un bucket S3 (bien sea AWS S3 o MinIO) en buckets virtuales asignados a los diferentes usuarios de la Plataforma.

De esta forma, sin necesidad de tener diferentes buckets físicos, vamos a poder usar cada bucket virtual para un tema concreto, teniendo separados sus usos (Data mart, Staging, etc.).

¿Cómo usarlo?

A continuación vamos a ver cómo configurar lo que necesitamos, crear los buckets y operar sobre ellos.

Configuración necesaria

Para activar esta funcionalidad, es necesario completar unos pasos previos:

Creación de un nuevo servicio de metastorage apuntando a este sistema S3

Para esta parte se podrá usar la imagen del propio metastorage de la Plataforma para MinIO. Se generará un nuevo servicio que para AWS llamaremos «presto-metastore-server-aws». La imagen en su versión actual es: presto-metastore-server:5.0.0.

Y apuntando a AWS con las variables de entorno, además de la URL del servicio:

  • MINIO_ROOT_USER: con el Access Key.
  • MINIO_ROOT_PASSWORD: con el Secret Key.
  • MINIO_SERVER_ENDPOINT: Endpoint http/https del servicio S3.

Con esto tendremos el servicio corriendo y apuntado a AWS:

Configurar el sistema S3 en la configuración centralizada

Dentro de la configuración de la Plataforma, en el path «onesaitplatform/env/externals3».

Aunque con la configuración inicial debería estar ya apuntando a las URLs, será necesario revisar que los paths sean:

  • onesaitplatform/env/database/prestodb-externals3-catalog: nombre del catálogo de Presto (por defecto «externals3»).
  • onesaitplatform/env/database/prestodb-externals3-schema: nombre del esquema de Presto (por defecto «default»).
Crear un nuevo catálogo de Presto

Utilizando el nombre indicado en el paso anterior en «onesaitplatform/env/database/prestodb-externals3-catalog», apuntando al metastorage creado previamente (propiedad «hive.metastorage.url») con las siguientes propiedades:

Creación del Bucket S3 en AWS

Una vez realizados los pasos anteriores, y teniendo configurado correctamente las credenciales para AWS, lo primero será acceder a la consola de AWS:

Seguidamente, accederemos a sección de Amazon S3:

Una vez que accedamos, pulsaremos en el botón de «Crear bucket» para acceder al formulario de creación. Dentro del mismo, rellenaremos los diferentes campos y crearemos nuestro bucket:

Al crear el bucket, se nos notificará de la creación del mismo y aparecerá en el listado de buckets disponibles.

Creación del Bucket Virtual asociado en la Plataforma

En la Plataforma, accederemos con un usuario con rol de «administrador» y navegaremos hasta la Gestión de buckets virtuales.

Para generar un nuevo bucket, pulsaremos en el botón de «+» para lanzar el asistente de creación del bucket.

Seguidamente, seleccionaremos el nuevo bucket creado, y completamos el resto de campos.

Por último, al pulsar en el botón de «Crear», vamos a poder ver el resumen, así como el path completo generado.

Llegados a este punto, será interesante asignar permisos a los usuarios con rol de «desarrollador» para que puedan crear Entidades sobre este nuevo bucket virtual; es decir, que puedan crear Entidades sobre la carpeta con el path «data/input» en el bucket de AWS «onesaitdatamart».

Creación de la entidad en el Bucket Virtual

Finalmente, vamos a poder crear una Entidad en este Bucket Virtual con el usuario al que hemos dado permiso en el paso anterior.

Al logarnos en la Plataforma, se va a poder ir al listado de Bucket que de modo informativo se nos mostrará, aunque no tendremos opciones de edición o borrado ya que pertenecen al usuario administrador.

Para crear una nueva Entidad sobre este bucket virtual, vamos a crear una Entidad de tipo histórica. Para ello navegaremos al menú Conceptos Principales > Mis Entidades.

Esto nos mostrará el listado de Entidades disponibles. Para crear una nueva, pulsaremos en el botón de «+», localizado en la parte superior derecha de la pantalla. A continuación, entre las diferentes opciones disponibles, seleccionaremos la de «Creación Entidad en BD Histórica».

Seguidamente, nos aparecerán un par de opciones sobre el tipo de Entidad a crear. Seleccionaremos la «Crear Entidad desde un Bucket Virtual».

Similar a la creación de Entidades históricas, vamos a ir rellenando el formulario con las diferentes opciones de creación de la Entidad.

En la parte inferior, vamos a poder seleccionar el bucket virtual donde queremos que se cree la Entidad. Si actualizamos la consulta SQL (botón de «Update SQL») podremos ver la sentencia de creación completa apuntando al bucket real de AWS en «EXTERNAL_LOCATION».

Finalmente, dando al botón «Crear», tendremos lista nuestra nueva Entidad. Como con la mayoría del resto de Entidades creadas, nos saltará una pantalla que nos preguntará si queremos hacer algo con ella.

Si navegamos a la consola de AWS, podremos ver como se ha creado el path completo de la nueva Entidad que acabamos de crear.

Operaciones sobre la Entidad

Vamos a poder insertar datos en nuestra nueva Entidad, que aparecerán como nuevos ficheros en el S3 de AWS.

Y por supuesto, vamos a poder consultarlos sin problema:


Si estáis interesados en conocer más acerca de los buckets virtuales de S3, no dudéis en dejarnos un comentario o mandarnos una petición en nuestro canal de soporte de Onesait Platform.

Imagen de cabecera: Lucas van Oort en Unsplash.

✍🏻 Author(s)

Deja una respuesta