Poniendo a funcionar Metabase en Docker.
Metabase es un producto GPL que puede correr localmente o en un modo Cloud, para visualización de datos de una manera sencilla, puede conectarse a distintos motores de datos, permite construir gráficos de una manera muy sencilla, se pueden incluir querys SQL y mediante los “Dashboards” ver mucho en poco espacio.
Utilizan un término que me gustó, “humanizar datos”… el resúmen es que logra que los datos de motores sean fácilmente disponibles para personas que no sean “DBAs”, seleccionado filtrado, agrupación, condiciones y distintos tipos de gráficos.
Lista de Orígenes de datos soportados.
- Postgres
- MySQL
- Druid
- SQL Server
- Redshift
- MongoDB
- Google BigQuery
- SQLite
- H2
- CrateDB
- Oracle
- Vertica
- Presto
Luego de instalarlo corre en modo Web local en el puerto 3000 y también puede correr en AWS y otras plataformas.
En nuestro caso lo instalaremos en un contenedor destinado a Metabase y haremos pruebas conectándose a otros contenedores con distintos motores de bases de datos.
Instalación del producto en un contenedor.
# docker run -d -p 3000:3000 --name metabase metabase/metabase
Unable to find image 'metabase/metabase:latest' locally
latest: Pulling from metabase/metabase
e110a4a17941: Pull complete
5726fbb708f0: Pull complete
7c322de39b42: Pull complete
e00b172abb18: Pull complete
f53440e31a7d: Pull complete
e19a51f4a73a: Pull complete
7e5d96b2f78f: Pull complete
Digest: sha256:8a6351aa14202e1daec5cde3eb58b4571ee8835ec4cb009f65a196fb08212f17
Status: Downloaded newer image for metabase/metabase:latest
d0de93d6f7231882cccb76708f7b8412bf67b842d81b4229a4fbfcf17dfb01bc
La imágenm descargada mide 248 mb.
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
metabase/metabase latest e499cad14d61 7 days ago 248MB
Vemos que ya está funcionando correctamente compartiendo el puerto 3000.
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d0de93d6f723 metabase/metabase "/app/run_metabase.sh" About a minute ago Up About a minute 0.0.0.0:3000->3000/tcp metabase
Luego desde un navegador podremos interactuar con nuestro contenedor usando el puerto 3000.
* http://172.17.0.2:3000
Nos pide nuestros datos y un “email”/”Password” que usaremos en la gestión. Indicamos que agregaremos las fuentes de datos luego y que Aceptamos/Denegamos enviar datos anónimos a Metabase.
Podemos agregar fuentes de datos desde la consola de Administración o directamente con este link.
http://172.17.0.2:3000/admin/databases/create
ALGUNOS CONCEPTOS DE METABASE
-
Luego de instalarlo hay que definir una clave para el usuario administrador, también tiene accesos de solo lectura para usuarios.
-
Hay que definir las fuentes de información de orígen, indicando recurso/usuario/clave, etc.
-
Crearon el concepto de “Coleccción”, donde se guardan distintos tipos de “querys”, sirve para agruparlos según nos parezca mejor.
- Podemos agregar “Questions” / “Preguntas”, que pueden ser querys a motores
- También “Customs” que son querys con condicionantes.
-
O “Métricas” que incluyen acceso a datos, con condiciones y segmentaciones.
-
En el caso de las Preguntas, podemos indicar como queremos ver esos datos, números, gráfico, totales, texto, barar progreso, torta, barra… etc.
-
Luego “Pulses” que son procesos donde en base a determinados datos se puede enviar información por email o a cuentas Slacks.
-
Definir “Grupos” y algunos objetos mas (menú Admin).
- Y finalmente los “Dashboards” que son representaciones simples de los objetos de datos creados anteriormente (Querys, Métricas, Customs) también se pueden modificar los campos obtenidos en los querys. Se puede indicar un tiempo de refresco de cada dashboard y poco mas.
Un Contenedor con Metabase corriendo ocupa unos 930 MB que no es poco (incluye drivers para acceso a distintos motores, un web, una aplicación de gestión web y varios componentes mas)
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
d0de93d6f723 metabase 1.19% 933.8MiB / 7.681GiB 11.87% 137kB / 187kB 0B / 28.7kB 58
En nuestro ejemplo de uso creamos este Dashboard. GRAFICO: