sábado, 28 de octubre de 2023

Modelado de datos y funciones en Dax con PowerBI



En Microsoft Power BI, el modelo de datos respalda el desarrollo de informes y tableros. Para producir los informes y tableros correctos, debe tener una comprensión clara de las preguntas que harán los usuarios de su informe y tablero. Su próximo enfoque debe estar en el diseño del modelo de datos que mejor admita las visualizaciones en sus informes y tableros. Una vez que haya llegado al diseño de un modelo, estará listo para usar Power BI Desktop para desarrollar el modelo.

Al desarrollar el modelo, completará las siguientes tareas:

·        Conectar a datos

·        Transformar y preparar datos

·        Defina la lógica empresarial agregando cálculos de Expresiones de análisis de datos (DAX)

·        Aplique permisos de datos con seguridad a nivel de fila agregando roles

·        Publicar el modelo en Power BI

En este video llegamos hasta la aplicación de cálculos para desarrollar la lógica empresarial.
 

jueves, 26 de octubre de 2023

Grupos de alta disponibilidad en el SQL Server

 



SQL Server incluye varias opciones para la implementación de alta disponibilidad. Una de estas opciones son los grupos de alta disponibilidad.

Grupos de disponibilidad AlwaysOn
El AlwaysOn aprovecha la tecnología de Failover Cluster de Windows (WSFC) para proporcionar a nivel de base de datos de alta disponibilidad. Aunque los grupos de disponibilidad son conceptualmente similar a la creación de reflejo de base de datos, que ofrecen una forma más robusta de la protección de las bases de datos, y también proporcionan una funcionalidad más avanzada.
Para crear un grupo de disponibilidad de AlwaysOn, es necesario crear primero un WSFC y añadir servidores SQL 2,014  como miembros del clúster de SQL Server de host. El WSFC apoya el grupo de disponibilidad mediante el control de la salud de las réplicas y la gestión de conmutación por error. Tenga en cuenta que, a pesar de que los grupos de disponibilidad AlwaysOn utilizan WSFC, no es necesario instalar SQL Server como una instancia de clúster; cada miembro del grupo de disponibilidad está instalado como una instancia independiente y tiene su propio almacenamiento dedicado. No hay ningún requisito para el almacenamiento compartido con grupos de disponibilidad AlwaysOn.

miércoles, 25 de octubre de 2023

Introducción a Microsoft Fabric.

 


Como una navaja suiza pero esta vez para el análisis de datos, llega Microsoft Fabric, que cubre desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real y la inteligencia empresarial. Ofrece un conjunto completo de servicios que incluye un lago de datos, ingeniería de datos e integración de datos, todo en un solo lugar.

Con Fabric, no es necesario agrupar diferentes servicios de varios proveedores. En su lugar, puede disfrutar de un producto muy integrado, de un extremo a otro y fácil de usar diseñado para simplificar las necesidades de análisis.

La plataforma se basa en un Software como servicio (SaaS), que lleva la simplicidad y la integración a un nuevo nivel.

lunes, 25 de septiembre de 2023

Manejo de inventario con Excel

 


En esta grabación vemos como valiendonos de la función BuscarV, la función Sumar.Si y del formato de tabla en Excel creamos un inventario automatico devolviendo el stock actual de nuestros productos a partir de las entrdas y salidas.

miércoles, 2 de agosto de 2023

Procedimientos, manejo de errores, triggers y transacciones.


Grabación del Webinar donde reunimos a varios jóvenes que quieren aprender o reforzar sus conocimientos en SQL Server, en nuestra serie de charlas toca el turno de hablar del poder de SQL Server y en este caso completamos el tema de procedimientos y luego hablamos del manejo de transacciones y finalizamos las sesión hablando de triggers

 

lunes, 5 de junio de 2023

Diapositiva patron en Power Point


 Crear una Diapositiva Patron en Power Point - YouTube

Un patrón de un vestido es un molde que sirve para cortar y coser las piezas de tela que forman una prenda, de la misma manera en power point se puede crear un patrón de diapositiva que contiene imágenes, el fondo, color de letra que se usan como base de nuestra presentación. En este vídeo te explicamos como crear un patrón, los pasos son:

  1. En la pestaña Vista, haz clic en Patrón de diapositivas. En la vista Patrón de diapositivas, el patrón de diapositivas aparece en la parte superior del panel de miniaturas con los diseños relacionados debajo de él.
  2. Haz clic para seleccionar la diapositiva patrón y luego en Diseño del patrón en la pestaña Patrón de diapositivas.

  3. Haz las actualizaciones que quieras.

  4. Para quitar los diseños de diapositiva integrados que acompañan al patrón de diapositiva predeterminado, en el panel de miniaturas de diapositivas, haz clic con el botón derecho en cada diseño de que quieras eliminar y luego haz clic Eliminar el diseño.

  5. Para establecer la orientación de página de todas las diapositivas de la presentación, en la pestaña Patrón de diapositivas, haz clic en Orientación de la diapositiva y haz clic en Vertical u Horizontal.

  6. En la pestaña Archivo, haz clic en Guardar como.

  7. En el cuadro Nombre de archivo, escribe un nombre de archivo.

  8. En la lista Guardar como tipo, haz clic en Plantilla de PowerPoint y luego en Guardar.

domingo, 26 de febrero de 2023

Ejemplos de Consultas y Procedimientos Almacenados en Mysql



Use northwind;

-- Consultas de una tabla
-- Consulta de selección a la tabla de clientes

Select Customerid, Companyname
, ContactName, ContactTitle, Country
from customers;

-- Filtrar la tabla
Select Customerid, Companyname
, ContactName, ContactTitle, Country
from customers where CustomerID='BERGS';

Select Customerid, Companyname
, ContactName, ContactTitle, Country
from customers where CustomerID like '_A%';
-- uso del like
Select Customerid, Companyname
, ContactName, ContactTitle, Country
from customers where CustomerID like '%S'
or Country='UK';

-- Uso del between
Select productid, productname, unitprice
from products
where unitprice>=20 and unitprice <=30;

Select productid, productname, unitprice
from products
where unitprice between 20 and 30;

Select orderid, orderdate
from orders
where orderdate between '1997-01-01' and '1997-12-31';

-- Solo mostrar solo valores únicos
Select distinct country, city from customers;

-- Usar Ordenar y limit

Select productid, productname, unitprice
from products
order by unitprice desc
limit 10;

-- Join entre tablas ISO-ANSI 82
Select customers.Customerid, Customers.Companyname,
Customers.Country, Orders.Orderid, Orders.Orderdate
from Customers, Orders
where Customers.Customerid=Orders.Customerid
and customers.country='France';

Select c.Customerid, c.Companyname,
c.Country, o.Orderid, o.Orderdate
from Customers as c inner join Orders as o
on c.Customerid=o.Customerid
where o.orderid is null;

-- Join entre tablas ISO-ANSI 92
Select count(*)
from Orders as o cross join Customers as c;

-- Full join
Select c.Customerid, c.Companyname,
c.Country, o.Orderid, o.Orderdate
from Customers as c inner join Orders as o
on c.Customerid=o.Customerid
UNION
Select c.Customerid, c.Companyname,
c.Country, o.Orderid, o.Orderdate
from Customers as c left outer join Orders as o
on c.Customerid=o.Customerid
UNION
Select c.Customerid, c.Companyname,
c.Country, o.Orderid, o.Orderdate
from Customers as c right outer join Orders as o
on c.Customerid=o.Customerid
;

-- Obtener ventas de northwind
Create view view_sales
as
Select c.companyname, c.country, o.orderid, o.orderdate
,ca.categoryname, p.productname, d.unitprice, d.quantity
, d.unitprice * d.quantity as Sales
from customers as c inner join orders as o
on c.customerid=o.customerid
inner join orderdetails as d
on o.orderid=d.orderid
inner join products as p
on d.productid=p.productid
inner join categories as ca
on p.categoryid=ca.categoryid;

Select country, SUM(Sales) as Sale from view_sales
group by country;

Select companyname, SUM(Sales) as Sale from view_sales
group by companyname;

Select Year(orderdate) as Anio,
Month(orderdate) as Mes,
SUM(Sales) as Sale
from view_sales
group by Year(orderdate), Month(orderdate);

/*
Crear una consulta que devuelva cuantas ordenes despacho el empleado Nancy Davolio al cliente de
código 'ANTON'

*/
Select o.orderid, o.orderdate, e.firstname, e.lastname
, c.companyname, c.customerid
from employees as e inner join orders as o
on e.employeeid=o.employeeid
inner join customers as c
on o.customerid=c.customerid
where e.lastname='Davolio' and c.customerid='Rattc';

--Creación de procedimientos almacenados

Delimiter $$
Create procedure proc_ordenesCliente ( IN par_codigocliente varchar(5))
Begin
Select c.companyname, o.orderid, o.orderdate
from customers as c inner join orders as o
on c.customerid=o.customerid
where c.customerid=par_codigocliente;
End
$$
Delimiter ;

Call proc_ordenesCliente ('ALFKI');

-- Crear un procedimiento que inserte datos a customers

Delimiter $$
Create procedure proc_insert_customers (IN PCustomerID varchar(5),
IN PCompanyname varchar(60) , IN PContactTitle varchar(30)
, IN PAddress varchar(120), IN PCity varchar(50)
, IN PRegion varchar(60), IN PPostalCode varchar(60), IN PCountry varchar(50)
, IN PPhone varchar(60), IN PFax varchar(60))
Begin
Insert into Customers (CustomerID, Companyname, ContactTitle
, Address, City, Region, PostalCode, Country, Phone, Fax)
values
(PCustomerID, PCompanyname, PContactTitle
, PAddress, PCity, PRegion, PPostalCode, PCountry, PPhone, PFax);
End
$$
Delimiter ;

-- Ejecutar el procedimiento que inserta datos

Call proc_insert_customers ('ABCD1','Empresa Inc','Dr.','Ciudad'
,'Guatemala','Central','01005','Guatemala','1020-3040','4050-6070');

-- Consultar el dato insertado

Select * from customers;

/*

  1. procedimiento contará y devolverá el numero de ordenes de un cliente
  2. Borrará un cliente si no tiene ordenes

*/

Delimiter ##
Create procedure proc_contarordenes (In PCodigoCliene varchar(6),
out Pnumero bigint)
Begin
Select count(*)
into Pnumero
from Orders
where customerid=PCodigoCliene;
End
##

Delimiter ;

Delimiter ##
Create procedure proc_eliminarCliente (PCodigoCliente varchar(5))
Begin
Declare var_numero bigint;
Call proc_contarordenes (PCodigoCliente, var_numero);
if var_numero=0 then
Delete from customers where customerid=PCodigoCliente;
else
Select 'No es posible borrar este cliente porque tiene ordenes' as mensaje;
end if;
End
##

Delimiter ;

-- Ejecutar procedimiento

Set sql_safe_updates=0;
call proc_eliminarCliente ('ABCD1');
Select * from customers;