PG Sync y Power BI

Qué copia PG Sync a tu base PostgreSQL de solo lectura, con qué frecuencia se actualiza cada tabla y cómo se conectan Power BI y .NET a esa base.

PG Sync copia informes de tu Dinaup a una base de datos PostgreSQL de solo lectura, una tabla por informe, y la mantiene al día. Power BI, un cuadro de mando o tu propio código consultan esa base con SQL sin tocar el sistema en producción. La copia va en un solo sentido: de Dinaup a PostgreSQL.

Antes de empezar

  • El servicio contratado. La base, el usuario y el schema los configura Dinaup en tu servidor al activarlo. En dinaup.com, Desarrollo → Sincronización con Postgres solo elige los informes. Ver Sincronización con Postgres.
  • Informes compatibles con PG Sync. Los informes con agrupaciones o cálculos complejos no se copian: Informes por API.
  • El identificador de cada informe. En Play está en Desarrollo → Esquema, pestaña Informes, columna ID (Esquema).

Qué se copia

ElementoCómo queda en PostgreSQL
Cada informe elegidoUna tabla en tu schema, con el nombre de la palabra clave del informe en minúsculas.
Cada columna del informeUna columna con la palabra clave JSON de la columna y el tipo del campo.
idClave primaria, el GUID del registro.
fechaiaLa fecha de última actividad del registro, en UTC. Es la marca con la que se sincroniza.
confirmados1 cuando la fila la escribió la pasada de comprobación; 0 cuando la escribió la copia inmediata de un cambio y la pasada de comprobación todavía no la ha verificado.
ÍndicesUno por cada columna que en Dinaup está indexada, más fechaia y confirmados.
Registros eliminadosSe borran de la tabla.

Una tabla _dinaup_kv en el mismo schema guarda el estado de la sincronización: la clave estado dice qué tabla se está actualizando o Fin cuando la pasada ha terminado.

Un informe nuevo en la lista crea su tabla en la siguiente pasada; una columna nueva en el informe añade su columna. Nada se borra de la estructura.

Cuándo se actualiza

Hay tres mecanismos. En los tres, una fila nueva se inserta y una existente se sustituye.

MecanismoCuándoQué escribe
Lista Asíncronos (Recomendado)En el reparto de cambios que sigue a cada escritura, en segundo plano. La operación en Dinaup no espera.Las filas que acaban de cambiar, releídas de la base de Dinaup, con confirmados a 0.
Lista Informes Síncronos (Gran impacto en el rendimiento)Dentro de la propia escritura, antes de responder. Cada escritura tarda más.Lo mismo, pero el dato está en PostgreSQL cuando la operación termina.
Pasada diferencialCada 15 minutos aproximadamente.Las filas con fechaia posterior a la última confirmada, en bloques de 10.000; borra las eliminadas desde entonces y pone confirmados a 1.

Una pasada completa recorre todo el informe y quita de la tabla las filas que ya no existen en Dinaup. Se lanza a petición desde el servidor, no desde la pantalla.

Las dos listas se rellenan en Sincronización con Postgres. Un informe no puede estar en las dos.

Consultar desde Power BI

Obtén datos de PostgreSQL

En Power BI Desktop, pulsa Obtener datos y elige Base de datos PostgreSQL. Escribe el servidor y la base de datos que te dio Dinaup.

Entra con las credenciales de solo lectura

Elige Base de datos como tipo de credencial y escribe el usuario y la contraseña. Power BI las guarda para las siguientes actualizaciones.

Elige las tablas

En el navegador, marca las tablas de tu schema: una por informe. Deja fuera _dinaup_kv.

Elige el modo

Importar copia los datos al informe de Power BI y se actualiza con la programación que definas. DirectQuery consulta PostgreSQL en cada interacción y muestra el dato de la última sincronización.

Las columnas llegan con el nombre de la palabra clave de cada columna del informe. Los GUID de id y de las referencias son texto de 36 caracteres.

Consultar desde .NET

Dinaup.Database abre la conexión a esa base y ejecuta consultas SQL con las utilidades del SDK. Ver Dinaup.Database. Para leer con la API o el SDK en lugar de con SQL: Cliente del SDK.

Qué no hace

  • No escribe en Dinaup. Lo que cambies en PostgreSQL no vuelve.
  • No copia secciones enteras: copia informes, con las columnas que el informe define.
  • No garantiza el instante exacto en la lista asíncrona ni en la pasada diferencial. Para un dato que tiene que estar en PostgreSQL al terminar la operación, usa la lista síncrona y asume el coste.

Relacionado

En esta página