[Sample] Implementar detección de cambios para el desarrollo de WareHouses (Parte 2) – SCD

Se adjunta el paquete de ejemplo para la detección de cambios usando la transformación SCD incluida en SqlServer Management Studio

También se presentan técnicas alternas en los siguientes artículos

  • Ventajas
    • Es un método simple de implementar
  • Desventajas
    • Realiza las actualizaciones en la tabla destino registro a registro
    • No recuerda las opciones de diseño realizadas
    • No se respetan relaciones hechas anteriormente
    • Útil para detección de cambios para dimensiones simples

 

Espero sea de ayuda,

FREDDY LEANDO ANGARITA CASTELLANOS
Sql Server MVP

 

[Sample] Implementar detección de cambios para el desarrollo de WareHouses (Parte 1) – Borrar y Recargar

Se adjunta el Paquete de ejemplo para la detección de cambios realizada borrando todos los datos ubicados en el WareHouse y luego cargando todo de nuevo

También se presentan técnicas alternas en los siguientes artículos

 

Espero sea de ayuda,

FREDDY LEANDO ANGARITA CASTELLANOS
Sql Server MVP

 

[Step by Step] Cómo hacer un backup en Windows Azure desde SSMS 2014

En el siguiente artículo presentaremos cómo realizar backups de nuestras bases de datos directamente en la nube directamente desde Management Studio

La importancia de ésta característica es que un backup de nuestra importante base de datos ahora podrá estar ubicada fuera de los servidores corporativos y si sucede cualquier tipo de desastre podremos recuperarnos fácilmente

Para lograrlo vamos a hacer un backup de la base de datos de ejemplo AdventureWorks usando Management Studio 2014. Ésta característica también está disponible para versiones de Sql Server 2005 y 2008

El primer paso consiste en seleccionar la base de datos a la que queremos hacer Backup, se oprime botón derecho en el mouse, se selecciona Task (tareas), Back Up..

 

Luego, se observa que se tiene la opción para configurar una URL como destino del BackUp, la cual es la dirección del almacenamiento que se tenga configurado para el propósito del BackUp, una vez seleccionada la dirección podremos configurar otros parámetros tales como las credenciales a usar para conectarnos al almacenamiento de Windows Azure. Es posible seleccionar credenciales previamente creadas o crear unas credenciales haciendo click sobre el botón Create… 

Adicionalmente, se debe ingresar el nombre del archivo tal y como se desea en Azure, asimismo es necesario configurar el nombre del contenedor Azure que mantendrá la copia de la base de datos

Es sabido que los archivos de backup comprimidos ocupan mucho menos espacio, razón por la cual SqlServer Management Studio incluye la opción de compresión del backup directa del backup sin necesidad de ejecutar ninguna tarea adicional, sino directamente desde el backup; asimismo se provee un cifrado del backup con el fin que los datos estén protegidos en la nube. Es posible especificar certificados x509 para cifrar el Backup facilitando así el manejo del backup y su decifrado

Al hacer click en Ok, el proceso inicia una vez se finalice la carga del archivo a Windows Azure se presenta una ventana similar a la siguiente

Una vez finalizado el proceso verificaremos que el archivo del Backup se encuentre en la nube, para ello se ingresa a la cuenta de Azure usando el portal de administración, Seleccionamos Storage, Luego se selecciona el contenedor seleccionado en el momento de hacer el backup, que para éste caso se llama Backup

Al hacer click en el contenedor podemos observar el archivo almacenado de manera segura en la nube

 

Los backups ubicados en Azure ofrecen confiabilidad dada su triple redundancia (garantizada por cada uno de los archivos ubicados en un Storage Azure, el cual no sólo es a nivel local sino a nivel geográfico), junto con las protección que ofrece el cifrado para evitar acceso no autorizado (por si por alguna razón, y aunque es poco probable dada la seguridad de Azure, algún usuario pudiera descargar el archivo del backup no podría accederlo por la falta de la llave de cifrado) .

FREDDY ANGARITA
Sql Server MVP

 

[Step by Step] Reporting Services en Azure

Una vez se adquiere la cuenta de Azure, bien sea de prueba o paga se puede crear un servidor de Base de datos

Creando El Servidor

Éste paso es opcional para usar reporting services, pero para éste artículo usaremos la base de datos Sql de Azure

Para crear el servidor debemos configurar un usuario Administrador con el que luego nos conectaremos a la instancia de SqlServer, es importante seleccionar la región correcta (la mas cercana) para disminuir latencia en el servicio

 

Una vez está todo confiurado Azure realiza el proceso de creación de servidor, presentado en la siguiente imagen:

Una vez finalizada la creación se ve una pantalla como la presentada a continuación:

Para poder acceder a la base de datos remotamente se debe permitir el acceso, para cual se necesita crear una regla en el Proxy Azure, para crearla fácilmente se hace click en Manage

Azure advierte que no tiene permisos y que debe crear una regla para permitir el acceso y ofercerlo automáticamente:

Dado que seleccionamos la opción de administración ofrecer ir a éste sitio, pero tan solo queremos crear la regla, por lo que seleccionamos NO

Para el ejemplo que trabajaremos, usamos la base de de datos de ejemplo encontrada en http://msftdbprodsamples.codeplex.com/releases/view/37304

La instrucción Usada para subir la base de datos es: CreateAdventureWorksForSQLAzure <NombreServidorDB>.database.windows.net SqlDemo@<NombreServidorDB> Pa$$w0rd

 

 

SERVIDOR DE REPORTING SERVICES

Crearemos el servicio de reporting services

 

Al hacer click en Crear se presenta la siguiente pantalla:

Luego de diligenciar el formulario inicia el proceso de creación del servidor

Al finalizar, se puede revisar el servidor al hacer hacer click en la columna WebService URL

El Servicio solicita credenciales:

Se presenta la página básica del servicio:

 

 

CONECTÁNDOSE DESDE SSMS

Éste paso es opcional

Ésta es la forma en la que se visualiza la base de datos Azure desde SSMS

 

 

REPORT BUILDER

Para crear un reporte podemos utilizasr Visual Studio o report Builder, en éste caso usaremos Report builder

Nos conectaremos al Servidor

Ingresamos las credenciales de Reporting

Y posteriormente crearemos el DataSource que usaremos para el reporte

Conectándose a Base de Datos Remota (importante escribir el nombre de la base de datos a mano)

Conexión Exitosa

Visualizamos la cadena de conexión

 

 

Luego, procedemos a crear el dataset con el que vamos a desarrollar el reporte

Click en Query Designer (solicita credenciales)

Definimos el query a usar

El Query usado es:

 SELECT     SOH.SalesOrderNumber, S.Name AS Store, SOH.OrderDate, C.FirstName AS

SalesFirstName, C.LastName AS SalesLastName, E.JobTitle AS SalesTitle,
                      SOH.PurchaseOrderNumber, SM.Name AS ShipMethod, BA.AddressLine1

AS BillAddress1, BA.AddressLine2 AS BillAddress2, BA.City AS BillCity,
                      BA.PostalCode AS BillPostalCode, BSP.Name AS BillStateProvince,

BCR.Name AS BillCountryRegion, SA.AddressLine1 AS ShipAddress1,
                      SA.AddressLine2 AS ShipAddress2, SA.City AS ShipCity,

SA.PostalCode AS ShipPostalCode, SSP.Name AS ShipStateProvince, SCR.Name AS

ShipCountryRegion,
                      PPP.PhoneNumber AS CustPhone, CC.FirstName AS CustFirstName,

CC.LastName AS CustLastName
FROM         Person.Address AS SA INNER JOIN
                      Person.StateProvince AS SSP ON SA.StateProvinceID =

SSP.StateProvinceID INNER JOIN
                      Person.CountryRegion AS SCR ON SSP.CountryRegionCode =

SCR.CountryRegionCode RIGHT OUTER JOIN
                      Sales.SalesOrderHeader AS SOH LEFT OUTER JOIN
                      Sales.Customer AS SC ON SOH.CustomerID = SC.CustomerID LEFT OUTER

JOIN
        Person.Person AS CC ON SC.PersonID = CC.BusinessEntityID INNER

JOIN
        Person.PersonPhone AS PPP ON CC.BusinessEntityID =

PPP.BusinessEntityID LEFT OUTER JOIN
                      Person.Address AS BA INNER JOIN
                      Person.StateProvince AS BSP ON BA.StateProvinceID =

BSP.StateProvinceID INNER JOIN
                      Person.CountryRegion AS BCR ON BSP.CountryRegionCode =

BCR.CountryRegionCode ON SOH.BillToAddressID = BA.AddressID ON
                      SA.AddressID = SOH.ShipToAddressID LEFT OUTER JOIN
                      Person.Person AS C RIGHT OUTER JOIN
                      HumanResources.Employee AS E ON C.BusinessEntityID =

E.BusinessEntityID ON SOH.SalesPersonID = E.BusinessEntityID LEFT OUTER JOIN
                      Purchasing.ShipMethod AS SM ON SOH.ShipMethodID = SM.ShipMethodID

LEFT OUTER JOIN
                      Sales.Store AS S ON SOH.SalesPersonID = S.BusinessEntityID

 

Establecemos un nombre al Dataset

 

Creamos el reporte:

Una vez diseñado:

Ejecutamos el reporte localmente

Posteriormente guardamos el reporte en el  servidor

Reporte Publicado en Reporting Services Azure

Visualización de reporte

 

Observamos el campo que dice cambio de credenciales en caso de tener varios usuario y varios contextos de seguridad

 

Reporting Services en Azure permite la conexión desde varios orígenes de datos, es importante tener en cuenta la latencia

También se recomienda que el desarrollo de los reportes (en la medida de lo posible se haga con orígenes de datos remotos)

 

Los comentarios son bienvenidos, espero sea de ayuda,

FREDY LEANDRO ANGARITA CASTELLANOS
Sql Server MVP