Skip to main content
Announcements
Qlik Community Office Hours - Bring your Ideation questions- May 15th, 11 AM ET: REGISTER NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
sorrakis01
Specialist
Specialist

QVDs vs Carga Binaria

Hola compañer@s,

Siempre he tenido una duda al respecto y me gustaría crear un pequeño debate o conocer vuestra opinión de que es mejor en la carga de documentos.

Aclaración:

Por si alguién la desconoce la carga binaria es cargar los datos de un proyecto qlikview desde otro proyecto qlikview.

Por ejemplo, tenemos un qvw llamado Ventas.qvw que se encuentra en la ruta  c:\Ventas.qvw

Si quisieramos cargar solo los datos  de Ventas.qvw abriríamos un nuevo proyecto qvw y en el script pondríamos antes de la declaración de las variables BINARY 'c:\Ventas.qvw' (si le diesemos a Reload ya nos cargaría los datos de Ventas) pero tambien podemos añadir nuevos datos o tablas, para eso lo hacemos como siempre despues de las variables.... Recargamos el Script y Listo.

La duda:

Imaginaros que tenemos toda la información historica en varios qvds (info mensual). Imaginaros que ese histórico se carga cada vez en el documento final (se hace carga incremental...), Que creeis que es mejor cargar esos qvds o tener un proyecto ya cargado con esos qvds (solo se hace una recarga mensual para insertar el nuevo qvd mensual) y llamarlo mediante un Binary?

Es decir creéis que para éstos casos es beneficioso cargar los qvds, o cargar un binary?

Por lo que he visto y leído no consigo saber si existen ventajas o no, es por eso que me gustaría saber vuestra opinión al respecto. Lo que si es seguro con carga Binary, es que el script es mucho más seguro.

Muchas Gracias,

Un abrazo

9 Replies
rubenmarin

En situaciones concretas podría llegar a ser beneficioso pero también hay que contar con que debe ser la primera instrucción, y puedes preferir que el script no empiece cargando esos datos.

Yo lo uso a veces de la forma que comentas para acelerar partes de los desarrollos pero no los he dejado así en entornos productivos, normalmente prefiero usar distintas capas de qvds y que el documento final realice cargas de qvds optimizadas.

Será bueno saber otras opiniones, igual encontramos alguna forma genérica de acelerar las cargas.

Saludos.

JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Hola Jordi:

Sin mucha reflexión, si usas el BINARY para cargar todos los datos y añadir algún nuevo gráfico, casi parece menos complicado añadirlo al original.

Por otra parte, tienes que garantizar que se han generado todos los qvd de forma correcta y el Binary antes de empezar la recarga de la app gráfica.

En mi caso solo uso BINARY para crear documentos de prueba que me permiten depurar la aplicación original.

Respecto a utilizar QVD, uso dos variantes de generación de qvd's (sin gráficos) dependiendo del volumen de información

A) Tres capas, para mucho volumen de datos: a.1 Histórico,+ a.2 Año en Curso + a.3 Mes en Curso

B) Dos capas, para menos volumen de datos: a.1 Histórico,+ a.2 Año en Curso


En ambos casos el tratamiento de los qvd se hace en una app online que contiene los gráficos.


Seguro que hay otras alternativas, pero estas son muy útiles cuando la información es estática.


Saludos

Joaquín

sorrakis01
Specialist
Specialist
Author

Gracias Rubén,

Muy buen apunte, el de que a veces no sirve ya que es lo primero que cargas.

Sí esa es la idea, encontrar la forma de optimizar y perfeccionar las cargas.

Saludos,

sorrakis01
Specialist
Specialist
Author

Gracias Joaquín,

Por lo que veo usáiss una metodologia parecida.

La idea es hacer una puesta en común de metodologias de carga...

Saludos,

JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Claro, la alternativa es recuperar toda la información del RDBMS en cada recarga.

En ese caso, solo es útil para tablas de hechos con movimiento continuo ... por ejemplo las tareas que pasan de abiertas a en curso a finalizadas a reabiertas (y vuelta a empezar) continuamente inutilizando cualquier generador de QVD's

La magia de las tres capas es usar un INCLUDE con la rutina LOAD que te sirva para todas las variantes del caso A o del caso B

Has utiilzado INCLUDES ?

Saludos

Joaquín

sorrakis01
Specialist
Specialist
Author

Hola Joaquín,

Sí, las hemos usado para rutas, logins, calendarios.... pero no para capas. (No ha sido necesario o basicamente ni lo he llegado a pensar... ) Si quieres pon algun ejemplo para que la gente lo vea y valore.

Gracias como siempre

Saludos,

rubenmarin

Una vez lo vi en un documento que ahora no he encontrado, pero la parte de las capas cuando hay muchos datos la hago más o menos como indica este post (en inglés, tampoco lo hago así exactamente pero es lo más parecido que he encontrado): Re: Multi-tier Architecture

Una primera capa con datos tal como se extraen de la base de datos (que se puede optimizar extrayendo solo los datos que se hayan actualizado desde la última extracción), con qvds por año o año-mes para delimitar los ficheros que se modifican tal como indica Joaquín.

Una segunda capa que genera qvds con datos precalculados a partir de los qvds de la primera capa para evitar tener que hacer los cálculos en el documento, los documentos realmente cargan a partir de estos qvds, hasta ahora no he necesitado más capas de qvds.

De esta forma cuando hay varios documentos que tienen que obtener datos de la misma tabla la extracción de datos de la base de datos se hace solo una vez y además al crear nuevos documentos pueden aprovechar los datos precalculados para los documentos que ya existiesen o generar sus propios qvds de la 2ª capa usando los qvds de la 1ª capa.

JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Jordi, casi mejor abre otro blog para los includes así no mezclamos los contenidos.

Rubén aporta una técnica en fases donde la fase 1 importa los datos del RDBMS, fase 2 los procesa y la fase 3 los muestra ... aplicado a nuestro conocimiento sería 1 = SELECT , 2 = LOAD y 3 = App.qvw

Lo que yo propongo es fusionar los pasos 1 y 2 que a su vez troceo en periodos de tiempo para recuperar del RDBMS la información más reciente durante la carga diaria enlazado con la recarga de la aplicación online.

JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Hola chicos:

Estaba pensando abrir un blog por los includes ... pero he encontrado éste

The $(Include) which you $(Must_Include) into your toolkit

Hala, todos a leer

Saludos

Joaquín