Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

In this way, without the need to have different physical buckets, I can use each virtual bucket for a specific topic, having separated its uses (datamart, staging,...).

...

How to use it?

Configuración necesaria

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

...

Required set-up configuration

In order to enable this functionality, it’s necessary to complete some previous steps:

  • Create a new metastorage service in the CaaS configured for this S3 repository. It’s possible to use the same Presto Metastorage image of the plataform. In this tutorial, we’ll create a new service called presto-metastore-server-aws. La imagen, en su versión actualThe current version of the image is:

presto-metastore-server:5.0.0

Y apuntando a AWS con las variables de entorno, además de la URL del servicioAnd by setting the enviroment vars to AWS and the service URL

- MINIO_ROOT_USER → con el with the Access Key

- MINIO_ROOT_PASSWORD → secret key

- MINIO_SERVER_ENDPOINT → endpoint http/https del servicio of S3 service

...

Con esto tendremos el servicio corriendo y apuntado a This will result in the service up and running for AWS

...

  • Configurar el sistema S3 en la configuración centralizada de plataforma. Dentro de la configuración Platform el path Configure the S3 system in centralized configuration of the platform. In Platform configuration setting set the path in onesaitplatform/env/externals3 property

...

Aunque con la configuración inicial debería estar apuntando, también será necesario revisar que los pathsBy default, this settings will be already configured, but it must be them set like this:

onesaitplatform/env/database/prestodb-externals3-catalognombre presto catalog de presto name (por defecto externals3 by default)

onesaitplatform/env/database/prestodb-externals3-schemanombre catalog de presto schema name (por defecto default by default)

  • Crear un nuevo catalog de presto en plataforma (con el nombre indicado en el paso anterior en Create a new presto catalog in platform (with the same name of the onesaitplatform/env/database/prestodb-externals3-catalog) apuntando a metastorage creado previamente (propiedad setting) and it must be configured for the previous created metastorage url (hive.metastorage.url) con las siguientes propiedades setting) with the following settings:

...

...

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

...

Accederemos a sección de Amazon S3

...

Y daremos a “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

...

Creación del Bucket Virtual asociado en plataforma

A partir de aquí, si vamos a plataforma con un usuario administrador y vamos a la opción Gestión de Buckets Virtuales/Virtual Buckets Management

...

Damos a crear y podremos ver el listado de buckets de AWS

...

Seleccionamos el nuevo bucket creado y rellenamos el resto de campos

...

Al darle a crear, podremos ver el resumen, así como el path completo generado

...

En este punto, será interesante asignar permisos a los usuarios desarrolladores 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 podremos crear una entidad en este bucket virtual con el usuario al que hemos dado permiso en el paso anterior.

Al logarnos en plataforma podemos 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, iremos a la creación de entidades historicas:

...

Dentro, nos aparecerá la opción de creación de entidades sobre buckets virtuales

...

Similar a la creación de entidades históricas iremos rellenando el formulario con las diferentes opciones de creación de la entidad

...

Abajo, podremos seleccionar el Bucket Virtual donde queremos que se cree la entidad. Si actualizamos la SQL (botón Update SQL) podremos ver la sentencia de creación completa apuntando al bucket real de AWS en EXTERNAL_LOCATION

...

Finalmente, dando a crear, tendremos nuestra nueva entidad

...

Si navegamos a la consola de AWS, podremos ver como se ha creado el path completo de la nueva entidad

...

Operaciones sobre la Entidad

Podremos insertar datos que aparecerán como nuevos ficheros en el S3 de AWS

...

image-20240326-211741.pngImage Removed

...

Creation of AWS S3 Bucket

After previous steps and with the right credentials of AWS, next step will be access to the AWS console:

...

Then, navigate to the Amazon S3 page

...

And finally, click on “Create bucket“ button in order to access the creation form. Inside that, we’ll fill all the inputs and create our AWS bucket:

...

After that, the system notify us with the creation of the bucket and it’ll apear in the bucket list

...

Asocciated Virtual Bucket creation in plataform

In platform, with an user with administrator role, we’ll navigate to the Virtual Buckets Management section

...

We’ll click on create and we’ll start to fill all the input fields. We’ll also can see all the AWS Buckets in S3 Bucket Name dropdown

...

We’ll select the new created bucket and fill all the input fields

...

After clicking on create button we’ll see the detail and the full generated path

...

In this moment, it’ll be important to authorise to some user in order to use this new Virtual Bucket for entity creation, in the example it’ll be create entities in path “data/input” in thr AWS Bucket onesaitdatamart

...

Entity creation in the Virtual Bucket

Finally, we can create the entity in this Virtual Bucket with the authorised user of the previous step.

When we log in we navigate to the virtual bucket list that show us which bucket are allowed to use. With this user we're not allowed to create, edit or delete Virtual Buckets,

...

In order to create the new entity for this Virtual Bucket, we’ll navigate to the “Create entity in Historical Database“ option:

...

After that, the Create Entity from Virtual Bucket will appear

...

Using a similar way to the historical entities, we’ll fill the different options of the form for the entity creation.

...

Below, we can select the entity location with the Virtual Bucket Identification dropdown. After that, if we update the SQL (with Update SQL button) we’ll see the new SQL sentence with the real bucket location in EXTERNAL_LOCATION attribute.

...

Finally, if we click on create button, we’ll create our new entity

...

If we navigate to the AWS Console, we can see how the full path for the new entity has been created

...

Entity operations

It will be posible to insert data that will appear as a new file in the AWS S3

...

image-20240326-211741.pngImage Added

And query them:

...