Saltar al contenido

Tenemos el siguiente diseño de tabla

En las siguientes tablas

Cada tabla tiene la cantidad de registros:

Aunque se que se puede hacer de otras formas, pero para esta vez voy a utilizar en es ocasión select e inseert to

Y verificamos que ...

Esta todo correcto ... voy a añadir una nueva tabla que corresponda a 2015 y después la vuelvo a unir.

La tabla final nos puede servir para muchas cosas y artículos a partir de ahora. Al turr´´on ....

Después de generar el fichero Excel con Python podemos hacer directamente el paso a PowerBi, pero lo vamos a hacer desde la bbdd que tenemos en Azuresql.

Para este último paso utilizaremos PowerBi, que lo podemos descargar desde:

https://powerbi.microsoft.com/es-es/

Captura

Una vez descargado y dentro del mismo.

Captura

Obtener datos.

Podemos hacerlo desde:

Captura

Excel, SQL Server, Access, Hadoop, .....

En nuestro caso SQL Server

Captura

Conectamos

Captura

Damos usuario y contraseña

Captura

Cargar

Captura

Elegimos la forma que queramos

Captura

En un próximo artículo veremos como trabajamos con powerbi.

También veremos la otra foma de recoger los eventos de los sensores y recogerlo desde event hub,  pasar a documentdb, ....

Vamos a ver como se ejecutan las Vistas de SQL Server en Powershell.Captura

Esta vista nos permite contar los paises que tenemos en nuestra tabla Enero.

Captura

Aquí esta todo el listado con las veces que aparece en la tabla, es decir, los registros.

Captura

Y aquí todos los que empieza por I.

Captura

Creo ue ha quedado muy claro en eta serie de artículos de como trabajar en conjunto sql server y powershell.  Iremos haciendo mas cosas.

Simplemente he pasado loq que quería a la variable $SqlQuery.

La forma de trabajo más adecuada es ir guardando cada ps1 con el nombre de lo que hace y solo ejecutarlo. Ya veremos como trabajamos con otros lenguajes.

Compartir este artículo y todos lo qeu hay en este blog en vuestras RRSS y no os olvidéis, revisar el blog ya que hay muchos temas interesantes.

Primero creamos nuestro procedimiento almacenado

Captura

Este select que esta dentro del procedimmiento almacenado nos muestra el primer y ultimo día en que hay entradas de usuarios de un pais, la diferencia de dias y el total de entradas.

CREATE PROCEDURE PRI_ULT_Ent
AS
BEGIN
SELECT PAIS, CONVERT(VARCHAR(10), MAX(FECHA), 103) AS ULT_Entrada, CONVERT(VARCHAR(10), Min(FECHA), 103) as PRI_Entrada,
DATEDIFF(DAY, MIN(FECHA), MAX(FECHA)) AS DIF_Fechas, SUM(VISITAS) AS Total_Entradas
FROM Enero
GROUP BY PAIS
ORDER BY DATEDIFF(DAY, MIN(FECHA), MAX(FECHA)) desc, SUM(VISITAS) desc, PAIS
END;

Ahora lo ejecutamos

Captura

Y ahora vemos como lo hacemos desde powershell

Captura

Fijaros que solo he cambiado del ultimo ps1

$SqlQuery = "EXEC PRI_ULT_Ent"

Ahora a jugar ....

Seguimos con temas de BI.

Vamos a empezar por unas consultas clásicas de estadísticas. sabiendo que no el el mes completo sino que desde el mismo día 13 de Enero, es decir .... 19 dias.

Captura

Aqui va el código:

SELECT PAIS, COUNT(PAIS)AS VISITA_MES, MAX(VISITAS) AS MAX_1DIA, MIN(VISITAS) AS MIN_1DIA, AVG(VISITAS) AS MEDIA_DIA
FROM Enero
GROUP BY PAIS
ORDER BY COUNT(PAIS) Desc, MAX(VISITAS) Desc

Vamos a explicar un poco..
Primero los paises que algún usuario ha entrado en el blog. Otro dato importante el el valor máximo, mínimo en un solo dia y media de cada pais en el mes.
Y ahora vamos con una consulta que nos indica en que día de Enero se produce el mayor número de visitas por cada país.

Captura

SELECT PAIS, MAX(VISITAS) AS MAX_VISITAS, MAX(FECHA) AS DIA
FROM Enero
GROUP BY PAIS
ORDER BY PAIS, MAX(VISITAS) DESC

Captura

Con esta consulta sabremos la última vez que ha entrado algún usuario de un país en concreto. Por ejemplo en mi caso, meter algún enlace en algún grupo de fb, g+ o linkedin o sencillamente un tuit para que los usuarios de un país vuelvan a entrar.

SELECT PAIS,
DATENAME(weekday, MAX(FECHA)) AS Dia_Semana, DATENAME(day, MAX(FECHA)) AS DD, DATENAME(month, MAX(FECHA)) AS MM
FROM Enero
GROUP BY PAIS
ORDER BY PAIS ASC

Y si queremos ver en que día se produce el máximo de visitas de un país.

Captura

Pillando el numero de visitas máximas de la primera consulta podemos saber el día en que se produce.
Esta consulta tiene doble utilidad por que si ponemos, por ejemplo,  un 1.

Captura

Nos indica todos los paises y que día han entrado un único usuario

SELECT PAIS, VISITAS,
DATENAME(weekday, FECHA) AS Dia_Semana, DATENAME(day, FECHA) AS DD, DATENAME(month, FECHA) AS MM
FROM Enero Where VISITAS = 1
ORDER BY PAIS

Espero que os haya gustado esta introducción de consultas que se pueden hacer con los datos de visitas sacado por paises.
Seguiremos ...

Después de seguir el tuto de este mismo blog

Importar un fichero .csv a una tabla #sqlserver

tenemos ....

Captura

Recordar que el fichero excel hay una linea mas porque el ecabezado.Ahora ya nos tocaría jugar 😉

Recordaros en que si queréis seguir todos los pasos que estoy haciendo podéis buscar la palabra #MundoSqlBi en este blog o en twitter y, como no, compartir en tus RRSS este artículo como todos los que hay en este blog.

Bueno, ya tenemos los ficheros del mes de Enero que he podido rescatar.

enero

Ahora toca unificarlo.

Captura

Al ser muy pocos datos lo vamos hacer de forma clásica, con copiar/pegar. Ya veremos otras formas 😉

Captura

TE quedaría una cosa como esta.

Y ahora podemos exportarlo a .csv. Ya veremos para que lo vamos a utilizar.

Seguimos con el BI.

Aunque ya lo hemos visto en este blog el importar un fichero .csv a sql server directamente, en este caso voy a pasarlo también a Excel, ya que podremos utilizar otras herramientas para hacer BI.

Captura

Obtener datos externos

Fichero texto

Captura

Delimitados

Captura

Coma

Siguiente y Finalizar

Captura

Ponemos donde lo queremos poner y aceptar

Captura

Ahora ya solo falta ponerlo bonito: Poner un titulo a las columnas, poner laa columna fecha y colorines.

Captura

Y ahora guardarlo en la carpeta xls

Ahora ya tenemos los 2 ficheros, uno en .csv,  que nos permite hacer la importación  desde sql server mas fácil y el .xls que haremos tareas también en excel.

Ya lo veremos más adelante.

Ya hemos visto el inicio de nuestro proyecto BI, ahora toca la definición o teoría del mismo.

Business Intelligence es uno de los temas que se han puesto muy de moda y  de un muy  rápido crecimiento en la parte de SQL Server es el área de Inteligencia de Negocios (Business Intelligence).

Mejor que no lo explique yo porque os puedo hacer un lio, os dejo el enlace de la wikipedia

https://es.wikipedia.org/wiki/Inteligencia_empresarial

Captura

Con grandes cantidades de datos, la  gestión de los mismos  y  el conocimiento de donde vienen o como podemos sacarles rendimiento  se ha convertido en un desafío.

Para saber mas de la edicion BI de sSQL Server:

https://www.microsoft.com/es-es/server-cloud/products/sql-server-editions/sql-server-business-intelligence.aspx

Espero que os haya ayudado ....Vamos a hacerlo práctico 😉

Llevo algún tiempo de como montar un escenario BI y no sabia donde pillar los datos.

Los tenia bien cerca, en este mismo blog, las estadísticas de visitas.

WordPress te da la opción de bajarte un fichero diario  .csv tal como así.

Captura

Me hubiera gustado mejor con horas y fecha, pero bueno.

Como vamos a transformar ese fichero, pues añadiendo una columna del día de las visitas. TambiÉn cambiare el nombre del fichero para tenerlo como YYYYMMDD.

Captura

Me hubiera gustado tener los datos desde el dia 1 del blog pero solo me da los .csv del ultimo mes. O no se scarlos jijijij si sabéis decirlo por que será mas bonito y con mas datos.

Los datos que hemos visto en el primer pantallazo, quedarían como

Captura

También lo vamos a utilizar con otras herramientas como excel powerpivot powerbi, ...... y en tras bases de datos como mysql.

Bueno ... a formatear 30 ficheros de momento. Vamos a añadir un hastag a estos articulo, vamos a poner #MundoSqlBI