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 puedes acceder a los datos más recientes y puedes desglosar hasta el nivel más detallado disponible. Por lo tanto, aunque puedes ver resúmenes anuales o mensuales, Looker también ofrece la opción de desglosar el día, la hora o el segundo al instante.

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

  • Cómo personalizar la forma en que se presentan los valores en las tablas de datos básicos de desglose
  • Personaliza la visualización de desglose para crear una experiencia de desglose visual

Cómo personalizar la forma en que se presentan los valores en las tablas de datos básicos de desglose

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

En los siguientes ejemplos, se demuestra cómo puedes personalizar la forma en que se presentan los datos en tablas de desglose, lo que incluye:

  • Agregar límites de filas personalizados (hasta 5,000 filas) a una tabla de desglose
  • Agregar ordenaciones a una tabla de desglose
  • Agregar pivotes a una tabla de perforación

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

Agregar límites de filas a una tabla desglosada 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 desglosa un valor de medición de Returned Count? 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 les permite a los usuarios desglosar los 20 resultados principales seleccionando Explorar los 20 resultados principales en el menú de desglose de la medición Recuento devuelto:

Agregar ordenaciones a una tabla de desglose

Además de limitar los datos, también puedes controlar cómo se ordenan en una tabla de desglose. Por ejemplo, ¿qué sucede si deseas mostrar los 20 resultados por Precio de oferta cuando un usuario desglosa un valor de la métrica Cantidad de resultados? Puedes usar el parámetro link y establecer el subparámetro url en "{{ link }}&sorts=order_items.sale_price". El siguiente código de LookML combina la ordenación personalizada con un límite de filas personalizado:

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 les permite a los usuarios desglosar los 20 resultados principales por precio de oferta seleccionando Explorar los 20 resultados principales por precio de oferta en el menú de desglose de la medida Precio de oferta:

Agregar pivotes a una tabla de perforación

Además de limitar y ordenar los datos, también puedes orientar dimensiones dinámicas en una tabla de desglose. Por ejemplo, ¿qué pasaría si quisieras agregar una tabla dinámica a un campo de Age Tier para mostrar el año y el nivel de porcentaje de margen bruto de cada grupo de edad cuando un usuario consulta el valor de medición de Order Count? 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 grupo etario cuando seleccionan Precio total de venta por mes para cada nivel de edad en el menú de desglose de la medida Recuento de pedidos:

Crea una experiencia de desglose visual

Las tablas de datos transmiten datos de manera eficaz, pero ¿qué sucede si deseas visualizar los datos que ve un usuario cuando desglosa los datos? Hay varias formas 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 de Labs de Exploración visual
  • Profundizar en un diagrama de dispersión con un límite y una media móvil
  • Cómo desglosar un gráfico de líneas apiladas con pivotes
  • Cómo desglosar a una visualización personalizada
  • Profundización de un cálculo de tabla que tiene formato condicional

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

La función de Labs de Perforación visual permite a los usuarios profundizar en una Exploración o una Aspecto. Con cero personalización y un conjunto de datos de desglose limitado, puedes mostrar datos de desglose en diferentes tipos de visualizaciones preseleccionados según los datos de Looker.

La función de Visual Drilling Labs no es compatible con los paneles. En el caso de 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 siguientes, se proporcionan ejemplos de cómo crear una experiencia de desglose visual con el parámetro link.

A modo de ejemplo, para mostrar la cantidad de artículos vendidos por día, puedes crear una medición que profundice en los campos Fecha de creación y Precio total de venta:

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 deseas controlar qué tipo de visualización se muestra a los usuarios cuando desglosan? En las siguientes secciones, se proporcionan ejemplos de cómo personalizar aún más una visualización de desglose.

Profundizar en un diagrama de dispersión con un límite y una media móvil

Puedes permitir que los usuarios profundicen en un diagrama de dispersión que incluya una línea de tendencia de un promedio móvil. Por ejemplo, supongamos que quieres mostrar cuántos artículos se han vendido 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 usando Liquid variables. Esta configuración controla la visualización que aparece en el taladro:

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"
  }
}

Cómo explorar un gráfico de líneas apiladas con elementos dinámicos

También puedes permitir que los usuarios profundicen en un gráfico de líneas apilado, por ejemplo, un gráfico de líneas apiladas que muestra el Precio total de venta de cada Número de mes, con un dinamización por Año de creación:

El siguiente código LookML 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=
}

Cómo explorar una visualización personalizada

También puedes permitir que los usuarios accedan a una visualización personalizada:

Para ello, 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"
  }
}

Profundización de un cálculo de tabla que tiene formato condicional

También puedes permitir que los usuarios accedan a un cálculo de tabla que muestre 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 }}"
  }
}