Um recurso exclusivo do Looker é que ele se conecta diretamente ao seu banco de dados. Isso significa que você sempre pode acessar os dados mais recentes e detalhar até o nível mais granular disponível. Assim, embora seja possível ver resumos anuais ou mensais, o Looker também oferece a opção de detalhar o dia, a hora ou o segundo instantaneamente.
Nesta página, mostramos exemplos de como personalizar e usar o detalhamento de dados para criar experiências de análise mais eficientes para seus usuários, incluindo:
- Personalizar como os valores são apresentados nas tabelas de detalhamento básico de dados
- Personalizar a visualização de detalhamento para criar uma experiência de detalhamento visual
Personalizar como os valores são apresentados nas tabelas de detalhamento básico de dados
A arquitetura moderna nativa da Web do Looker permite muito mais do que apenas detalhar de um nível para o próximo mais granular. É possível criar qualquer detalhamento personalizado com apenas alguns parâmetros.
Os exemplos a seguir mostram como personalizar a apresentação dos dados em tabelas de detalhamento, incluindo:
- Adicionar limites de linhas personalizados (até 5.000 linhas) a uma tabela de detalhamento
- Como adicionar classificações a uma tabela de detalhamento
- Como adicionar indicadores a uma tabela de detalhamento
Adicionar limites de linhas (até 5.000 linhas) a uma tabela de detalhamento
Ao adicionar limites de linhas a uma tabela de detalhamento, você controla como os dados são apresentados aos usuários quando eles detalham os valores de métrica. Por exemplo, o que acontece se você quiser mostrar apenas os 20 primeiros resultados em uma tabela de detalhamento quando um usuário detalha um valor de métrica de Contagem retornada? Você pode usar o parâmetro link e definir o subparâmetro url como "{{ link }}&limit=20", como no seguinte código 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]
}
Isso permite que os usuários analisem os 20 principais resultados selecionando Analisar os 20 principais resultados no menu de análise da métrica Contagem retornada:
Como adicionar classificações a uma tabela de detalhamento
Além de limitar os dados, também é possível controlar como eles são classificados em uma tabela de detalhamento. Por exemplo, o que acontece se você quiser mostrar os 20 resultados por Preço promocional quando um usuário detalha um valor de métrica Contagem de devoluções? Use o parâmetro link e defina o subparâmetro url como "{{ link }}&sorts=order_items.sale_price". O código LookML a seguir combina a classificação personalizada com um limite de linhas 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]
}
Isso permite que os usuários detalhem os 20 principais resultados por preço de venda ao selecionar Analisar os 20 principais resultados por preço de venda no menu de detalhamento da métrica Preço de venda:
Como adicionar indicadores a uma tabela de detalhamento
Além de limitar e classificar dados, você também pode criar tabelas dinâmicas em uma tabela de detalhamento. Por exemplo, e se você quisesse adicionar uma rotação a um campo Faixa etária para mostrar o ano e a faixa de porcentagem da margem bruta de cada grupo etário quando um usuário detalha um valor de métrica Contagem de pedidos? Use o parâmetro link e defina o subparâmetro url como "&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} ;;
}
Isso permite que os usuários detalhem o ano e a porcentagem da margem bruta de cada faixa etária ao selecionar Preço total de venda por mês para cada faixa etária no menu de detalhamento da métrica Contagem de pedidos:

Como criar uma experiência de detalhamento visual
As tabelas de dados transmitem informações de maneira eficaz, mas e se você quiser visualizar os dados que um usuário vê ao detalhar? Há várias maneiras de mostrar dados de detalhamento em visualizações além das tabelas de dados. Esta seção inclui os seguintes exemplos:
- Detalhamento com o recurso Detalhamento visual
- Detalhamento até um gráfico de dispersão com um limite e uma média móvel
- Detalhamento em um gráfico de linhas empilhadas com indicadores
- Detalhamento em uma visualização personalizada
- Detalhar um cálculo de tabela com formatação condicional
Detalhamento com o recurso Detalhamento visual
Com o recurso Detalhamento visual, os usuários podem detalhar uma Análise ou um Look. Com personalização zero e um conjunto de detalhamento limitado, é possível mostrar dados de detalhamento em diferentes tipos de visualização pré-selecionados com base nos dados do Looker.
O recurso de detalhamento visual não é compatível com painéis. Para painéis, é possível criar uma experiência de detalhamento visual com o parâmetrolinksem precisar ativar o recurso. As seções a seguir mostram exemplos de como criar uma experiência de detalhamento visual usando o parâmetrolink.
Por exemplo, para mostrar quantos itens foram vendidos por dia, crie uma métrica que detalhe os campos Data de criação e Preço total de venda:
measure: count {
type: count_distinct
sql: ${id} ;;
drill_fields: [created_date, total_sale_price]
}
A navegação detalhada visual é a opção mais simples. No entanto, e se você quiser controlar qual tipo de visualização é mostrada aos usuários quando eles fazem isso? As seções a seguir mostram exemplos de como personalizar ainda mais uma visualização de detalhamento.
Detalhamento até um gráfico de dispersão com um limite e uma média móvel
Você pode permitir que os usuários façam o detalhamento até um gráfico de dispersão que inclui uma linha de tendência de média móvel. Por exemplo, suponha que você queira mostrar quantos itens foram vendidos por dia como um gráfico de dispersão com uma média móvel de 30 dias:
Para isso, especifique as configurações de visualização em um URL usando variáveis Liquid. Essas configurações controlam a visualização que aparece no detalhamento:
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"
}
}
Detalhamento em um gráfico de linhas empilhadas com indicadores
Você também pode permitir que os usuários detalhem um gráfico de linhas empilhadas. Por exemplo, um gráfico de linhas empilhadas que mostra o Preço total de venda para cada Número do mês, com rotação por Ano de criação:
A LookML a seguir especifica as configurações da visualização 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=
}
Detalhamento em uma visualização personalizada
Você também pode permitir que os usuários detalhem uma visualização personalizada:
Para fazer isso, inclua a visualização personalizada nas configurações especificadas para o 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"
}
}
Detalhar um cálculo de tabela com formatação condicional
Você também pode permitir que os usuários detalhem um cálculo de tabela que mostra formatação condicional:
Isso pode ser definido em LookML da seguinte forma:
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 }}"
}
}