Este artículo responde a las preguntas más frecuentes sobre la creación de conjuntos de datos.
-
Errores en conjuntos de datos
-
Creación de conjuntos de datos
-
Procesamiento de campos del conjunto de datos
How do I convert a Unix timestamp field to a standard date/time field?
How do I configure the display of null or empty values on a dashboard?
How can I use parameterized SQL for flexible ratio calculations?
How can I use parameterized SQL for cumulative calculations?
How can I use parameterized SQL to query the last N days of data with a single date input?
-
Permisos del conjunto de datos
-
Visualización del conjunto de datos
-
Asociaciones del conjunto de datos
-
Rendimiento del conjunto de datos
Errores de SQL personalizado
Si su SQL personalizado falla al ejecutarlo o guardarlo, revise las siguientes causas comunes.
1. Sintaxis incorrecta en el SQL personalizado
Quick BI preprocesa el SQL personalizado antes de enviarlo a la base de datos: analiza los marcadores de posición, agrega una cláusula de límite e inserta comentarios SQL. Un error de sintaxis provoca que la base de datos devuelva un error en esa etapa.
Ejecute la instrucción directamente en su base de datos para comprobar la sintaxis. Puede consultar las instrucciones ejecutadas anteriormente en el historial.

2. Instrucciones previas a la instrucción SELECT
Quick BI añade una cláusula limit 200 cuando usted ejecuta o guarda SQL personalizado, por lo que la consulta debe comenzar con una instrucción SELECT. Colocar cualquier instrucción, incluidas las instrucciones HINT, antes del SELECT provoca que la consulta falle.
Para usar una instrucción HINT, seleccione la opción Set HINT Statement en lugar de escribirla en línea.
Para obtener información sobre los orígenes de datos compatibles con instrucciones HINT, consulte Data source feature list.

3. Marcadores de posición sin valores predeterminados
El SQL personalizado admite el paso de parámetros mediante marcadores de posición. Al visualizar un informe, los controles de consulta pasan los valores de los marcadores al SQL subyacente para permitir un filtrado flexible. Para conocer los casos de uso y la sintaxis de los marcadores de posición, consulte Placeholders.
Cualquier marcador de posición utilizado dentro de una instrucción SELECT debe tener un valor predeterminado. Sin este valor, el SQL queda incompleto en tiempo de ejecución y devuelve un error.
En el siguiente ejemplo, el campo Order Level falla porque el marcador de posición de valor $val{profit_range} no tiene un valor predeterminado. Asignar un valor predeterminado de 100 y volver a ejecutar el SQL resuelve el problema.
Establezca un valor predeterminado global para los marcadores de posición en las instrucciones SELECT, no solo un valor predeterminado a nivel de conjunto de datos, para evitar errores cuando los usuarios abren el panel sin configurar un valor de filtro.
SELECT report_date, order_level, shipping_type,price,order_number,area,
case when profit_amt< $val{profit_range} then'Loss'
when profit_amt> $val{profit_range} then'Profit'
else 'Break-even'
end 'Order Level'
from company_sales_record
where $expr{report_date :report_date}
and $expr{order_level :order_level}
and $expr{order_number :order_number}


4. Otros problemas
Utilice convenciones estándar para comentarios y alias en el SQL personalizado. Un uso no estándar puede provocar que la base de datos devuelva nombres de campo inesperados, active fallos en el análisis de marcadores de posición o genere otros errores.
No agregue un punto y coma (;) al final de su SQL personalizado.
Errores en campos calculados
Los campos calculados hacen referencia a columnas de la tabla física. Para convertir el tipo de datos de un campo, utilice la función de conversión adecuada; cambiar el tipo en la interfaz de usuario no altera el tipo del campo físico subyacente y puede causar un error.
Los campos calculados de dimensión no pueden contener funciones de agregación como SUM o AVG. Para realizar una agregación, guarde el campo como medida.
Los campos de texto solo admiten agregaciones COUNT y COUNTD. Las funciones SUM, MAX y similares no están disponibles para campos de texto. Convierta el campo a un tipo numérico antes de realizar esos cálculos.
Creación de conjuntos de datos a partir de archivos locales
Cuando crea un conjunto de datos a partir de un archivo local cargado, utilice la sintaxis SQL del origen de datos de destino. Por ejemplo, cargar un archivo en un espacio de exploración requiere la sintaxis de ClickHouse al crear y consultar el conjunto de datos.
Cargar un archivo en un espacio de exploración tiene dos limitaciones: no se admite SQL personalizado y las uniones entre orígenes no están disponibles. Para utilizar estas funciones, cargue el archivo en un origen de datos dentro de un espacio de grupo que sea compatible con uniones entre orígenes.
Si carga un archivo en un origen de datos de base de datos y utiliza SQL personalizado, haga referencia al nombre de la tabla física generado automáticamente en la base de datos, no al nombre original del archivo. Para encontrar el nombre de la tabla física, abra la lista de archivos del origen de datos, haga clic en el icono de configuración del archivo y busque el nombre en la página de edición.

Conversión de marcas de tiempo Unix a fecha y hora
Si un campo de hora se almacena como una marca de tiempo Unix con un data type de Text o Number, utilice la función from_unixtime/@parmname para convertirlo en un campo de fecha y hora estándar.
En la página de edición del conjunto de datos, cree un campo calculado como se muestra a continuación.

Guarde y actualice el conjunto de datos.

Configuración de la visualización de valores nulos o vacíos
Configure el estilo de visualización para valores vacíos en la configuración del conjunto de datos.

Configure el estilo de visualización para valores vacíos en la configuración del panel.

Uso de SQL parametrizado para cálculos de proporciones
Quick BI no admite de forma nativa cálculos de proporciones, pero puede implementarlos con SQL parametrizado en un conjunto de datos personalizado.
El siguiente ejemplo calcula la participación de cada ciudad en las ventas totales de su provincia, con filtros de rango de fechas y provincia/ciudad seleccionables por el usuario. El conjunto de datos tiene cuatro campos: fecha (date), provincia (province), ciudad (city) y monto de ventas (order_amt).
select a.city,sum(fenzi)/sum(fenmu) as ratio
from
(select province,city,sum(order_amt) fenzi
from zhanbi_test
where $expr{date:date_para}
and $expr{province:province_para}
and $expr{city:city_para}
group by province,city
)a
left join
(select province,sum(order_amt) fenmu
from zhanbi_test
where $expr{date:date_para}
and $expr{province:province_para}
and $expr{city:city_para}
group by province
)b on a.province=b.province
Esta consulta agrega por el campo city; puede adaptarla para agregar por otros campos. Después de generar el SQL, convierta el campo de fecha a un tipo de fecha en la configuración de parámetros del conjunto de datos; luego cree el conjunto de datos y agréguelo a un panel.
Uso de SQL parametrizado para cálculos acumulativos
Quick BI cuenta con varios tipos de cálculos acumulativos integrados: Year-to-Date, Historical Cumulative, Month-to-Date, Quarter-to-Date y Custom. Si el conjunto de datos tiene configurado un año fiscal y el campo de fecha es un campo de año fiscal, la granularidad a nivel de día también admite Fiscal Year-to-Date y Fiscal Quarter-to-Date. Para más detalles, consulte Date Accumulation.
Para los cálculos acumulativos integrados, seleccione un campo day de tipo fecha en las dimensiones, como se muestra a continuación.
Para calcular valores acumulativos durante un período de tiempo personalizado, utilice SQL parametrizado. El siguiente ejemplo calcula un total acumulado mensual:
select a.mon_date,avg(a.order_num) order_num,sum(b.order_num) add_num
from (
select date_format(report_date,'%Y/%m') mon_date,count(distinct order_id) order_num,max(date_format(report_date,'%Y/%m')) max_mon_date
from company_sales_record_copy
where $expr{report_date:month_date}
group by date_format(report_date,'%Y/%m')
)a
left join(
select date_format(report_date,'%Y/%m') mon_date,count(distinct order_id) order_num
from company_sales_record_copy
where $expr{report_date:month_date}
group by date_format(report_date,'%Y/%m')
)b on a.max_mon_date>=b.mon_date
group by a.mon_date
Cuando el control de consulta se vincula al campo de parámetro en el panel, el filtrado por un rango de meses devuelve el valor acumulado para cada mes a partir del primer mes del rango.
Consulta de los últimos N días con una sola fecha
De forma predeterminada, seleccionar una sola fecha en Quick BI muestra datos únicamente para ese día, mientras que seleccionar un rango muestra datos para todo el intervalo. Para mostrar tanto un día específico como los N días previos en dos gráficos separados, utilice SQL parametrizado con expresiones de desplazamiento de fecha:
select report_date,area,product_type,count(distinct order_id) order_num
from company_sales_record
where area in ('Southwest','Northwest','North China')
and ( $expr{dateadd(report_date,1,'dd'):date1}
or $expr{dateadd(report_date,2,'dd'):date1}
or $expr{dateadd(report_date,3,'dd'):date1})
group by area,product_type,report_date
Seguridad a nivel de fila
Sí. Para más información, consulte Row-level security.
Límite predeterminado de visualización de filas
De forma predeterminada, se muestran 100 filas.
Paginación en la vista de datos
No.
Campos nuevos no mostrados
Los campos calculados agregados no se muestran en la vista previa de datos.

Uso de datos geográficos en gráficos de mapas
En la página de edición del conjunto de datos, cambie el tipo de dimensión de su campo geográfico al tipo de información geográfica correspondiente.

Para más detalles, consulte Create a dataset.
Uso de descripciones de campo como nombres
En la configuración del espacio de trabajo, puede definir si se utilizan nombres de tablas o comentarios al crear conjuntos de datos en dicho espacio.
También puede seleccionar varios campos en el panel de configuración masiva de campos del conjunto de datos y aplicar sus descripciones como nombres de campo de forma simultánea.

Si la descripción de un campo está vacía, no se puede utilizar como nombre del campo.
Si crea un conjunto de datos mediante SQL personalizado, establezca alias de campo en la instrucción. Estos alias funcionan como los nombres de campo mostrados.
Actualización de conjuntos de datos tras cambios en tablas
Cuando ya no se encuentra un campo físico, Quick BI no lo elimina automáticamente, ya que el campo podría seguir referenciado en análisis o paneles anteriores. Haga clic en la tabla dentro del lienzo para ver los cambios de campos en el panel derecho; luego elimine todos los campos no válidos de una sola vez con un único clic.
Creación de conjuntos de datos desde múltiples bases de datos
Arrastre tablas de ambos orígenes de datos al lienzo y configure una relación entre ellas. Tras la aceleración con Quick Engine, los datos quedan listos para su uso. Para conocer los orígenes de datos compatibles con Quick Engine, consulte Data source feature list.
Copia de conjuntos de datos a otro espacio de trabajo
Utilice la función de copia de conjuntos de datos entre espacios de trabajo. Para más detalles, consulte Copy a dataset across workspaces.
Configuración de modelos de datos para análisis de múltiples tablas
Para más información, consulte Build a model.
Configurar un modelo de datos define las relaciones JOIN entre tablas. Establézcalo en la página de edición del conjunto de datos. Para más detalles, consulte Build a model.
Ventajas del almacenamiento en caché de consultas de conjuntos de datos
Habilitar el almacenamiento en caché de resultados de consulta acelera el acceso a los informes y reduce la carga de la base de datos. Después de la primera solicitud, las consultas subsiguientes dentro del período de caché se sirven desde la memoria caché; la base de datos no se vuelve a consultar hasta que la caché expire.
Optimización de consultas lentas de conjuntos de datos SQL
Optimice la lógica SQL: compruebe que se estén utilizando índices y reemplace uniones complejas con vistas de base de datos siempre que sea posible.
Establezca valores predeterminados con efecto global para los marcadores de posición SQL a fin de evitar escaneos completos de tabla cuando no se aplique ningún filtro.