Utilización de dos paneles en gráficos

Una de las utilizaciones de los gráficos es representar, en un mismo espacio, diferentes series. En ocasiones estas series no tienen la misma escala lo que dificulta la interpretación de la información.

Esto se aprecia en la imagen siguiente.



Podemos observar dos gráficos por separado (CPC y #Clicks), cada uno con su panel, y un tercer gráfico en donde integramos las dos series de los anteriores a través de un único gráfico con un único panel. Como se puede apreciar la visualización no es correcta debido a las diferentes escalas de las series y concentración de puntos y lineas.

Una alternativa para mejorar la lectura y compresión del gráfico sería representar cada una de las series en su propio panel.

Un panel es la zona de dibujo donde pintamos nuestro gráfico.

Si a este gráfico se le asignan dos paneles podremos apreciar en la siguiente imagen sin lugar a dudas que la información es mucho más limpia y aclaratoria que la anterior.



Para poder realizar este gráfico de dos paneles, empezaremos desde cero y seguiremos los siguientes pasos.
  • Selección de datos
  • Creación de un gráfico básico
  • Creación de paneles

¡Vamos a ello!

Selección de datos

Primero crearemos la consulta adecuada para poder representar las dos series que nos interesan. En nuestro caso a partir de datos de Google Adwords, representaremos las series de Coste por Click (CPC) y número de Clicks (Clicks) en el periodo de un año, dividido por meses.



El resultado de la consulta será el siguiente:


Creación de un gráfico básico

Una vez tenemos los datos correctos, abriremos el asistente de gráficos y añadiremos las dos series, una de nombre 'CPC' y otra de nombre '#Clicks' desde el apartado Series. En estas series tendremos que asignar el argumento y valores. Decir que el argumento tendrá que ser común en las dos series y lo único que cambiará serán el valor.

Esto se realiza desde el apartado Datos.



Por último asignaremos un tipo de gráfico a las dos series. En nuestro caso la serie  '#Clicks' la representaremos a partir de barras y la serie 'CPC' con lineas.

Estos pasos se realizan desde el apartado Series.


Creación de paneles

Una vez configuradas correctamente las series crearemos un nuevo eje de la Y y un nuevo panel. Este panel se le asigna un nombre por defecto, en este caso 'Panel1'. La creación de un nuevo eje de las Y se debe a la diferencia de escala entre las dos series. Hay que pensar que este nuevo panel tendrá tener los mismos elementos de cualquier gráfico, ejes de X e Y y los respectivos valores de su serie.

Estos pasos se realización desde el apartado Diagrama.


Asignación de los ejes

A partir de aquí tendremos que asignar los ejes de las X e Y a cada panel. El eje de la X es común a los dos paneles y el de las Y diferentes.

Esto se realiza desde el apartado Vistas de Series.



Seguidamente moveremos el eje de la Y del nuevo panel al lado izquierdo para su correcta visualización.

Esto lo haremos desde el apartado de Ejes.



Quitaremos peso al panel nuevo, para una mejor visualización. En este caso pasamos de 1 a 0.4.

Esto lo haremos desde el apartado de Paneles.



Por último eliminaremos la visualización del eje de las X en el 'Panel por defecto' para que no este duplicado.

Esto lo realizaremos desde el apartado de Ejes.



Ahora ya sólo nos quedará guardar el gráfico y dentro del control definir las dimensiones y activar el panel trasero si fuese necesario e insertarlo en el documento analítico.
Leer más »

Creación de una ruptura en la serie de un gráfico

A la hora de representar un gráfico nos encontramos muchas veces en que los valores de la serie están descompensados, es decir, hay uno o varios valores muy superiores a los demás y a la hora de representarse en el gráfico su visualización no es la adecuada debido a que la escala es regular a todos los valores que se representan. Veamos un ejemplo.



Estos casos se pueden dar en muchos escenarios tales como el arriba mostrado recogiendo los motivos de llamada de una centralita o por ejemplo el origen de las visitas de una página web a través del lenguaje. En este último caso casi seguro que el 99% de las visitas serán del país de origen de la página, en nuestro caso España, y el otro porcentaje será de otros idiomas. Estos valores como se puede ver en el gráfico anterior se visualizan muy pequeños dado su peso mínimo en el gráfico.

En esta entrada vamos a aprender a como romper la serie para una visualización clara entre los valores de esta y así los valores con menor peso se visualicen de una manera mucho más clarificadora. El resultado en el caso de la centralita sería el siguiente.




La línea de ruptura enfatiza los valores menores y los muestra de una manera visible y clarificadora.

Ruptura de la serie

Una vez tenemos el gráfico creado y sus valores representados, tendremos que ir al apartado de Ejes y en las pestañas seleccionar Rupturas de Escala.



Seguidamente elegimos el eje a romper la escala, en nuestro caso el eje de las Y, ya que el gráfico ha sido invertido para mejor visualización y habilitamos la ruptura con un recuento máximo a escoger. Normalmente se le asigna un número lógico a los valores representados.



Esta linea de ruptura divide el gráfico entre los valores que haya mayor diferencia. Seguidamente lo exponemos en un ejemplo para mayor explicación.

Si tenemos tres valores que son 2, 5 y 15 la línea de ruptura la pondrá entre el 5 y el 15, pero si en cambio tenemos los valores 2, 9 y 12 la línea la pondrá entre el 2 y el 9.

Con esta simple acción ya podemos representar nuestro gráfico de una manera más clarificadora y visual.
Leer más »

Agrupación de los valores menores en un gráfico

Muchas veces cuando representamos un gráfico nos encontramos un gran listado de valores en el argumento y entre ellos muchos con muy poco peso dentro de la serie. Hay veces que estos valores al ser una gran número no se pueden visualizar de una manera correcta en nuestro gráfico o también podría ser que no fuesen importantes para nuestra información. Veamos un ejemplo.



Una posibilidad que tenemos para hacer que este gráfico sea mucho más visible y clarificador es agrupar estos valores en un único valor para representarlos. Veamos ahora como quedaría si los agrupáramos en un valor de nombre 'Otros'.



Seguidamente vamos a mostrar que acciones llevar a cabo en Atlas SBI para obtener este resultado.

Agrupación de valores

Una vez tenemos nuestro gráfico correctamente creado, iremos al apartado de Series e iremos a la pestaña 'Opciones Mejores X'.



Una vez dentro de esta pestaña, la habilitaremos y escogeremos el modo de agrupación que queremos aplicar. Existen tres.
  • Recuento. Muestra los n primeros argumentos del gráfico, agrupando el resto a partir del valor indicado
  • Valor umbral. Actúa sobre el valor asociado al argumento y muestra todos aquellos argumentos cuyo valor sea superior al número indicado.
  • Porcentaje umbral. Actúa también sobre el valor asociado al argumento, pero en este caso muestra todos los argumentos cuyo valor porcentual sobre el total sea superior al número indicado, es decir, si indicamos 2, mostrará todos aquellos argumentos cuyo valor esté por encima del 2% y agrupará en un único elemento todos los que estén por debajo del 2%. 

En este ejemplo agruparemos por 'Recuento' indicando como recuento el valor 9,  es decir, mostrará los primeros nueve países y agrupará del 10º hasta el final. Por último indicaremos que este valor resultante de la agrupación tenga como nombre 'Otros'.



Con esta simple acción ya podemos representar nuestro gráfico de una manera más clarificadora y visual.
Leer más »

Utilización de plantillas HTML en Documentos analíticos

Podemos ahorrar mucho tiempo en la elaboración de los Documentos analíticos utilizando plantillas de HTML predefinidas. Dichas plantillas pueden contener la estructura básica del informe, con el logo de la empresa, archivos de hojas de estilo o librerías de JavaScript.

Otra de las ventajas de utilizar plantillas, es que si queremos realizar algún cambio de diseño que afecte a los Documentos analíticos que hemos creado, realizando los cambios en la plantilla afectará a todos los documentos que la utilicen y no será necesario que pasemos documento por documento a realizar las correcciones

Creación de la plantilla
Para crear la plantilla, pulsaremos el botón Nuevo en la sección Plantillas HTML del grupo Entorno de la pestaña Proyecto, y asignaremos el nombre y la descripción tal como haríamos con cualquier otro elemento de Atlas SBI.

En la sección Diseño HTML crearemos la estructura HTML que queramos que tenga nuestro documento, recordando, eso sí, que ha de tener el <form> </form> como aparece en el diseño de los Documentos Analíticos que creamos tradicionalmente.

Por supuesto, podemos añadir imágenes o archivos css o JavaScript que hayamos cargado previamente como Recursos de Atlas SBI

Definicion Plantillas Atlas SBI

Una vez tengamos nuestra estructura básica, en los lugares donde queramos añadir nuestros controles, arrastraremos un Elemento HTML tipo PlaceHolder (ver imagen) y le asignaremos un nombre.

Podemos añadir tantos como necesitemos y todos han de estar dentro de las etiquetas <form> </form>.

Utilización de la plantilla
Para utilizar la plantilla en un documento analítico, simplemente deberemos elegir la plantilla a utilizar en el combo Plantilla HTML del documento.

Utilización de plantillas en Documentos Analíticos de Atlas SBI


Seguidamente borraremos el contenido del documento HTML y desde la pestaña Elementos HTML, arrastramos TODOS los elementos Content definidos, que corresponderán a cada uno de los elementos PlaceHolder que definimos en la nuestra plantilla.

Finalmente, dentro de cada una de las etiquetas Content podemos añadir controles o código HTML a nuestra elección.

Leer más »

Convertir entero en hh:mm:ss

Cuando se trata de medir tiempo, por ejemplo el tiempo que se tarda en resolver una incidencia, o el tiempo que se tarda en contestar una llamada, por regla general los valores se guardan en segundos.

De la misma manera, calculamos la diferencia entre dos horas, el resultado lo obtendremos en segundos. 

Sin embargo, en muchos casos, nos encontraremos ante la necesidad de mostrar un número entero en segundos con un formato tipo  'hh:mm:ss' 

Para lograrlo recurriremos a la función DateAdd, aunque también es posible obtener el mismo resultado con la función Cast.

Mediante DateAdd
La finalidad de esta función de SQL Server es la de añadir un intervalo de tiempo a un valor con formato fecha. Aunque también nos permite generar a partir de un valor numérico (int) un valor de tipo fecha (date), y puede resultar de gran utilidad en escenarios donde necesitamos generar datos aleatorios en ese formato.

La sintaxis de la función es la siguiente:

DATEADD (datepart , number , date )

Siendo datepart (yyyy, m, d, h, s...) la parte de la fecha (date) donde se agregará el valor numérico entero (number).

A continuación mostraremos un ejemplo donde sumaremos y restaremos 30 segundos a una fecha indicada y a otra sin especificar.



Mediante Cast

Aunque la función DateAdd nos facilitó la conversión que necesitábamos, también es posible obtener el mismo resultado mediante la función Cast, cuya sintaxis es la siguiente:

CAST (expression AS data_type [ (length) ])

Siendo expression cualquier expresión válida, data_type el tipo de datos de destino, y length un número entero opcional que especifica la longitud del tipo de datos de destino (el valor predeterminado es 30).

En el siguiente código podréis comprobar el uso de la función Cast junto a la función DateAdd. Para la primera fue necesario un cálculo previo.




Seguramente tendréis alternativas a este tipo de conversión. Desde aquí os animamos a que las compartáis con todos nosotros.


Podéis encontrar más información en:


Leer más »

Obtener la MODA de un grupo

En el desarrollo de nuestro último proyecto nos hemos encontrado ante la necesidad de saber para cada día del mes a qué hora ha habido el mayor número de llamadas, o lo que es lo mismo, cuál es la hora punta de llamadas de cada día.

En el fondo, si lo tratàramos como una muestra estadística sería obtener que hora es la Moda para cada día.

Supongamos que tenemos la siguiente consulta:
Select DiaLlamada, HoraLlamada, Count(*) as Total
From Llamadas
Where EjercicioLlamada = 2016 and MesLlamada = 9
Group by DiaLlamada, HoraLlamada
Order by 1, 3 desc

El resultado es el número total de llamadas por día y hora ordenado por día y número de llamada. Es decir, para cada bloque de días, el primer valor siempre nos devuelve la hora en la que hubo mayor número de llamadas.

Como lo que queremos es el primer registro de cada una de las categorías, no nos sirve añadir una clausula tipo TOP a la sentencia anterior, puesto que nos devolvería los n primeros resultados que serían siempre del mismo día.

Si hubieramos ordenado por número de llamadas independientemente del día tampoco podríamos utilizar la clausula TOP puesto que podrían haber registros del mismo día (si el mismo día hubiera habido muchas llamadas a varias horas) 

Solución
Para obtener el primer registro de cada una de las categorías de nuestra consulta tenemos que usar la función de categorización ROW_NUMBEREsta función devuelve el número secuencial de una fila dentro de una partición de un conjunto de resultados, comenzando con 1 para la primera fila de cada partición.

En otras palabras, numera las filas reiniciando el contador cada vez que encuentra una nueva categoría. En nuestro caso la agrupación la haremos sobre el campo DiaLlamada. Como la consulta se ordena por el campo Total, la hora que tenga más llamadas tendrá el número 1, la siguiente el 2 y así sucesivamente hasta la hora que menos llamadas haya tenido.

Por lo tanto, añadiendo la función Row_number a nuestra consulta:
Select DiaLlamada, HoraLlamada, count(*) as NumLlamadas, 
ROW_NUMBER() OVER (PARTITION BY DiaLlamada ORDER BY count(*) DESC) AS RN 
From Llamadas 
Where EjercicioLlamada = 2016 and MesLlamada = 9 
Group by DiaLlamada, HoraLlamada

Tendremos la lista ordenada y en el campo RN el número de orden dentro de la categoría, por lo que únicamente nos quedará seleccionar de esta lista los elementos que tengan el valor 1 en el campo RN.

With Lista AS
(
Select DiaLlamada, HoraLlamada, count(*) as NumLlamadas,
ROW_NUMBER() OVER (PARTITION BY DiaLlamada ORDER BY count(*) DESC) AS RN
From Llamadas
Where EjercicioLlamada = 2016 and MesLlamada = 9   
Group by DiaLlamada, HoraLlamada
)
Select * 
FROM Lista
Where RN = 1;


Es posible que dos franjas horarias tengan el mismo número de llamadas. En nuestro caso no importaba cual de ellas obtener. Si fuese importante, se debería modificar la consulta para ordenar según el criterio necesario.

Otras funciones de categorización

Además de Row_number, existen otras alternativas para ordenar y categorizar resultados, os dejamos la definición y un ejemplo de utilización de cada una de ellas.

ROW_NUMBER es una función de categoría y como tal, es una función no determinista. Si la expresión de ordenación no es única, cada vez que se ejecute la consulta podrá asignar posiciones diferentes para cualquier fila donde la expresión de ordenación sea la misma. En cambio, si esa expresión de ordenación es única, cada fila obtendrá una número de fila única.

RANK - A diferencia de ROW_NUMBER, no asigna una numeración única cuando dos registros comparten la misma posición. Es decir, podrán haber tantas posiciones 1ª, 2ª,... como registros compartan esa posición.

DENSE_RANK - Su funcionamiento es similar a RANK, aunque a diferencia de ese, sí asigna números contiguos.

NTILE - Según el parámetro que le asignemos dividirá los registros en tantos grupos, repitiendo la numeración.

Podéis comprobar sus diferencias en el resultado de la consulta que hemos estado utilizando:

Select DiaLlamada, HoraLlamada, count(*) as NumLlamadas,
ROW_NUMBER() OVER (PARTITION BY DiaLlamada ORDER BY count(*) DESC) AS "Row Number",
RANK() OVER (PARTITION BY DiaLlamada ORDER BY count(*) DESC) AS "Rank",
DENSE_RANK() OVER (PARTITION BY DiaLlamada ORDER BY count(*) DESC) AS "Dense Rank",
NTILE (4) OVER (PARTITION BY DiaLlamada ORDER BY count(*) DESC) AS "Periodo"
From Llamadas
Where EjercicioLlamada = 2016 AND MesLlamada = 9 AND CodigoGrupo = 2
Group By DiaLlamada, HoraLlamada


Podéis obtener más información en los siguientes enlaces:

Funciones de categoría (Transact-SQL)
ROW_NUMBER (Transact-SQL)
ROW_NUMBER, o cómo obtener la enésima fila de un conjunto de resultados
Get top 1 row of each group
Adding Row Number to SQL SELECT result
Leer más »

Cómo guardar parámetros seleccionados por el usuario

En la mayoría de los documentos analíticos de Atlas SBI es posible filtrar la información contenida a través de una selección realizada en un panel de selectores situados en alguna zona del documento. Por lo general, ese panel de selectores muestra, inicialmente, valores genéricos o por defecto cada vez que se abre. A partir de ahí, el usuario puede escoger los valores de los selectores que considere oportunos y que modificarán la información mostrada por el documento analítico.



Cabe la posibilidad de que el usuario de un documento analítico seleccione siempre las mismas opciones que le proporcionan los selectores, de modo que acabe realizando una tarea repetitiva y automática. Ante ese posible escenario, hemos creído oportuno mostrar una solución de fácil implementación cuyos detalles se muestran a continuación.

Mediante la siguiente solución, un usuario podrá guardar los valores que desee de un panel de selectores. Así, cuando vuelva a cargar el documento, los selectores mostrarán por defecto las selecciones guardadas, y la información aparecerá ya filtrada por esa selección. Todo ello, manteniendo la capacidad de escoger cualquier otra opción disponible de los selectores.

Visión general
La solución consiste en guardar los valores que el usuario quiera que aparezcan como filtros del documento analítico consultado en una tabla de nuestra base de datos. Para llevarlo a cabo, serán necesarios:

  • dos nuevos controles en el documento: un button y un simpledata, 
  • una nueva tabla en la base de datos, 
  • un procedimiento almacenado y 
  • la modificación de los selectores originales.

El button lo podremos colocar en la zona de los selectores para que el usuario tenga la posibilidad de guardar su selección si lo estima oportuno. Al ejecutarlo, le pasará los valores necesarios al SimpleData para que llame un procedimiento almacenado en nuestra base de datos que poblará la nueva tabla.

Dicha tabla deberá contener los valores necesarios para devolverlos al selector original; a saber, nombres de proyecto, documento, rol, usuario y control. De manera que la próxima vez que se abra el documento, los selectores consultarán dicha tabla para mostrar, si es que existe tal registro, la selección guardada por el usuario.


Solución completa

Se puede descargar la solución completa desde aquí, los archivos adjuntos contienen:

  1. BD-Parametros - Script de SQLServer para generar una Base de datos de ejemplo que incluye la tabla donde se almacenarán los datos a guardar de los selectores y el procedimiento almacenado para actualizarla.
  2. ProcedimientoAlmacenado - Selectores - Procedimiento almacenado de SQLServer por separado.
  3. GuardarParametros.gz - Archivo backup de Atlas SBI donde se incluyen:
    • PasoParametros-01 - Documento de ejemplo con dos selectores para comprobar la modificación de los selectores
    • PasoParametros-02 - Documento de ejemplo con tres selectores para comprobar la modificación de los selectores
Si se desea comprobar directamente el funcionamiento, será necesario realizar lo siguiente:
  • Ejecutar el script del archivo BD-Parametros para generar la BD.
  • Importar en AtlasSBI cualquiera de los documentos contenidos en el archivo GuardarParametros.gz y asignarlos a un rol. 
Las consultas contenidas en los dos documentos trabajan sobre la base de datos Northwind. Si no se dispone de ella, habrá que modificarlas.

Procedimiento detallado
Aún así, los siguientes pasos explican la manera de implementar esta solución. Están desarrollados en SQL Server, pero son perfectamente extrapolables a cualquier otro sistema:

  • Paso 1: Crear una tabla en la BD para almacenar los datos que el usuario desee guardar por defecto. En esa tabla se guardarán los nombres del ProyectoDocumentoRolUsuarioControl y el Valor seleccionados. (El archivo adjunto "BD-Parametros" contiene un script para la generación de una BD a modo de ejemplo de uso)

  • Paso 2: Crear un nuevo control de tipo Button en el documento donde se encuentren los selectores que queramos capturar. Ese botón recibirá por parámetros los valores de los selectores. (Ejemplos disponibles en los documentos "Guardar parámetros - Doc 1 y 2" dentro del archivo adjunto de backup de Atlas SBI "GuardarParametros.gz" 
     
    • Paso 3: Modificar, en el documento donde se haya añadido el control Button, cada uno de los selectores para que muestren el valor correspondiente guardado en la tabla del paso 1, o bien la lista de selección normal si aún no hubiera selección guardada. Se pueden comprobar ejemplos en los selectores: Vendedor, Producto y País, de los documentos contenidos en el archivo "GuardarParametros.gz".
    • Paso 4: Crear un Procedimiento almacenado en la BD que actualizará la tabla de parámetros cuando sea activado el control de tipo Button del paso 2. Este procedimiento se encargará de recoger los valores de cada control a guardar, comparándolos con los existentes en la tabla del paso 1 y añadiéndolos en caso de no existir previos o bien haber sido modificados por la nueva selección. (Archivo adjunto: "ProcedimientoAlmacenado - Selectores")
    • Paso 5: Crear un control Simple Data y añadirlo al documento (No es necesario que este control sea visible, pero sí es indispensable añadirlo). Se encargará de recoger los valores capturados por el botón y ejecutar la llamada al Procedimiento almacenado anterior con los valores a guardar en la tabla del paso 1.​​ 

    Una vez implementada la solución, al abrir el documento, en lugar de aparecer la selección por defecto:




    Se realizará una consulta a la tabla para comprobar si existen valores guardados:



    ​​
    Y, en caso de haberlos, cargará esos valores directamente en los selectores.

    No es necesario seleccionar un valor para cada selector. Es posible incluso guardar el valor por defecto, como en el caso del ejemplo, el valor "-Todos-" y combinarlo con cualquier otro valor de los selectores.


    Leer más »

    Conectar Atlas SBI a BigQuery mediante Driver ODBC Simba

    El volumen de datos generados por las diferentes aplicaciones de gestión, así como por los sistemas que nos relacionan con nuestros clientes, competidores, proveedores, etc. crece de forma exponencial.

    El conjunto de tecnologías conocidas como Big Data nace para gestionar este gran volumen de información. Como en todos los sectores, y sobre todo cuando se trata de tecnologías incipientes, hay multitud de soluciones que van desde la instalación en nuestras dependencias a utilizar sistemas en Cloud.

    En este sentido, Google ofrece BigQuery como alternativa al procesamiento de grandes volúmenes de datos sin necesidad de instalar infraestructura en nuestras dependencias. Esta tecnología permite realizar consultas que con los sistemas tradicionales podrían tardar minutos e incluso horas en apenas unos segundos.


    Al final del artículo encontraréis más información sobre qué es y cómo comenzar a trabajar con Google BigQuery.

    Por supuesto, no es la única tecnología válida ni el único fabricante que ofrece algo parecido, se podría hacer exactamente lo mismo con Amazon DynamoDB, Mongo DB cualquier otro sistema de Big Data.

    Configuración del driver de Big Query

    Para conectarnos en tiempo real a BigQuery utilizaremos el Driver ODBC para BigQuery de Simba. Una vez descargado, las claves de activación para la versión real o trial las recibiremos por separado y deberemos copiarlas en la carpeta de Simba. Cuando lo hayamos instalado, procederemos a la creación de un DSN.

    Desde el Panel de control de Windows, crearemos un nuevo DSN de sistema del tipo Simba ODBC Driver with SQL Connector for Google BigQuery. Asignaremos como nombre "Google BigQuery"

    Asignaremos un nombre y pulsaremos el botón Sign In.


    Aparecerá una pantalla para conectar con nuestro servicio de Google BiqQuery, deberemos introducir nuestro usuario de Google y la contraseña


    Una vez identificados, nos solicitará permiso para acceder a las consultas y administración de datos de Big Query.



    Cuando aceptemos la petición, nos devolverá una clave que deberemos insertar en la configuración del driver ODBC. Para ello la copiaremos en el portapapeles (e incluso en algún lugar seguro).



    Y la pegaremos en el campo Confirmation Code. El campo Refresh Token se actualizará con la validación por parte de Google.



    Para realizar las pruebas elegiremos una de las bases de datos públicas que proporciona Google, pero podemos indicar nuestra base de datos (Catalog) y nuestro proyecto en los desplegables.



    Antes de guardar el DSN provaremos la conexión.


    Configuración de la conexión a BigQuery en Atlas SBI

    Para configurar la conexión en Atlas SBI, abriremos nuestro proyecto, seleccionaremos la pestaña Conexiones y crearemos una nueva conexión.

    Seleccionaremos ODBC como Proveedor de conexión, y el la cadena de conexión escribiremos "DSN=Google BigQuery" (o el nombre que hayamos indicado en nuestra conexión ODBC)



    Probaremos la conexión


    Y ya podremos utilizarla en cualquier control de Atlas SBI para obtener datos en tiempo real de Big Data.

    Como podéis apreciar en la imagen, Atlas SBI muestra el esquema de la base de datos BigQuery, tanto tablas como campos y tipos de datos para facilitar la creación de consultas.


    En los ejemplos utilizados hemos realizado consultas sobre bases de datos de 137 Millones de registros.




    Enlaces relacionados



    Leer más »

    Consultar el catálogo de Bases de datos en SQL Server

    De la misma manera que en ocasiones necesitamos información sobre las tablas de una base de datos, podemos encontrarnos ante la necesidad de conocer qué bases de datos se hallan en una instancia de SQL Server y sus características, ya sea para su administración ulterior o como una simple consulta de estado.

    No es necesario especificar el uso de la base de datos master. Se pueden ejecutar desde cualquier base de datos contenida en la instancia.

    Ver los archivos de las Bases de datos

    La siguiente consulta nos permitirá listar todos los archivos de las bases de datos contenidas en una instancia. Es decir, devolverá una fila por cada base de datos almacenada en la base de datos master. Además, nos permitirá conocer la ubicación física de cada una de las bases de datos, así como su tamaño y estado.


    SELECT * FROM sys.master_files
    




    Obtener una lista de las Bases de datos

    Mediante la siguiente consulta obtendremos un listado de todas las bases de datos contenidas en nuestra instancia, con sus respectivos nombres, identificadores, fechas de creación y demás características.

    SELECT * FROM sys.databases
    



    Ubicaciones de los archivos de las Bases de datos

    Podemos utilizar esta última consulta para averiguar las ubicaciones de los archivos de las bases de datos contenidas en nuestra instancia. Nos devolverá una fila por cada base de datos y las ubicaciones de los archivos de datos y registros, así como la fecha de creación de la base de datos.

    SELECT db.name, db.database_id, db.create_date,
    dt.physical_name AS data_physical_name, dt.data_space_id AS data_data_space_id,
    lg.physical_name AS log_physical_name, lg.data_space_id AS log_data_space_id
    FROM sys.databases db
    LEFT JOIN sys.master_files dt ON db.database_id = dt.database_id AND dt.type_desc = 'ROWS'
    LEFT JOIN sys.master_files lg ON db.database_id = lg.database_id AND lg.type_desc = 'LOG'
    






    Podréis encontrar más información en:

    https://www.datavail.com/blog/use-sys-master_files-sql-servers/
    https://www.mssqltips.com/sqlservertip/1037/system-information-in-sql-server-2000-vs-sql-server-2005/
    http://www.sqlservercentral.com/Forums/Topic932220-146-1.aspx


    Leer más »

    Lo más visto