Análise de dados mais eficiente

Um recurso exclusivo do Looker é a conexão direta ao seu banco de dados. Isso significa que é possível acessar os dados mais recentes e detalhar o nível mais granular disponível. 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 aproveitar a análise de dados para criar experiências analíticas mais eficientes para seus usuários, incluindo:

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

Personalização de como os valores são apresentados nas tabelas básicas de dados de detalhamento

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

Os exemplos a seguir demonstram como é possível personalizar a forma como os dados são apresentados nas 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 tabelas dinâmicas a uma tabela de detalhamento

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

Ao adicionar limites de linha a uma tabela de detalhamento, você pode controlar como os dados são apresentados aos usuários quando eles detalham os valores de medição. Por exemplo, e se você quiser mostrar apenas os 20 primeiros resultados em uma tabela de detalhamento quando um usuário detalhar um valor de medida de Contagem retornada? É possível 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 confiram os 20 principais resultados selecionando Explorar os 20 principais resultados no menu de detalhamento da medida 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ê quiser mostrar os 20 resultados por Preço promocional quando um usuário detalhar um valor de medida de 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 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 acessar os 20 principais resultados por preço promocional. Para isso, selecione Explorar os 20 principais resultados por preço promocional no menu de detalhamento da medida Preço promocional:

Como adicionar tabelas dinâmicas a uma tabela de detalhamento

Além de limitar e classificar os dados, você também pode definir dimensões dinâmicas em uma tabela de detalhamento. Por exemplo, e se você quiser adicionar uma tabela dinâmica a um campo Faixa etária para mostrar o ano e o nível de porcentagem de margem bruta para cada faixa etária quando um usuário detalhar um valor de medida Contagem de pedidos? É possível usar o parâmetro link e definir 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} ;;
}

Assim, os usuários podem detalhar o ano e a porcentagem de margem bruta de cada faixa etária ao selecionar Preço de venda total por mês para cada faixa etária no menu de detalhamento da medida 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 a análise? Há várias maneiras de exibir dados de detalhamento em visualizações, além das tabelas de dados. Esta seção inclui os seguintes exemplos:

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

Detalhamento com o recurso de Detalhamento visual do Labs

O recurso de laboratórios Detalhamento visual permite que os usuários analisem uma Análise ou um Look. Sem personalização e com um conjunto de detalhes limitado, é possível mostrar os dados de detalhamento em diferentes tipos de visualização pré-selecionados com base nos dados do Looker.

O recurso de Detalhamento visual do Labs não é compatível com painéis. Para painéis, é possível criar uma experiência de detalhamento visual com o parâmetro link sem precisar ativar o recurso Labs. As seções seguintes apresentam 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 medida 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]
}

O detalhamento visual é a opção mais simples. No entanto, e se você quiser controlar que tipo de visualização é exibida para os usuários no detalhamento? As seções a seguir fornecem exemplos de como personalizar ainda mais uma visualização de detalhamento.

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

É possível permitir que os usuários analisem um gráfico de dispersão que inclua uma linha de tendência de média móvel. Por exemplo, suponha que você deseja exibir quantos itens foram vendidos por dia como um gráfico de dispersão com uma média móvel de 30 dias:

Para fazer isso, especifique as configurações de visualização em um URL usando variáveis líquidas. Estas 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"
  }
}

Detalhar um gráfico de linhas empilhadas com tabelas dinâmicas

Também é possível 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, dinâmico por Ano criado:

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

Como detalhar uma visualização personalizada

Também é possível permitir que os usuários analisem uma visualização personalizada:

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

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

Também é possível permitir que os usuários analisem um cálculo de tabela que mostre formatação condicional:

Isso pode ser definido no LookML da seguinte maneira:

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