Detalhamento de dados mais eficiente

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 você possa acessar resumos anuais ou mensais, o Looker também oferece a opção de detalhar o dia, a hora ou o segundo instantaneamente.

Esta página mostra exemplos de como personalizar e aproveitar a análise detalhada para criar experiências de análise mais eficientes para os usuários, incluindo:

  • Como personalizar como os valores são apresentados nas tabelas básicas de dados de detalhamento
  • Personalizar a visualização de detalhamento para criar uma experiência visual

Como personalizar como os valores são apresentados nas tabelas básicas de dados de detalhamento

A arquitetura moderna nativa da Web do Looker permite fazer muito mais do que apenas detalhar um nível para o próximo nível mais granular. É possível criar qualquer caminho de detalhamento personalizado com apenas alguns parâmetros.

Os exemplos a seguir demonstram como personalizar a forma como os dados são apresentados nas tabelas de detalhamento, incluindo:

  • Adicionar limites de linhas personalizadas (até 5.000 linhas) a uma tabela de detalhamento
  • Como adicionar classificações a uma tabela de detalhamento
  • Como adicionar tabelas dinâmicas a uma tabela de detalhamento

Adicionar limites de linhas (até 5.000) a uma tabela de detalhamento

Ao adicionar limites de linhas a uma tabela de detalhamento, é possível controlar como os dados são apresentados aos usuários quando eles detalham os valores da medição. Por exemplo, o que fazer se você quiser mostrar apenas os 20 primeiros resultados em uma tabela de detalhamento quando um usuário analisar o valor da medida Contagem retornada? É possível usar o parâmetro link e definir o subparâmetro url como "{{ link }}&limit=20", como no seguinte código do 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]
}

Assim, os usuários podem conferir os 20 principais resultados selecionando Explorar os 20 principais resultados no menu de detalhamento da medição Contagem retornada:

Como adicionar classificações a uma tabela de detalhamento

Além de limitar os dados, você também pode controlar como os dados são classificados em uma tabela de detalhamento. Por exemplo, e se você quisesse mostrar os 20 resultados por Preço promocional quando um usuário analisar o valor da medida Contagem retornada? É possível usar o parâmetro link e definir o subparâmetro url como "{{ link }}&sorts=order_items.sale_price". O código do 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]
}

Assim, os usuários podem conferir os 20 principais resultados por preço promocional. Para isso, selecione Ver os 20 principais resultados por preço promocional no menu de detalhamento da medição Sale Price:

Adicionar tabelas dinâmicas a uma tabela de detalhamento

Além de limitar e classificar dados, você também pode mudar as dimensões de uma tabela de detalhamento. Por exemplo, e se você quisesse adicionar uma tabela dinâmica a um campo Idade para mostrar o ano e a porcentagem de margem bruta de cada faixa etária quando um usuário detalhar um valor da medição Contagem de pedidos? Use o parâmetro link e defina o subatributo 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 analisem o ano e a porcentagem de margem bruta de cada faixa etária ao selecionarem Preço de venda total por mês para cada faixa etária no menu de detalhamento da medição Contagem de pedidos:

Como criar uma experiência de detalhamento visual

As tabelas de dados transmitem dados de maneiras eficazes, mas e se você quiser visualizar os dados que um usuário vê durante o detalhamento? 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:

  • Detalhar com o recurso Laboratórios de detalhamento visual
  • Como detalhar um gráfico de dispersão com um limite e uma média móvel
  • Como detalhar um gráfico de linhas empilhadas com tabelas dinâmicas
  • Detalhar uma visualização personalizada
  • Detalhamento de um cálculo de tabela com formatação condicional

Detalhar com o recurso Laboratórios de detalhamento visual

O recurso Labs de detalhamento visual permite que os usuários detalhem os recursos Análise ou Olhar. Sem personalização 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 Visual Drilling Labs não é compatível com painéis. Nos painéis, você pode criar uma experiência de detalhamento visual com o parâmetro link sem precisar ativar o recurso Labs. As seções a seguir fornecem exemplos de como criar uma experiência de detalhamento visual usando o parâmetro link.

Por exemplo, para mostrar quantos itens foram vendidos por dia, você pode criar uma medição que detalha 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 análise detalhada visual é a opção mais simples. No entanto, e se você quiser controlar o tipo de visualização que aparece para os usuários quando eles fazem uma análise detalhada? As seções a seguir mostram exemplos de como personalizar ainda mais uma visualização de detalhamento.

Como detalhar um gráfico de dispersão com um limite e uma média móvel

Você pode permitir que os usuários acessem um gráfico de dispersão que inclui uma linha de tendência de média móvel. Por exemplo, suponha que você queira exibir 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 as variáveis líquidas. Essas configurações controlam a visualização do 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"
  }
}

Como acessar um gráfico de linhas empilhadas com pivots

Você também pode permitir que os usuários analisem um gráfico de linhas empilhado, por exemplo, um gráfico de linhas empilhadas que mostra o Preço de venda total de cada Número do mês, dinamizado por Ano de criação:

O 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=
}

Detalhar uma visualização personalizada

Você também pode permitir que os usuários analisem uma visualização personalizada:

Para fazer isso, inclua a visualização personalizada nas configurações de visualização 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"
  }
}

Detalhamento de um cálculo de tabela com formatação condicional

Você também pode permitir que os usuários analisem um cálculo de tabela que mostra a formatação condicional:

Isso pode ser definido no 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 }}"
  }
}