NoConcatenate
El prefijo NoConcatenate obliga a que dos tablas cargadas con conjuntos de campos idénticos se traten como dos tablas internas separadas, cuando de lo contrario se concatenarían automáticamente.
Sintaxis:
NoConcatenate( loadstatement | selectstatement )
De forma predeterminada, si se carga una tabla que contiene un número idéntico de campos y nombres de campo que coinciden con los de una tabla cargada anteriormente en el script, Qlik Sense concatenará automáticamente estas dos tablas. Esto sucederá incluso si la segunda tabla tiene un nombre diferente.
Sin embargo, si se incluye el prefijo de script NoConcatenate antes de la instrucción de carga o la instrucción de selección de la segunda tabla, estas dos tablas se cargarán por separado.
Un uso típico de NoConcatenate es cuando necesitamos crear una copia temporal de una tabla para realizar algunas transformaciones temporales en esa copia, mientras conservamos una copia de los datos originales. NoConcatenate garantiza que se pueda hacer esa copia sin tener que volver a agregarla implícitamente a la tabla de origen.
Configuraciones regionales
A menos que se especifique algo distinto, los ejemplos de este tema utilizan el siguiente formato de fecha: MM/DD/YYYY. El formato de fecha se especifica en la sentencia SET DateFormat de su script de carga de datos. El formato de fecha predeterminado puede ser diferente en su sistema, debido a su configuración regional y otros factores. Puede cambiar el formato en los ejemplos a continuación para ajustarlo a sus necesidades. O puede cambiar los formatos en su script de carga para que coincidan con estos ejemplos. Para más información, vea Modificar la configuración regional para aplicaciones y scripts.
La configuración regional predeterminada en las aplicaciones se basa en el perfil de usuario. Estos ajustes de formato regional no están relacionados con el idioma mostrado en la interfaz de usuario de Qlik Cloud. Qlik Cloud se mostrará en el mismo idioma que esté utilizando su navegador.
Si es un creador de aplicaciones, puede establecer la región por defecto para las apps que cree. Para más información, vea Establecer sus configuraciones regionales preferidas para crear apps y scripts en Analítica de Qlik Cloud.
Ejemplo | Resultado |
---|---|
Source: LOAD A,B from file1.csv; CopyOfSource: NoConcatenate LOAD A,B resident Source; |
Se carga una tabla con A y B como medidas. Se carga una segunda tabla con los mismos campos utilizando la variable NoConcatenate. |
Ejemplo 1: concatenación implícita
Vista general
En este ejemplo, agregará dos scripts de carga en orden secuencial.
Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.
El script de carga contiene:
-
Un conjunto de datos inicial con fechas y cantidades que se envía a una tabla denominada Transactions.
Primer script de carga
Transactions:
LOAD
*
Inline [
id, date, amount
1, 08/30/2018, 23.56
2, 09/07/2018, 556.31
3, 09/16/2018, 5.75
4, 09/22/2018, 125.00
5, 09/22/2018, 484.21
6, 09/22/2018, 59.18
7, 09/23/2018, 177.42
];
Resultados
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
-
id
-
date
-
amount
id | fecha | cantidad |
---|---|---|
1 | 08/30/2018 | 23.56 |
2 | 09/07/2018 | 556.31 |
3 | 09/16/2018 | 5.75 |
4 | 09/22/2018 | 125.00 |
5 | 09/22/2018 | 484.21 |
6 | 09/22/2018 | 59.18 |
7 | 09/23/2018 | 177.42 |
Segundo script de carga
Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.
El script de carga contiene:
-
Un segundo conjunto de datos con campos idénticos se envía a una tabla denominada Sales.
Sales:
LOAD
*
Inline [
id, date, amount
8, 10/01/2018, 164.27
9, 10/03/2018, 384.00
10, 10/06/2018, 25.82
11, 10/09/2018, 312.00
12, 10/15/2018, 4.56
13, 10/16/2018, 90.24
14, 10/18/2018, 19.32
];
Resultados
Cargue los datos y vaya a la tabla.
id | fecha | cantidad |
---|---|---|
1 | 08/30/2018 | 23.56 |
2 | 09/07/2018 | 556.31 |
3 | 09/16/2018 | 5.75 |
4 | 09/22/2018 | 125.00 |
5 | 09/22/2018 | 484.21 |
6 | 09/22/2018 | 59.18 |
7 | 09/23/2018 | 177.42 |
8 | 10/01/2018 | 164.27 |
9 | 10/03/2018 | 384.00 |
10 | 10/06/2018 | 25.82 |
11 | 10/09/2018 | 312.00 |
12 | 10/15/2018 | 4.56 |
13 | 10/16/2018 | 90.24 |
14 | 10/18/2018 | 19.32 |
Cuando se ejecuta el script, la tabla Sales se concatena implícitamente en la tabla existente Transactions, debido a que los dos conjuntos de datos comparten una cantidad idéntica de campos, con nombres de campo idénticos. Esto sucede a pesar de que la segunda etiqueta de nombre de la tabla intenta nombrar el conjunto de resultados ‘Sales’.
Puede ver que el conjunto de datos de Ventas está concatenado implícitamente observando el registro de progreso de la carga de datos.
Ejemplo 2: escenario de caso de uso
Vista general
En este escenario de caso de uso, tiene:
-
Un conjunto de datos de transacciones con:
-
id
-
fecha
-
importe (en libras esterlinas)
-
-
Una tabla de divisas con:
-
Tasas de conversión de USD a GBP
-
-
Un segundo conjunto de datos de transacciones con:
-
id
-
fecha
-
cantidad (en USD)
-
Ahora cargará cinco scripts en orden secuencial.
-
El primer script de carga contiene un conjunto de datos inicial con fechas y cantidades en GBP que se envía a una tabla denominada Transactions.
-
El segundo script de carga contiene:
-
Un segundo conjunto de datos con fechas y cantidades en USD que se envía a una tabla denominada Transactions_in_USD.
-
El prefijo noconcatenate que se coloca antes de la instrucción de carga del conjunto de datos Transactions_in_USD para evitar la concatenación implícita.
-
-
El tercer script de carga contiene el prefijo join que se usará para crear una tasa de cambio de moneda entre GBP y USD en la tabla Transactions_in_USD.
-
El cuarto script de carga contiene el prefijo concatenate que agregará Transactions_in_USD a la tabla Transactions inicial.
-
El quinto script de carga contiene la instrucción drop table que eliminará la tabla Transactions_in_USD, sus datos se han concatenado en la tabla Transactions.
Primer script de carga
Transactions:
Load * Inline [
id, date, amount
1, 12/30/2018, 23.56
2, 12/07/2018, 556.31
3, 12/16/2018, 5.75
4, 12/22/2018, 125.00
5, 12/22/2018, 484.21
6, 12/22/2018, 59.18
7, 12/23/2018, 177.42
];
Resultados
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
- id
- date
- amount
id | fecha | cantidad |
---|---|---|
1 | 12/30/2018 | 23.56 |
2 | 12/07/2018 | 556.31 |
3 | 12/16/2018 | 5.75 |
4 | 12/22/2018 | 125.00 |
5 | 12/22/2018 | 484.21 |
6 | 12/22/2018 | 59.18 |
7 | 12/23/2018 | 177.42 |
La tabla muestra el conjunto de datos inicial con los importes en libras esterlinas.
Segundo script de carga
Transactions_in_USD:
NoConcatenate
Load * Inline [
id, date, amount
8, 01/01/2019, 164.27
9, 01/03/2019, 384.00
10, 01/06/2019, 25.82
11, 01/09/2019, 312.00
12, 01/15/2019, 4.56
13, 01/16/2019, 90.24
14, 01/18/2019, 19.32
];
Resultados
Cargue los datos y vaya a la tabla.
id | fecha | cantidad |
---|---|---|
1 | 12/30/2018 | 23.56 |
2 | 12/07/2018 | 556.31 |
3 | 12/16/2018 | 5.75 |
4 | 12/22/2018 | 125.00 |
5 | 12/22/2018 | 484.21 |
6 | 12/22/2018 | 59.18 |
7 | 12/23/2018 | 177.42 |
8 | 01/01/2019 | 164.27 |
9 | 01/03/2019 | 384.00 |
10 | 01/06/2019 | 25.82 |
11 | 01/09/2019 | 312.00 |
12 | 01/15/2019 | 4.56 |
13 | 01/16/2019 | 90.24 |
14 | 01/18/2019 | 19.32 |
Verá que se ha agregado el segundo conjunto de datos de la tabla Transactions_in_USD.
Tercer script de carga
Este script de carga une una tasa de cambio de moneda de USD a GBP a la tabla Transactions_in_USD.
Join (Transactions_in_USD)
Load * Inline [
rate
0.7
];
Resultados
Cargue los datos y vaya al visor del modelo de datos. Seleccione la tabla Transactions_in_USD y verá que cada registro tiene un valor de campo "tasa" de 0.7.
Cuarto script de carga
Usando la carga residente, este script de carga concatenará la tabla Transactions_in_USD con la tabla Transactions después de convertir las cantidades a USD.
Concatenate (Transactions)
LOAD
id,
date,
amount * rate as amount
Resident Transactions_in_USD;
Resultados
Cargue los datos y vaya a la tabla. Verá nuevas entradas con los importes en GBP de las líneas ocho a catorce.
id | fecha | cantidad |
---|---|---|
1 | 12/30/2018 | 23.56 |
2 | 12/07/2018 | 556.31 |
3 | 12/16/2018 | 5.75 |
4 | 12/22/2018 | 125.00 |
5 | 12/22/2018 | 484.21 |
6 | 12/22/2018 | 59.18 |
7 | 12/23/2018 | 177.42 |
8 | 01/01/2019 | 114.989 |
8 | 01/01/2019 | 164.27 |
9 | 01/03/2019 | 268.80 |
9 | 01/03/2019 | 384.00 |
10 | 01/06/2019 | 18.074 |
10 | 01/06/2019 | 25.82 |
11 | 01/09/2019 | 218.40 |
11 | 01/09/2019 | 312.00 |
12 | 01/15/2019 | 3.192 |
12 | 01/15/2019 | 4.56 |
13 | 01/16/2019 | 63.168 |
13 | 01/16/2019 | 90.24 |
14 | 01/18/2019 | 13.524 |
14 | 01/18/2019 | 19.32 |
Quinto script de carga
Este script de carga eliminará las entradas duplicadas de la cuarta tabla de resultados del script de carga, dejando solo las entradas con cantidades en GBP.
drop tables Transactions_in_USD;
Resultados
Cargue los datos y vaya a la tabla.
id | fecha | cantidad |
---|---|---|
1 | 12/30/2018 | 23.56 |
2 | 12/07/2018 | 556.31 |
3 | 12/16/2018 | 5.75 |
4 | 12/22/2018 | 125.00 |
5 | 12/22/2018 | 484.21 |
6 | 12/22/2018 | 59.18 |
7 | 12/23/2018 | 177.42 |
8 | 01/01/2019 | 114.989 |
9 | 01/03/2019 | 268.80 |
10 | 01/06/2019 | 18.074 |
11 | 01/09/2019 | 218.40 |
12 | 01/15/2019 | 3.192 |
13 | 01/16/2019 | 63.168 |
14 | 01/18/2019 | 13.524 |
Tras cargar el quinto script de carga, la tabla de resultados muestra las catorce transacciones que existían en ambos conjuntos de datos de transacciones; sin embargo, las transacciones 8-14 han visto sus cantidades convertidas a GBP.
Si eliminamos el prefijo NoConcatenate que se usó antes de Transactions_in_USD en el segundo script de carga, el script fallará con el error: “Tabla "Transactions_in_USD" no encontrada”. Esto se debe a que la tabla Transactions_in_USD se habría concatenado automáticamente en la tabla Transactions original.