Desglose de datos más potente

Una función única de Looker es que se conecta directamente a tu base de datos. Esto significa que siempre tendrás acceso a los datos más recientes y podrás desglosar al nivel más detallado disponible. Por lo tanto, si bien puedes ver resúmenes anuales o mensuales, Looker también ofrece la opción de desglosar el día, la hora o el segundo de forma instantánea.

En esta página, se proporcionan ejemplos de cómo personalizar y aprovechar el desglose de datos a fin de crear experiencias de análisis más potentes para tus usuarios, incluidos los siguientes:

  • Cómo personalizar la presentación de los valores en las tablas básicas de datos de desglose
  • Personalización de la visualización del desglose para crear una experiencia visual de desglose

Cómo personalizar la presentación de los valores en las tablas básicas de datos de desglose

La arquitectura moderna nativa de la Web de Looker te permite hacer mucho más que solo desglosar de un nivel al siguiente nivel más detallado. Puedes crear cualquier ruta de desglose personalizada con solo unos pocos parámetros.

En los siguientes ejemplos, se muestra cómo personalizar la forma en que se presentan los datos en las tablas de desglose, incluido lo siguiente:

  • Agregar límites de filas personalizados (hasta 5,000 filas) a una tabla de desglose
  • Agregar órdenes a una tabla de desglose
  • Cómo agregar tablas dinámicas a una tabla de desglose

Agregar límites de filas (hasta 5,000 filas) a una tabla de desglose

Agregar límites de filas a una tabla de desglose te permite controlar cómo se presentan los datos a los usuarios cuando desglosan los valores de las mediciones. Por ejemplo, ¿qué sucede si deseas mostrar solo los primeros 20 resultados en una tabla de desglose cuando un usuario examina un valor de medición Returned Count (Recuento devuelto)? Puedes usar el parámetro link y establecer el subparámetro url en "{{ link }}&limit=20", como en el siguiente código de LookML:

measure: returned_count {
  type: count_distinct
  sql: ${id} ;;
  filters: [is_returned: "yes"]
  drill_fields: [detail*]
  link: {
    label: "Explore Top 20 Results"
    url: "{{ link }}&limit=20"
  }
}

set: detail {
  fields: [id, order_id, status, created_date, sale_price, products.brand, products.item_name, users.email]
}

Esto permite a los usuarios desglosar los 20 resultados principales cuando seleccionan Explorar los 20 resultados principales en el menú de desglose de la medición Conteo devuelto:

Agregar órdenes a una tabla de desglose

Además de limitar los datos, también puedes controlar el modo en que se ordenan en una tabla desglosada. Por ejemplo, ¿qué sucede si deseas mostrar los 20 resultados por Precio de oferta cuando un usuario accede a un valor de medición de Recuento devuelto? Puedes usar el parámetro link y establecer el subparámetro url en "{{ link }}&sorts=order_items.sale_price". En el siguiente código de LookML, se combina la ordenación personalizada con un límite de filas personalizadas:

measure: returned_count {
  type: count_distinct
  sql: ${id} ;;
  filters: [is_returned: "yes"]
  drill_fields: [detail*]
  link: {
    label: "Explore Top 20 Results by Sale Price"
    url: "{{ link }}&sorts=order_items.sale_price+desc&limit=20"
  }
}

set: detail {
  fields: [id, order_id, status, created_date, sale_price, products.brand, products.item_name, users.email]
}

Esto permite a los usuarios desglosar los 20 resultados principales por precio de oferta si seleccionan Explorar los 20 resultados principales por precio de oferta en el menú desplegable de la medida Precio de oferta:

Cómo agregar tablas dinámicas a una tabla de desglose

Además de limitar y ordenar los datos, también puedes dinamizar las dimensiones en una tabla de desglose. Por ejemplo, ¿qué sucede si deseas agregar una tabla dinámica a un campo de Nivel de edad para mostrar el nivel de año y de porcentaje de margen bruto de cada grupo de edad cuando un usuario accede a un valor de medición de Recuento de pedidos? Puedes usar el parámetro link y establecer el subparámetro url en "&pivots=users.age_tier":

measure: order_count {
  type: count_distinct
  drill_fields: [created_year, item_gross_margin_percentage_tier, users.age_tier, total_sale_price]
  link: {
    label: "Total Sale Price by Month for Each Age Tier"
    url: "{{link}}&pivots=users.age_tier"
  }
  sql: ${order_id} ;;
}

Esto permite a los usuarios desglosar el año y el porcentaje de margen bruto para cada edad cuando seleccionan Precio de venta total por mes para cada nivel de edad en el menú de desglose de la medición Recuento de pedidos:

Cómo crear una experiencia visual de desglose

Las tablas de datos transmiten datos de maneras eficaces, pero ¿qué sucede si deseas visualizar los datos que ve un usuario cuando realiza un desglose? Existen varias maneras de mostrar datos de desglose en visualizaciones además de tablas de datos. En esta sección, se incluyen los siguientes ejemplos:

  • Profundización con la función Labs de perforación visual
  • Perforación en un diagrama de dispersión con un límite y un promedio móvil
  • Perforación de un gráfico de líneas apiladas con elementos dinámicos
  • Perforación a una visualización personalizada
  • Cómo desglosar un cálculo basado en tablas con formato condicional

Profundización con la función Labs de perforación visual

La función Labs de taladro visual les permite a los usuarios profundizar en una exploración o una aspecto. Con ninguna personalización y un conjunto de desglose limitado, puedes mostrar datos de desglose en diferentes tipos de visualización preseleccionados en función de los datos de Looker.

La función Labs de exploración visual no es compatible con los paneles. Para los paneles, puedes crear una experiencia de desglose visual con el parámetro link sin necesidad de habilitar la función Labs. En las secciones que siguen, se proporcionan ejemplos de cómo crear una experiencia de desglose visual con el parámetro link.

A modo de ejemplo, para mostrar cuántos artículos se vendieron por día, puedes crear una medición que profundice en los campos Created Date y Total Sale Price:

measure: count {
  type: count_distinct
  sql: ${id} ;;
  drill_fields: [created_date, total_sale_price]
}

El desglose visual es la opción más sencilla. Sin embargo, ¿qué sucede si quieres controlar qué tipo de visualización se muestra a los usuarios cuando exploran la sección? En las siguientes secciones, se proporcionan ejemplos de cómo personalizar aún más la visualización de un desglose.

Perforación en un diagrama de dispersión con un límite y un promedio móvil

Puedes permitir que los usuarios exploren en detalle un gráfico de dispersión que incluya una línea de tendencia de promedio móvil. Por ejemplo, supongamos que deseas mostrar cuántos artículos se vendieron por día como un diagrama de dispersión con un promedio móvil de 30 días:

Para ello, puedes especificar la configuración de visualización en una URL mediante Variables líquidas. Estos parámetros de configuración controlan la visualización que aparece en el desglose:

measure: count {
  type: count_distinct
  sql: ${id} ;;
  drill_fields: [created_date, total_sale_price]
  link: {
    label: "Show as scatter plot"
    url: "
    {% assign vis_config = '{
     \"stacking\" : \"\",
     \"show_value_labels\" : false,
     \"label_density\" : 25,
     \"legend_position\" : \"center\",
     \"x_axis_gridlines\" : true,
     \"y_axis_gridlines\" : true,
     \"show_view_names\" : false,
     \"limit_displayed_rows\" : false,
     \"y_axis_combined\" : true,
     \"show_y_axis_labels\" : true,
     \"show_y_axis_ticks\" : true,
     \"y_axis_tick_density\" : \"default\",
     \"y_axis_tick_density_custom\": 5,
     \"show_x_axis_label\" : false,
     \"show_x_axis_ticks\" : true,
     \"x_axis_scale\" : \"auto\",
     \"y_axis_scale_mode\" : \"linear\",
     \"show_null_points\" : true,
     \"point_style\" : \"circle\",
     \"ordering\" : \"none\",
     \"show_null_labels\" : false,
     \"show_totals_labels\" : false,
     \"show_silhouette\" : false,
     \"totals_color\" : \"#808080\",
     \"type\" : \"looker_scatter\",
     \"interpolation\" : \"linear\",
     \"series_types\" : {},
     \"colors\": [
     \"palette: Santa Cruz\"
     ],
     \"series_colors\" : {},
     \"x_axis_datetime_tick_count\": null,
     \"trend_lines\": [
      {
      \"color\" : \"#000000\",
      \"label_position\" : \"left\",
      \"period\" : 30,
      \"regression_type\" : \"average\",
      \"series_index\" : 1,
      \"show_label\" : true,
      \"label_type\" : \"string\",
      \"label\" : \"30 day moving average\"
      }
     ]
    }' %}
     {{ link }}&vis_config={{ vis_config | encode_uri }}&toggle=dat,pik,vis&limit=5000"
  }
}

Perforación de un gráfico de líneas apiladas con elementos dinámicos

También puedes permitir que los usuarios exploren un gráfico de líneas apilado, por ejemplo, un gráfico de líneas apiladas que muestre el Precio de venta total de cada Número de mes, y que se cambiará por Año de creación:

En el siguiente LookML, se especifica la configuración de la visualización anterior:

measure: total_sale_price {
  type: sum
  value_format_name: usd
  sql: ${sale_price} ;;
  drill_fields: [total_sale_price, created_month_name, created_year]
  link: {
    label: "Show as stacked line"
    url: "
    {% assign vis_config = '{
     \"stacking\" : \"normal\",
     \"legend_position\" : \"right\",
     \"x_axis_gridlines\" : false,
     \"y_axis_gridlines\" : true,
     \"show_view_names\" : false,
     \"y_axis_combined\" : true,
     \"show_y_axis_labels\" : true,
     \"show_y_axis_ticks\" : true,
     \"y_axis_tick_density\" : \"default\",
     \"show_x_axis_label\" : true,
     \"show_x_axis_ticks\" : true,
     \"show_null_points\" : false,
     \"interpolation\" : \"monotone\",
     \"type\" : \"looker_line\",
     \"colors\": [
     \"#5245ed\",
     \"#ff8f95\",
     \"#1ea8df\",
     \"#353b49\",
     \"#49cec1\",
     \"#b3a0dd\"
     ],
     \"x_axis_label\" : \"Month Number\"
    }' %}
     {{ link }}&vis_config={{ vis_config | encode_uri }}&sorts=order_items.created_year+asc,order_items.created_month_name+asc&pivots=order_items.created_year&toggle=dat,pik,vis&limit=500&column_limit=15"
  } # NOTE the &pivots=
}

Perforación a una visualización personalizada

También puede permitir que los usuarios exploren una visualización personalizada:

Para hacerlo, puedes incluir la visualización personalizada en la configuración de visualización que especifiques para el parámetro link:

measure: average_shipping_time {
  type: average
  value_format_name: decimal_2
  sql: ${shipping_time} ;;
  drill_fields: [products.category, users.age_tier, average_shipping_time]
  link: {
    label: "See as custom viz (heatmap)"
    url: "
    {% assign vis_config = '{
     \"minColor\" : \"#d6d6d6\",
     \"maxColor\" : \"#9a33e3\",
     \"dataLabels\" : false,
     \"custom_color_enabled\" : false,
     \"custom_color\" : \"forestgreen\",
     \"show_single_value_title\": true,
     \"show_comparison\" : false,
     \"comparison_type\" : \"value\",
     \"comparison_reverse_colors\": false,
     \"show_comparison_label\" : true,
     \"show_view_names\" : true,
     \"show_row_numbers\" : true,
     \"truncate_column_names\" : false,
     \"hide_totals\" : false,
     \"hide_row_totals\" : false,
     \"table_theme\" : \"editable\",
     \"limit_displayed_rows\" : false,
     \"enable_conditional_formatting\": false,
     \"conditional_formatting_include_totals\": false,
     \"conditional_formatting_include_nulls\": false,
     \"type\" : \"highcharts_heatmap\",
     \"stacking\" : \"\",
     \"show_value_labels\" : false,
     \"label_density\" : 25,
     \"legend_position\" : \"center\",
     \"x_axis_gridlines\" : false,
     \"y_axis_gridlines\" : true,
     \"y_axis_combined\" : true,
     \"show_y_axis_labels\" : true,
     \"show_y_axis_ticks\" : true,
     \"y_axis_tick_density\" : \"default\",
     \"y_axis_tick_density_custom\": 5,
     \"show_x_axis_label\" : true,
     \"show_x_axis_ticks\" : true,
     \"x_axis_scale\" : \"auto\",
     \"y_axis_scale_mode\" : \"linear\",
     \"ordering\" : \"none\",
     \"show_null_labels\" : false,
     \"show_totals_labels\" : false,
     \"show_silhouette\" : false,
     \"totals_color\" : \"#808080\",
     \"series_types\" : {},
     \"hidden_fields\" : [
     \"order_items.count\",
     \"order_items.total_sale_price\"
     ]
    }' %}
     {{ link }}&vis_config={{ vis_config | encode_uri }}&sorts=products.category+asc,users.age_tier+asc&toggle=dat,pik,vis&limit=5000"
  }
}

Cómo desglosar un cálculo basado en tablas con formato condicional

También puedes permitir que los usuarios exploren en detalle un cálculo de tabla que muestre el formato condicional:

Esto se puede definir en LookML de la siguiente manera:

measure: total_sale_price {
  type: sum
  value_format_name: usd
  sql: ${sale_price} ;;
  drill_fields: [created_month, users.gender, total_sale_price]
  link: {
    label: "Table Calc & Total"
    url: "
    {% assign table_calc = '[
     { \"table_calculation\": \"percent_of_total\",
     \"label\": \"Percent of Total\",
     \"expression\": \"${order_items.total_sale_price:row_total} / sum(${order_items.total_sale_price:row_total})\",
     \"value_format\": null,
     \"value_format_name\": \"percent_2\",
     \"_kind_hint\": \"supermeasure\",
     \"_type_hint\": \"number\"
     },
     { \"table_calculation\": \"growth_rate\",
     \"label\": \"Growth Rate\",
     \"expression\": \"${order_items.total_sale_price} / offset(${order_items.total_sale_price},1) - 1\",
     \"value_format\": null,
     \"value_format_name\": \"percent_2\",
     \"_kind_hint\": \"measure\",
     \"_type_hint\": \"number\"
    }]' %}
    {% assign vis_config = '{
     \"type\": \"table\",
     \"show_view_names\": false,
     \"show_row_numbers\": false,
     \"truncate_column_names\": false,
     \"table_theme\": \"gray\",
     \"enable_conditional_formatting\": true,
     \"conditional_formatting\": [
     {
     \"type\": \"low to high\",
     \"value\": null,
     \"background_color\": null,
     \"font_color\": null,
     \"palette\": {
     \"name\": \"Custom\",
     \"colors\": [
     \"#FFFFFF\",
     \"#6e00ff\"
     ]},
     \"bold\": false,
     \"italic\": false,
     \"strikethrough\": false,
     \"fields\": [
     \"growth_rate\"
     ]},{
     \"type\": \"low to high\",
     \"value\": null,
     \"background_color\": null,
     \"font_color\": null,
     \"palette\": {
     \"name\": \"Custom\",
     \"colors\": [
     \"#FFFFFF\",
     \"#88ff78\"
     ]},
     \"bold\": false,
     \"italic\": false,
     \"strikethrough\": false,
     \"fields\": [
     \"percent_of_total\"
    ]}]}' %}
     {{link}}&total=on&row_total=right&dynamic_fields={{ table_calc |replace(') ', '' | encode_uri }}&pivots=users.gender&vis_config={{ vis_config |replace(') ', '' | encode_uri }}"
  }
}